wcd-5.2.5/0000775000175000017500000000000012345660656012533 5ustar waterlanwaterlanwcd-5.2.5/os2/0000775000175000017500000000000012345660655013235 5ustar waterlanwaterlanwcd-5.2.5/os2/Makefile0000664000175000017500000000275712321304444014671 0ustar waterlanwaterlan PREFIX = c:/usr prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LDFLAGS_EXTRA = -lOS2term -Zomf CFLAGS = -O2 -Wall # PDcurses #CURSES = pdcurses # Ncurses CURSES = ncurses ENABLE_NLS = DEFS = ifeq ($(CURSES),pdcurses) LIB_CURSES = pdcurses.a DEFS += -DWCD_USECURSES endif ifeq ($(CURSES),ncurses) LIB_CURSES = -lncurses -lOS2term -Zomf DEFS += -DWCD_USECURSES endif ifdef ENABLE_NLS LDFLAGS_EXTRA += -lintl -liconv endif bindir = ${exec_prefix}/bin PROGRAM = wcdos2.exe VERSIONSUFFIX = -os2 ZIPOBJ_EXTRA=bin/wcd.cmd all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES="${LIB_CURSES}" DEFS="${DEFS}" LDFLAGS_EXTRA="${LDFLAGS_EXTRA}" prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES="${LIB_CURSES}" DEFS="${DEFS}" LDFLAGS_EXTRA="${LDFLAGS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} install -m 755 wcd.cmd $(DESTDIR)${bindir}/wcd.cmd uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} -rm -f $(DESTDIR)${bindir}/wcd.cmd dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/os2/watcom/0000775000175000017500000000000012345660655014527 5ustar waterlanwaterlanwcd-5.2.5/os2/watcom/makefile0000775000175000017500000000246512317636535016240 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcdos2.exe DEFINES = CURSES = pdcurses !ifneq CURSES DEFINES += -dWCD_USECURSES !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -i$(%WATCOM)\h\os2 -w4 -e25 -zq -od -d2 -6r -bt=os2 -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif VERSIONSUFFIX = -os2 HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) ZIPOBJ_EXTRA=bin\wcd.cmd prefix = c:\usr TARGET = os2 all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcdos2 d all SYS os2v2 op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/os2/wcd.cmd0000775000175000017500000000056111227272030014464 0ustar waterlanwaterlan@echo off set PDC_RESTORE_SCREEN=1 rem set LANG=nl_NL rem set LANGUAGE=nl rem set WCDLOCALEDIR=c:/Program Files/wcd/share/locale wcdos2.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 IF NOT "%WCDHOME%" == "" GOTO WCDHOME IF NOT "%HOME%" == "" GOTO HOME c:\wcdgo.cmd GOTO END :WCDHOME %WCDHOME%\wcdgo.cmd GOTO END :HOME %HOME%\wcdgo.cmd GOTO END :END wcd-5.2.5/win64/0000775000175000017500000000000012345660656013502 5ustar waterlanwaterlanwcd-5.2.5/win64/wcd.bat0000775000175000017500000000121312054434334014734 0ustar waterlanwaterlan@echo off set PDC_RESTORE_SCREEN=1 rem set WCDHOME=%HOMEDRIVE%%HOMEPATH% rem set LANG=nl_NL rem set LANGUAGE=nl rem set WCDLOCALEDIR=c:/Program Files/wcd/share/locale rem set WCDSCAN=c:;d: rem Define WCDHOME when WCDHOME and HOME are both not defined, rem because on Windows Vista and up users are not allowed to rem create files in the root directory of the system partition. IF NOT DEFINED WCDHOME ( IF NOT DEFINED HOME ( set WCDHOME=%HOMEDRIVE%%HOMEPATH% ) ) wcdwin64.exe %* IF DEFINED WCDHOME ( "%WCDHOME%\wcdgo.bat" ) ELSE ( IF DEFINED HOME ( "%HOME%\wcdgo.bat" ) ELSE ( c:\wcdgo.bat ) ) wcd-5.2.5/win64/Makefile0000664000175000017500000000360012101167345015124 0ustar waterlanwaterlan PREFIX = c:/usr/local64 prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CC = x86_64-w64-mingw32-gcc STRIP = x86_64-w64-mingw32-strip CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin64.exe VERSIONSUFFIX = -win64 ZIPOBJ_EXTRA = bin/wcd.bat ifdef ENABLE_NLS # Using MinGW gettext,iconv ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll endif ifdef UNINORM ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} CC=$(CC) install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} CC=$(CC) install -m 755 wcd.bat $(DESTDIR)${bindir}/wcd.bat uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} -rm -f $(DESTDIR)${bindir}/wcd.bat dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} STRIP=$(STRIP) mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win64/vc/0000775000175000017500000000000012345660656014112 5ustar waterlanwaterlanwcd-5.2.5/win64/vc/makefile0000775000175000017500000000171612334504141015602 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin64.exe DEFINES = CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win64-ucs !else VERSIONSUFFIX = -win64 !endif HTMLEXT = htm ZIPOBJ_EXTRA = bin\wcd.bat prefix = c:\usr\local64 !include $(SRCDIR)\vc.mak wcd-5.2.5/win32psh/0000775000175000017500000000000012345660656014210 5ustar waterlanwaterlanwcd-5.2.5/win32psh/Makefile0000664000175000017500000000400212345431710015627 0ustar waterlanwaterlan PREFIX = c:/usr/local prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = -DWCD_WINPWRSH ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin32psh.exe VERSIONSUFFIX = -win32psh ZIPOBJ_EXTRA = ifdef ENABLE_NLS # Using GnuWin32 gettext,iconv #ZIPOBJ_EXTRA += bin/libintl3.dll bin/libiconv2.dll # Using MinGW gettext,iconv ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll # libgcc_s_dw2-1 and libwinpthread-1 are needed when built with MSYS2 ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ifdef UNINORM ifndef ENABLE_NLS ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win32psh/vc/0000775000175000017500000000000012345660656014620 5ustar waterlanwaterlanwcd-5.2.5/win32psh/vc/makefile0000775000175000017500000000171112317636535016321 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin32psh.exe DEFINES = /DWCD_WINPWRSH CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win32psh-ucs !else VERSIONSUFFIX = -win32psh !endif HTMLEXT = htm prefix = c:\usr\local !include $(SRCDIR)\vc.mak wcd-5.2.5/win32psh/watcom/0000775000175000017500000000000012345660656015502 5ustar waterlanwaterlanwcd-5.2.5/win32psh/watcom/makefile0000775000175000017500000000273212317636535017207 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcdwin32psh.exe DEFINES = -dWCD_WINPWRSH CURSES = pdcursesw !ifneq CURSES DEFINES += -dWCD_USECURSES -dPDC_WIDE !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -5r -bt=nt -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj,wcwidth.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif !ifeq UCS 1 OBJS += matchw.obj LOBJS +=,matchw.obj VERSIONSUFFIX = -win32psh-ucs !else VERSIONSUFFIX = -win32psh !endif HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) prefix = c:\usr\local TARGET = nt all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) @%append wcd.lnk library mpr.lib !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcdwin32psh d all SYS $(TARGET) op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/doc/0000775000175000017500000000000012345660656013300 5ustar waterlanwaterlanwcd-5.2.5/doc/INSTALL.txt0000664000175000017500000000074412026665041015141 0ustar waterlanwaterlanFor building and installation see the following files: GCC_DOS.txt : How to build wcd for DOS, Windows, and OS/2 with GCC. WATCOMC.txt : How to build wcd for DOS, Windows, and OS/2 with Watcom C. VISUALC.txt : How to build wcd for Windows with Microsoft Visual C++. INST_DOS.txt : How to install wcd on DOS, Windows, and OS/2. UNIX.txt : How to build and install wcd on Unix/Linux/Cygwin. RPM.txt : How to install wcd using an rpm package. wcd-5.2.5/doc/copying.txt0000664000175000017500000004330511273517352015507 0ustar waterlanwaterlan ------------------------------------------------------------------------ Table of Contents * GNU GENERAL PUBLIC LICENSE o Preamble o TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION o How to Apply These Terms to Your New Programs ------------------------------------------------------------------------ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: * a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. * b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. * c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: * a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, * c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. one line to give the program's name and an idea of what it does. Copyright (C) 19yy name of author This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. wcd-5.2.5/doc/whatsnew.txt0000664000175000017500000006521012345657427015707 0ustar waterlanwaterlan5.2.5 2014-06-10 - Translations of UI messages: * Updated Dutch translation. Thanks to Benno Schulenberg. * Updated Finnish translation. Thanks to Jorma Karvonen. * New Esperanto translation. Thanks to Benno Schulenberg. * New Ukrainian translation. Thanks to Yuri Chornoivan. * New Vietnamese translation. Thanks to Trần Ngọc Quân. - Translations of the manual: * New Dutch translation. * New German translation. Thanks to Mario Blättermann. * New Ukrainian translation. Thanks to Yuri Chornoivan. - Use po4a to create international man pages. See http://po4a.alioth.debian.org/ - Wcd is member of Translation Project for translation of messages and manual. See http://translationproject.org/domain/wcd.html http://translationproject.org/domain/wcd-man.html - Makefile: Include generated manuals in the source package. Adding man files to the source package, which have been generated with a high version of perl/pod2man, is a favour to users, because newer perl/pod2man versions produce better output (also for old systems). Tip from pod2man maintainer Russ Allbery. When you want to generate man pages yourself just run first 'make maintainer-clean'. - Switch to MinGW-w64 compiler for Windows 32 bit. - Makefile: Wcd compiles in MSYS2/MinGW-w64 environment. See http://sourceforge.net/projects/msys2/ - New makefiles for Microsoft Visual C++ (MS VC) 64 bit. - New makefiles for Zsh/MSYS 64 bit (win64zsh). - Watcom and VC makefiles support DEBUG=1. - dosdir.h, dosdir.c: Fixed disk scanning when built with MS VC 64 bit. - display.c, graphics.c: Don't use newterm() on Windows when ncurses is used. Newterm() in old ncurses versions (<5.9.20120922) is not working on Windows. - wcd.c: Fixed a dangerous string usage. Thanks to David Binderman. - wcd.c, display.c: Fixed compilation for stdio interface (no curses). - Split help text in small pieces to make it easier for translators, and cleanup messages. Thanks to Benno Schulenberg. - Switch back to DJGPP gcc 4.5.3. Binaries built with DJGPP gcc >= 4.6 crash in DOSEMU and DosBOX. 5.2.4 2013-08-28 - Support user names with a space in the name in cmd.exe. Thanks to anonymous. - Show an "A" when alternative navigation mode is on. - Improved printing of surrogate pairs on border. - New option -Td, --cjk-width. Support double width line drawing symbols and ambiguous characters when double-width CJK (Chinese, Japanese, and Korean) font is used. Analog to xterm -cjk_width. - Added a test treedata file. - Print system error when writing to disk fails. - Makefile: * CC can be overridden by environment. * CFLAGS optimization flags can be overridden by environment. * Separate LIBS from LDFLAGS. Thanks to Justin Lecher - Makefile: NCURSES_DEBUG=1 enables linking with the ncurses libraries with debug information. The ncurses *_g libraries. - In verbose mode environment variables HOME, WCDHOME, WCDSCAN, and go-script are printed. - Wcd prints debug information when compiled with DEBUG=1. - Windows versions don't follow symbolic links while scanning disks (like Unix versions). Thanks to Eli Zaretskii. - Fix: Option --just-go did not work. --no-ignore-diacritics did set just go mode. - Fix: Compilation on OS X/FreeBSD. Thanks to Misty De Meo . - New option -y, --assume-yes: Assume yes on all queries. Handy in combination with -rmtree. - Preparing to use Ncurses instead of PDcurses for wcd on Windows. PDcurses has no new version since Sep 2008. Many thanks to Ncurses maintainer Thomas Dickey. * Reduced flicker in graphical tree interface by using werase() i.s.o. wclear(). Flicker was mainly noticeable in Windows port of ncurses. * Unset environment variable TERM on Windows when ncurses is used. A wrong value makes ncurses exit right away. * Ncurses MinGW port fixes by Thomas Dickey: - Failing newterm() fixed (ncurses 5.9.20120922) - Correct display of double width characters (ncurses 5.9.20121215). - Freezes on input fixed (ncurses 5.9.20130302). * Pending issues: - Ncurses does not work in Console2. - Misalignment at highlighted directory in tree with true type CJK font, e.g. the Chinese Simsun font. (PDCurses has same problem.) 5.2.3 2012-10-29 - New compact tree mode. By default the 'graphical' tree is drawn the same way as the original NCD did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use the new option -Tc or switch on-the-fly with the 'm' key. - Alternative navigation in compact tree mode works the same as in GUI file explorers such as Windows Explorer and KDE Konqueror. - Removed option -ga. Instead add the new option -Ta to your wcd alias, function or batch file if you prefer alternative navigation by default. Use shift-A in the tree to switch on-the-fly. - Removed option -gc. Instead add the new option -TC to your wcd alias, function or batch file if you prefer centered view by default. - Wcd compiles with Microsoft Visual C++. - Makefile uses $(sysconfdir) i.s.o. hardcoded /etc. - Added several GNU standard long command-line options. Thanks to Jari Aalto. - RPM spec file complies to Fedora packaging standards. Moved spec file to folder misc. - Fix: PowerShell version created files named "null". The problem was introduced in version 5.2.0. - Fix: Stdio mode on Windows prints Unicode characters correctly. - Fix: Match c with cedilla when ignoring diacritics (CP1252, CP28591, ISO-8859-1, and Unicode). 5.2.2 2012-09-01 - Turn off wildcard globbing for DJGPP (DOS32) and MinGW (Windows). This fixes some unexpected behaviour when a wcd argument matches a file in the current directory. In Unix shells you still need to quote the arguments to disable expansion. - Better error reporting when lines in treedata files are too long. - wcd.c: Support UTF-16 surrogate pairs when a Unix version reads UTF-16 tree files. - Cleanup for Watcom C: * Fixed compilation for Windows. * Single makefile for each system. * Common parts in central makefile. * Support compilation for Windows PowerShell. * Support compilation for Unicode version on Windows. * Support compilation for OS/2. Thanks to Elbert Pol. * Makefiles can do installation and create zip packages. - Cleanup macros: * Use only C99 compliant predefined macros. * Makefiles for Windows and OS/2 don't need to define MSDOS anymore. * Use __MSDOS__ macro only when it's real for MS-DOS. * UNIX does not get defined with OS/2 EMX anymore. - src/Makefile: * Target 'clean' renamed to 'mostlyclean', because it preserves the built manual files. New target 'clean' that removes all files that were not present in the original source package. Thanks to Jari Aalto. * New variable HTMLEXT to override the default 'htm' extension for the manual in HTML format. Thanks to Jari Aalto. * Support CFLAGS_USER, LDFLAGS_USER, and DEFS_USER for Debian Linux. Thanks to Jari Aalto. 5.2.1 2012-02-28 - Windows Command Prompt: wcd.bat defines WCDHOME when HOME and WCDHOME both are not defined, because users can't write files in the root of the system partition on Windows Vista and up. - Simplified installation instructions for Windows Command Prompt. Thanks to Laurence Errington. - Makefile: Print value of UNINORM. - Makefile: Support DEBUG=1 - Makefile: Better test for ncurses curses.h include file. - Man page: Update sections UNICODE and ENVIRONMENT VARIABLES. - win32/lcc: Removed. Drop support for Windows LCC compiler. - querycp.c/matchl.c : Fix Code Page number for ISO-8859-1 and ISO-8859-2. ISO-88592-1 = CP28591, ISO-8859-2 = CP28592 - querycp.c: Support WatcomC for DOS32. 5.2.0 2011-11-12 - URL home page changed to http://waterlan.home.xs4all.nl/ - New option -I: Ignore diacritics. Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. See also http://en.wikipedia.org/wiki/Diacritic The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. - New option +I: Regard diacritics (default). - Matching with Unicode normalisation (compatible equivalence). Compile with UNINORM=1. See also http://en.wikipedia.org/wiki/Unicode_normalization Requires libunistring. http://www.gnu.org/s/libunistring/ - Unicode support in Windows Command Prompt (cmd.exe). Requires Windows 7. - All Windows versions of Wcd write their output in the console in Unicode format. This gives consistent output, independent of the active code page. - Wcd for Windows with Unicode writes tree-data file with BOM (Byte Order Mark). The file is now readable by notepad. See http://en.wikipedia.org/wiki/Byte_order_mark - Wcd can read UTF-8 and UTF-16 encoded tree-data files with BOM. - Makefile use RPM_OPT_FLAGS. - Enable Large File Support. - Code cleanup for -Wextra -Wconversion. - Drop support for Borland C compiler, because it's hard to get now and not developed any more since a long time. Default to OpenWatcom for DOS 16 bit. - Removed Imakefile, because imake is depreciated. - Removed old makefiles for native HP-UX and Solaris C compiler. I'm not able to test these compilers. 5.1.5 2011-06-06 - Default scan directory is $HOME, even when WCDHOME is defined. WCDHOME is only to change location of wcd's files. - Environment variable WCDSCAN can be used to overrule the default scan directory. - Option -u tries to read /home/USER/TREEFILE, and /home/USER/.wcd/TREEFILE. - Automatically create directory for tree-file and go-script. - New key in graphical mode: 'T' toggle between line drawing and ASCII characters. - Improved error reporting. - Installation of PDF and PostScript manual is optional. - Default installation prefix for Unix is '/usr' i.s.o. '/usr/local'. - Removed directory 'cygwin'. Install on Cygwin from directory 'src'. - Added shell functions for /etc/profile.d to define the wcd function or alias. Type 'make install-profile' to install. See also UNIX.txt. (thanks to Jari Aalto) - Smarter wcd function for Unix. - Enable Unicode by default on Cygwin. 5.1.4 2010-11-19 - Use line drawing characters for graphical tree. - New option -T. Draw tree with ASCII characters. - Option -gd in combination with a search pattern will dump the tree of matches. - Minor updates translations. - Minor updates man page. - Version number is only defined in version.mk. (also thanks to Jari Aalto) - LCC-WIN32 makefiles replaced by GNUmakefile, because lcc make doesn't support the 'include' directive. - Don't include generated documentation files in Unix source package. 5.1.3 2010-08-29 - Added German language file (thanks to Philipp Thomas) - Match window supports terminal resize (on systems that support it). - New command-line option -gc: Graphical mode with centered view (like it was in wcd 3.2.1 and before). - New key in graphical mode: 't' switch centered mode on/off. - Fix: List separators for WCDFILTER, WCDBAN, and WCDEXCLUDE back to semicolon ';' (like in wcd 5.0.4 and before) for DOS-bash and WinZsh. These shells use Windows style paths with colons like c:/windows. - Don't ship po/*.mo files in source package. - Port for native MSYS. See also http://www.mingw.org/ - Windows 64 bit port. 5.1.2 2010-05-23 - Cleanup Makefiles - Fix compiler warnings "format not a string literal and no format arguments". - Fixed compilation on Darwin OS. - Support compilation in DOSBox (8.3 filenames where needed). - Dos32 version by default without Native Language Support. - Renamed Dos32 BASH version to wcdbash.exe. - Win32 binary packages use patched MinGW's libintl, with builtin relocation support. See http://waterlan.home.xs4all.nl/libintl.html 5.1.1 2010-01-07 - Alternate stack file support with environment variable WCDSTACKFILE (thanks to anonymous). - Minor documentation updates. - Standard GNU make target 'dist' in all makefiles for distribution package creation. Replaces 'tgzpackage' and 'zippackage'. - Version date in ISO 8601 format (thanks to Jari Aalto). 5.1.0 Oct 22 2009 - UTF-16 Unicode support for Windows PowerShell. - Added Finnish language file (thanks to Jari Aalto). - Update manual, section Unicode. - Unix: Replace volume manager path of HOME dir by "$HOME" (thanks to Jari Aalto). - Fix compilation on Solaris (gcc) (thanks to Jari Aalto). - Fix compilation on HP-UX (cc and curses). - Fix compilation with Open Watcom C Compiler. - Updated makefiles. (thanks to Jari Aalto). - Updated installation documentation. (thanks to Jari Aalto). - Code cleanup (thanks to Jari Aalto). - Fix: Graphics mode, non-Unicode version: key q did "select" instead of "quit". - Man page generation from Perl POD file instead of ROFF. (thanks to Jari Aalto). - Man page in HTML format. - Reformat README file (thanks to Jari Aalto). - List separators for WCDFILTER, WCDBAN, and WCDEXCLUDE depend on shell type, not on DOS vs Unix. - Conditional text in manual. DOS or Unix specific text can be stripped out. (thanks to Jari Aalto). 5.0.4 Jul 21 2009 - Added Spanish language file (thanks to Julio Augusto Freyre-Gonzalez). - Improved display of match list for different languages. - Changed makefile variable WCD_UTF8 to UCS (Universal Character Set). - Option -V prints the actual used character encoding. - Update manual. New section WINDOWS CODE PAGES. - Use Keith Marshall's nl_langinfo() implementation in Wcd for DOS/Windows/OS2 with native language support. Taken from package mingw-catgets. 5.0.3 Jul 4 2009 - Fixed wcd_isdir() (UNIX/DOS/Cygwin/OS2 version). Possible false positive test on non-existing path. Win32 version is not affected. 5.0.2 Jun 8 2009 - Improved horizontal scrolling with Unicode combining and double width characters in match list and graphical tree. - Update manual, section LOCALIZATION. - Man page uses ASCII quotes (grave accent, apostrophe quote) for readability on old systems. - src/Makefile supports DESTDIR variable. - dos16/GNUmakefile: New gnu makefile for dos16 installation and zip package creation. Replaces misc/Makefile.dist. 5.0.1 May 2 2009 - Fix RPM spec file. - Update manual w.r.t. MSYS. - Check environment for UTF-8 character encoding. - problems.txt: Document problem during `gmake install' on Windows. 5.0.0 Mar 28 2009 - UTF-8 Unicode support for Unix/Linux. - Resolved a few signedness issues. - Update manual page. - Option -l takes alias directly: wcd -l (thanks to Jari Aalto) - Swapped command line options -v and -V. (thanks to Jari Aalto) Option -v is now verbose and -V is verion info. This is more common practice in GNU programs. - Added GNU standard long command line options --help, --version and --verbose. - Changed option for quiet operation from -Q to -q (GNU common practice). - In match list key 'z' does page down (like less) (thanks to Jari Aalto). - Improvements manual page (thanks to Jari Aalto) o) The URLs are too long for nroff. Those are now fixed with correct formatting code o) The /path/names are best not to be hyphenated. Those are now fixed with correct formatting code o) The order of sections is changed to follow de facto section order http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap01.html#tag_01_11 o) The quotes `` '' are escaped to make clean output. o) The top-level INSTALL sections are not made subsections for more clearer layout. 4.1.0 Nov 4 2008 - Wcd version for Windows PowerShell, with full UNC paths support. - win32: Use GnuWin32 port of gettext. This version detects language automatically and can find the locale directory if it is relocated. - Sorting with locale support. - Less screen movement when navigating in graphical mode. - Cleanup documentation. - New make target `uninstall' for deinstallation. - Renamed Win32 ZSH version to wcdwin32zsh.exe. - Renamed DOS source directories. 4.0.0 Sep 6 2008 - Enabled native language support, using GNU gettext. - Added Dutch language. - One source package for DOS, Windows and Unix. - Shell script to compile wcd for QNX 4.25 systems. (Thanks to Roland Messier) - Cleanup documentation. - Port to OS/2 Warp (Thanks to Elbert Pol) - Optional colours in graphical mode (option -K) (Thanks to Billy Chen) - Less screen movement when navigating in graphical mode. (Thanks to Billy Chen) 3.2.1 Apr 5 2006 - Fix : initialise first line in graphical interface to prevent occasional error message 'line too long'. - Suport Watcom C compiler. - Horizontal scrolling added to conio interface. - Some source code cleanup. 3.2.0 Dec 1 2005 - Support 8 bit characters (non-ASCII characters). (Thanks to Richard Boss) - Reorganised source zip package. - Bugfix Curses interface: uninitialised data was written to screen. This problem showed up with wcd with PDCurses interface on some Windows 2000/XP systems by printing a lot of garbage in the console (many small rectangles) when environment variable PDC_RESTORE_SCREEN was set. (Thanks to Scott D Friedemann) - Don't set variable PDC_RESTORE_SCREEN automatically. - Curses interface: Print match list at bottom of console. (Thanks to Richard Boss) - Use reverse colours to highlight. - Bugfix PDCurses 1144353 : When PDC_RESTORE_SCREEN was set and the console buffer was too big wcd scrolled away. (thanks to Mark Hessling ) - DOS and Windows version can use option -u. - Set base directory for users home directories with environment variable WCDUSERSHOME. 3.1.6 Sep 29 2005 - Support UNC paths in Cygwin version, including scanning of servers (wcd -S //servername). - Cygwin and Win32 ZSH version: Select correct directory in graphical tree mode if current working directory is a UNC path. - Try to create directory for go-script when it doesn't exist 3.1.5 Aug 27 2005 - win32 console with PDCurses: use original colours (thanks to Gabor Grothendieck and Mark Hessling ) - wcd with PDCurses: restore screen by default, no need to set enviroment variable PDC_RESTORE_SCREEN.(thanks to Gabor Grothendieck) - New option -ga : Alternative way of navigating in graphics mode. Don't jump to unrelated directories (thanks to Ken Zinnato). - New option -od : dump matches to stdout.(Thanks to Richard Boss) - Updated makefiles for windows compilers. Added makefile for Borland C with PDCurses. - Fix for disk scanning problem for Borland CPP 5.x. 3.1.4 Jun 29 2004 - Don't print "-> " when can't change to directory. - Update man page. 3.1.3 Oct 23 2003 - bugfix: fixed bufferoverflow, introduced in wcd 3.1.2 when environment variable WCDBAN or WCDEXCLUDE was used. 3.1.2 Oct 19 2003 - Specify filters with environment variable WCDFILTER. All directories that don't match the filter(s) are ignored. (thanks to Val Vakar). - Add bans with environment variable WCDBAN - Add excludes with environment variable WCDEXCLUDE - New option: -V Verbose operation. - Removed option -q - Removed duplicate wcd.c file for DJGPP. 3.1.1 May 20 2003 - patch for compile problems w.r.t. gcc and (thanks Kevin M. Rosenberg) See INSTALL. - fix compile problems on Mac OS X/Darwin (thanks Zoltan Varady). - default makefile for DOS 16 bit (compact memory model) works again (thanks to Eric Auer). - smaller 16 bit DOS binaries (stripped). 3.1.0 Nov 13 2002 - Windows console version supports Windows LAN UNC paths. - Option -gd will dump all treefiles that are read. 3.0.7 Oct 17 2002 - minor updates in documentation: manpage, wcd.txt and INSTALL - fixed a memory leak which could cause unix versions of wcd to generate incorrect treedata files during disk scan with paths excluded. 3.0.6 Sep 4 2002 - bugfix option -x when used multiple times. - minor updates manpage - support longer paths on unix (1024 chars) 3.0.5 Jul 8 2002 - bugfix: compile errors 3.0.4 Jul 6 2002 - Graphical tree mode: Terminal resize (on systems that support it). - Update manpage. - wildcards support in banfile - Exclude paths from scanning: options -x and -xf - Compiles now with LCC windows C compiler. - Improved sideways scrolling of matchlist (curses). - Arrow keys work in matchlist in win32 version (curses). - Option -k : Keep paths in treedata when wcd cannot change to them. 3.0.3 Nov 25 2001 - Zoom, fold and condense in graphical tree mode. 3.0.2 Oct 17 2001 - bugfix: path quoting in go-script: win32: paths with ampersand (&) or percent (%) unix, dos bash, win zsh: paths with grave accent (`) unix: path with backslash (\) - update manpage section DESCRIPTION 3.0.1 Jul 6 2001 - update to compile 16 bit dos version with PDCurses. - minor update manpage - makefile for SunOS curses - rpm .spec file update for Redhat 7.1 3.0.0 Apr 12 2001 -g Curses version only: Full screen interactive directory browser. `Graphical' match list. Vi(m) like tree navigation and search, with wildcard and subdir support -gd Curses verion only: dump tree to stdout -j justgo mode -G set path for go-script -GN Don't create go-script 2.3.3 Oct 15 2000 - fall back from curses to stdout - new option: -N use numbers instead of letters - new option: -o use stdout instead of curses or conio - scroll back stack for conio version 2.3.2 Jun 10 2000 - update for curses and PDCurses 2.3.1 May 28 2000 - bug fix in ncurses interface (array bounds read/write) - update manpage - minor changes 2.3.0 Apr 27 2000 - Optional ncurses based interface for unix versions. 2.2.9 Jan 16 2000 - new option -w: Wild matching only. - made wcd compile with MINGW32 compiler. - win32 version for Amol Deshpande's Win32 port of zsh (ftp://ftp.blarg.net/users/amol/zsh). - bug fix: read long paths from stack file (dos 32 bit) 2.2.8 Nov 19 1999 - option -i now also for dos versions - new option: +i regard case - minor update interface dos versions - win32 console port 2.2.7 Sep 30 1999 - environment variable WCDHOME overrides HOME. - improved choosing from list (DOS versions). - improved manpage - mode bits for new directory created with -m option are now only defined by umask. 2.2.6 May 12 1999 new options: -aa Add current and all parent paths to treedata -ee add current and all parent paths to Extra treedata 2.2.5 Apr 15 1999 - bug fix path fixing 2.2.4 Apr 14 1999 -DOS versions can use environment variable HOME -path fixing -options -S, +S, -A, -E, -m, -M, -r, and -rmtree can be repeated. 2.2.3 Mar 21 1999 -All versions can read DOS and UNIX text files. -INSTALLATION section in manpage 2.2.2 Feb 24 1999 bug fix on automounted directories (Unix). 2.2.1 Jan 29 1999 bug fix +S,-n,+n options on directory / 2.2.0 Jan 29 1999 - changed name to Wherever Change Directory - automaticly remove directories from treedata to which cannot be changed. - links support (unix only) - restore text screen after list (dos only) new options: -m make directory and add to treedata file -M make directory and add to extra treedata file -r remove directory and remove from treedata -rmtree remove directory recursive and remove from treedata -n +n use relative treefile +S make relative treefile -t don't skip mount string before /home (unix only) changed options: -u, +u, -f, +f - some minor changes. 2.1.7 Sep 2 1998 - bug fix: give warning if cannot change to directory that is in database. 2.1.6 Jul 22 1998 - removed "dangerous" gets() function. (In the way gets() was used in wcd it was not dangerous. gets() has been removed to avoid warnings some compilers or systems give (e.g. gcc or FreeBSD).) 2.1.5 Jul 15 1998 - Sort match lists 2.1.4 - quiet option default ON (Unix) 2.1.3 - Bug fix: command line parsing (DOS 32 bit) 2.1.2 - Bug fix: backspace in long match list (DOS) 2.1.1 Jun 29 1998 - Bug fix: alias, ban and stack could not deal with paths with spaces. 2.1.0 Jun 18 1998 - Directory stack - Data structures with dynamic memory allocation - ignore case option (unix) - go $HOME when no directory is given - man page 2.0.5 - Bug solved. Endless loop on 64 bit Unix system (SGI IRIX64) 2.0.4 Mar 12 1998 - More scanning options: -S , -A , -E - check for double matches - source Ansi C compliant - ending '/' allowed in database 2.0.0 Mar 9 1998 - Changed distribution conditions to GNU General Public License. V1.8.3 Feb 26 1998 - Bug fix. Dos version crashed on read-only drive if TEMP environment variable was not set. V1.8.0 Feb 9 1998 - Change drive and dir in one go (Dos). - Ban paths - Alias directories V1.7e Dec 9 1997 - Add directories without scanning. - Improved choosing from a list. - quiet option default ON in DOS versions. - changed MAX_LIST and MAX_WILD_LIST to 22 - no drive in treedata (DOS) - direct CD mode V1.6 Nov 11 1997 Added Unix bash support Added a DOS bash version V1.5a Nov 10 1997 Bug fix dos32 bit version long dir names support in Windows 95 dos-box V1.5 Oct 28 1997 More options: -Q -f -u Dos versions can work on read-only drives if TEMP environment variable is set. C shell support. V1.4b Sep 12 1997 Small bug fix perfect match list. Quiet option added. V1.4 Aug 18 1997 Added 32 bit DOS version. Changed source code for DJGPP compiler. This version is faster but needs a 80386 CPU or higher. V1.4 Jun 18 1997 Search with subdirectory definition (E.g. wcd adir1/adir2). V1.3a May 2 1997 The Unix version can now also deal with directory names with spaces, dollars, backslashes, single quotes and double quotes. V1.2c Feb 11 1997. Many bugs have been solved. V1.0 Nov 14 1996. Always let the user choose in case of multiple match. V1.0 beta Oct-1996 Original version. wcd-5.2.5/doc/INST_DOS.txt0000664000175000017500000001606212014453577015323 0ustar waterlanwaterlanInstall wcd on DOS, Windows, and OS/2. For installation on Unix/Linux/Cygwin see UNIX.txt. Contents ======== Basic installation 1 Installation on DOS and Windows 9x/ME - DOS 16 bit - DOS 32 bit - DOS Bourne Again Shell (bash) 2 Installation on Windows NT (NT/2000/XP/Vista/7) - Windows Command Prompt (cmd.exe) - Windows VISTA/7 - Windows PowerShell - WinZsh (zsh) and MSYS (bash) - Native MSYS (bash) - UNC support 3 Installation on OS/2 Basic installation ================== Unpack the zip file in a directory of your choice which we will call PREFIX. You will get the following directories: bin/ Program and run-time libraries. share/ Documentation and language files. Add directory 'bin' to your PATH environment variable: set PATH=%PATH%;PREFIX\bin Replace PREFIX with the directory path where you unpacked the zip file. ====================================================================== = 1 Installation on DOS and Windows 9x/ME = ====================================================================== - DOS 16 bit version: Make sure that wcd.exe is in your path. ...................................................................... - DOS 32 bit version: Make sure that wcd.exe and cwsdpmi.exe are in your path. ...................................................................... - DOS Bourne Again Shell (bash): Add the following function to your ~/_bashrc file. Notice that under Windows 95/NT the ~/.bashrc file overrides the ~/_bashrc file. In that case place the function in ~/.bashrc function wcd { PREFIX/bin/wcdbash.exe $* . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } Replace PREFIX with the prefix used during package installation. Start a new bash ... If HOME is set, DJGPP bash will read '_bashrc' from %HOME%. Your wcd function could now look like: function wcd { PREFIX/bin/wcd.exe $* . ${WCDHOME:-${HOME}}/wcd.go } If the environment variable WCDHOME is set wcd will use WCDHOME instead of HOME. ====================================================================== = 2 Installation on Windows NT (NT/2000/XP/Vista/7) = ====================================================================== - Windows Command Prompt (cmd.exe) Add the 'bin' folder to PATH. In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip "wcd.bat" runs the wcd program which generates a new batch script "wcdgo.bat". Then wcd.bat runs wcdgo.bat which actually changes the directory. ...................................................................... - Windows VISTA/7 In a Windows VISTA/7 Command Prompt you may have limited access to directories. To get access to more directories you need adminstrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select `Run as administrator'. ...................................................................... - Windows PowerShell See http://en.wikipedia.org/wiki/Windows_PowerShell It is required that environment variable HOME or WCDHOME is set. A function in your PowerShell user profile must be defined. The location of this profile is stored in the $profile variable. function wcd { PREFIX\bin\wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Replace PREFIX with the prefix used during package installation. Start a new PowerShell ...................................................................... - WinZsh (zsh) and MSYS (bash) A native Windows port of Z shell has been made by Amol Deshpande. See http://waterlan.home.xs4all.nl/#ZSH An updated version is available at: http://zsh-nt.sourceforge.net/ MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system. Offered as an alternative to Microsoft's cmd.exe, this provides a general purpose command line environment, which is particularly suited to use with MinGW, for porting of many Open Source applications to the MS-Windows platform. See also http://www.mingw.org/ It is required that environment variable HOME or WCDHOME is set. A function must be defined like this: function wcd { PREFIX/bin/wcdwin32zsh.exe $* . ${WCDHOME:-${HOME}}/wcd.go } MSYS bash: put this function e.g. in $HOME/.bashrc Z Shell : put this function e.g. in $HOME/.zshenv Replace PREFIX with the prefix used during package installation. You have to start MSYS like this: msys.bat --norxvt , because the default rxvt terminal doesn't accept standard input from native Windows programs. See also http://www.nabble.com/Accepting-standard-input-from-MSYS-with-native-Win32-programs-td19432889.html You need a recent version of msys.bat that supports option --norxvt. ...................................................................... - Native MSYS (bash) The native MSYS version of wcd is linked against the MSYS runtime DLL. This version uses MSYS style directory paths: E.g. in MSYS the path "C:\Program Files" maps to "/c/Program Files" Define a function like this: function wcd { PREFIX/bin/wcdmsys.exe $* . ${WCDHOME:-${HOME}}/bin/wcd.go } The native MSYS version behaves exactly as the Unix version of wcd: o) regards case by default. - Use option -i to ignore case. o) does not use drive letters. o) Uses the same filenames for treedata files etc. ...................................................................... - UNC support UNC stands for Universal Naming Convention. It is a Windows 9x/NT way of accessing network drives without using a drive letter. It's from Windows SMB LAN manager networking. A UNC path looks like: \\servername\sharename In Windows networking, you can map a drive letter to a UNC: net use G: \\gui_fileserv\apps The Windows Command Prompt version of wcd supports UNC paths since version 3.1.0. To change to the UNC path wcd makes use of the 'pushd' command in the wcdgo.bat script. Quote from John Savill's Windows NT/2000 FAQ (http://www.windows2000faq.com): "The 'pushd' command automatically maps a drive and navigates to it. If you run the 'net use' command after you run pushd, you'll see a new drive mapping. After you're done working in the UNC location, use the 'popd' command to navigate back to your original network location before you ran 'pushd'." Options -S, -A and -E can also work on servernames. For instance: wcd -S \\servername will search for shared directories on the server and scan them all. The Windows PowerShell and MSYS/ZSH version of wcd have full support of UNC paths. One can change directly to UNC paths, without mapping to a drive letter. ====================================================================== = 3 Installation on OS/2 = ====================================================================== - OS/2 Command Prompt (cmd.exe) Add the 'bin' folder to PATH. In OS/2 Command Prompt an OS/2 program cannot change the current work directory, but a .cmd file can. The command scrip "wcd.cmd" runs the wcd program which generates a new command script "wcdgo.cmd". Then wcd.cmd runs wcdgo.cmd which actually changes the directory. wcd-5.2.5/doc/SOURCE.txt0000664000175000017500000000776512344361742015051 0ustar waterlanwaterlan 1.0 Notes about the source code 1.1 Compiler support In general the supported compilers are GCC, Open Watcom, and Visual C++. DOS 16 bit The 16 bit DOS version is by default build with Open Watcom C. The code probably also compiles with Borland C/C++ 4.02, and the older Borland 3. Support for Borland was dropped in version 5.2.0 (Nov 11 2011), because Borland C is hard to get. The default compiler for 16 bit DOS used by the FreeDOS community is Open Watcom nowadays. DOS 32 bit The 32 bit dos versions are compiled with DJGPP (GCC for DOS) and do not use DOSDIR. DJGPP is a mix of DOS/Unix compiler (both MSDOS and 'unix' are defined). DOSDIR's dd_findfirst/dd_findnext implementation for Unix is build with opendir/readdir. Using DJGPP's implementation of opendir/readdir to scan a disk is about a factor 100 slower than using findfirst/findnext (with DJGPP 2.01, gcc 2.7.2). Also using DOSDIR's dd_findfirst/dd_findnext for DOS is very slow when it is compiled with DJGPP. It is about a factor 35 slower than using DJGPP's findfirst/findnext. Probably due to a slow stat() function in dd_initstruct(). Using DOSDIR in combination with DJGPP would make scanning the disk very slow. DJGPP gcc >= 4.6 seems to cause problems. Crashes of gcc itself, or crashing wcd binaries. Use DJGPP gcc <= 4.5.3. A 32 bit DOS wcd can also be build with the Open Watcom compiler. Windows The Windows versions are by default compiled with MinGW (GCC for Windows). Win32 versions can also be compiled with Open Watcom. Support for Borland was dropped in version 5.2.0 (Nov 11 2011), but it may still compile. Although Borland 4 can compile wcd with conio interface for Windows console, it doesn't work well. The screen gets garbled after exit. Support for LCC was dropped in version 5.2.1 (Feb 2012), mainly because lcc-make was not good. For instance it can't include sub-makefiles (version.mk). I tried gnu-make with LCC but that did not work well. MS Visual C++ (VC) support was added in version 5.2.3. VC is the most used compiler on Windows. OS/2 Wcd can be build for OS/2 with GCC, using EMX, or the Watcom C compiler. Unix Wcd for Unix compiles with gcc. Native system C compilers such as HP-UX cc or SunOS cc should also work but this not checked anymore. Therefore also the makefiles for HP and Sun have been removed. Gcc is general available on Unix or Unix like systems. 1.2 Curses support Wcd can optionally have a curse-based interface. Wcd compiles with curses, ncurses and pdcurses. Ncurses is preferred, because of portability and it restores the screen automatically after exit (if possible) and has better support for resizing of the terminal. The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SYSV-curses enhancements over BSD curses. The ncurses distribution is available via anonymous FTP at the GNU distribution site ftp://ftp.gnu.org/pub/gnu/ncurses. It is also available at ftp://ftp.clark.net/pub/dickey/ncurses. PDCurses is a port of System VR4 curses for multiple platforms. PDCurses has been ported to DOS, OS/2, X11, WIN32 and Flexos. A directory containing the port-specific source files exists for each of these platforms. Get it at http://pdcurses.sourceforge.net/ wcd-5.2.5/doc/problems.txt0000664000175000017500000000306211754256124015657 0ustar waterlanwaterlanKnown problems ============== 1 Unix shells (bash, ksh, sh, csh): Strange behaviour when the argument has a wildcard and matches a file or directory in the current directory. This is the result of the filename expansion of the shell. The work-around is to 'single quote' the argument. 2 Option -rmtree doesn't remove directories. This only happens with Windows versions when wcd has been build with Borland 5.x. The problem is not there when wcd has been build with any other compiler. 3 Garbage printed on screen after exit. Occurs in Windows NT/2000/XP console with large buffer with wcd for win32 when PDC_RESTORE_SCREEN is set. Windows only allows a relatively small buffer size to save. 4 `gmake install' may fail on Windows or OS/2. When you build wcd on Windows without the MSYS environment you may run into problems during `make install', because the GnuWin32 ports of `mkdir' and `install' of the coreutils package have problems. See http://sourceforge.net/tracker/?func=detail&aid=2115584&group_id=23617&atid=379173 Better use the MSYS environment. This problem is also seen on OS/2. Try an older version of coreutils package. ...................................................................... If you think you found a bug do the following. First check that you have the latest version of WCD. The bug may already have been solved. If it has not been solved than send me an e-mail . Describe the bug and tell me what version of WCD you use and under what operating system. Also ideas to improve wcd are welcome. wcd-5.2.5/doc/VISUALC.txt0000664000175000017500000001031012341176520015126 0ustar waterlanwaterlanThis file explains how to compile wcd for Windows with the Microsoft Visual C++ compiler. For Unix/Linux/Cygwin compile instructions see file UNIX.txt For DJGPP/MinGW/EMX compile instructions see file GCC_DOS.txt For Watcom C compile instructions see file WATCOMC.txt For how to install the program on DOS, Windows, OS/2 see file INST_DOS.txt. Prerequisites ============= * Visual C++ compiler. * pdcurses : CRT screen handling and optimization package * perl : Practical Extraction and Report Language (perlpod) Needed for building packages: * zip : compressor-archiver http://www.info-zip.org/ Visual C++ ========== You can get a free express version via this web page: http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express PDCurses ======== To build wcd with PDCurses interface you need to have the PDCurses library installed. Get PDCurses at http://sourceforge.net/projects/pdcurses/ Compile it and copy the library file into the proper VC\lib directory and the curses.h file in the VC\include directory. Build PDCurses width wide character support (WIDE=Y), also when you build a wcd version without Unicode support. A non-Unicode Windows version of wcd will still use Unicode for the interface. Name the library "pdcursesw.lib". Perl ==== Perl is required for the generation of the manual in text and html format. The wcd source package includes all documentation files. When you want to recreate the manuals, you need a 'perl' installation. There exist ready-to-run perl packages. Windows: Strawberry Perl: http://strawberryperl.com/ Active Perl : http://www.activestate.com/activeperl Problems on Windows VISTA and higher ==================================== To be able to run `nmake install' you may need adminstrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select `run as administrator'. Basic Installation ================== win32 : Windows 32 bit console version. win32psh : Windows 32 bit PowerShell version. win32zsh : Windows 32 bit for WinZsh or MSYS. win64 : Windows 64 bit console version. win64psh : Windows 64 bit PowerShell version. win64zsh : Windows 64 bit for WinZsh or MSYS. Change to the appropriate directory `win32', `win32psh', `win32zsh', `win64', `win64psh', or `win64zsh' directory. Then change to the `vc' subdirectory. Build wcd: Type `nmake' to compile the package. Install wcd: Type `nmake install' to install the package. `nmake install' will also compile the package if it wasn't done yet. To start clean: Type `nmake clean' Curses interface ================ The default interface is pdcurses. Wcd uses PDCurses with wide character support (CURSES=pdcursesw) To disable CURSES and compile with stdio interface, reset the CURSES variable: nmake CURSES= Graphical tree ============== By default the graphical tree is drawn with line drawing characters. If these are not available on your system you can set ASCII_TREE=1 so that ASCII characters are used instead. nmake ASCII_TREE=1 Unicode support =============== To activate Unicode support add UCS=1 to the nmake command: nmake UCS=1 Installation Names ================== By default `nmake install' will install the program in /usr/bin, the language files in /usr/share/locale and the man file in /usr/share/man. You can specify an installation prefix other than `/usr' by giving `nmake' the option `prefix=PATH'. Example: nmake mostlyclean nmake nmake install prefix=c:\Users\waterlan The default prefixes are the same for as for GCC. win32 : The default PREFIX is c:\usr\local win32zsh : The default PREFIX is c:\usr\local win32psh : The default PREFIX is c:\usr\local win64 : The default PREFIX is c:\usr\local64 win64psh : The default PREFIX is c:\usr\local64 win64zsh : The default PREFIX is c:\usr\local64 manual pages in html and text format ==================================== To create the manuals in txt and html format type: nmake doc To install the manuals in txt and html format type: nmake install-doc distribution package ==================== After installation a ready-to-run binary distribution package can be created. Type `nmake dist' to create the package. wcd-5.2.5/doc/dosdir.txt0000664000175000017500000000503311074472234015315 0ustar waterlanwaterlan DOSDIR: A Portable DOS/UNIX/VMS Directory Interface version 2.1a ----------------------------------------------- DOSDIR is an implementation of the MS-DOS directory functions (findfirst, findnext, and fnsplit) on MS-DOS, UNIX, and VMS platforms using the appropriate file & directory structure. It uses the DOS directory framework to provide a portable interface for MS-DOS/UNIX/VMS application programmers. DOSDIR minimizes the OS- specific directory access code for applications allowing programmers to concentrate on the application itself and not on the low-level directory and file structure. DOSDIR applications will run on their native operating systems with the appropriate file syntax and handling, which is expected for that platform. An alternative mechanism, the POSIX opendir/readdir directory functions, provides low-level directory access with all of the file handling in the application. Findfirst/findnext filter files matching a filemask and returns file information, such as whether the entry is directory or a regular file or the entry is read-only. However, readdir() returns only the filenames of files in the opened directory stream. The package includes the following files: COPYING - GNU license and copying conditions. dosdir.c - DOSDIR findfirst/findnext functions dirent.c - C/C++ Run Time Library opendir/readdir functions fnsplit.c - C/C++ Run Time Library fnsplit function match.c - Info-ZIP regular expression evaluator *.h - DOSDIR header files dirtree.c - Example graphically displays directory structure filelist.c - Example program using dosdir directory functions example2.c - Another example program example3.c - An example program for opendir functions makefile.bor - Makefile for MS-DOS with Borland C++ makefile.unx - Makefile for UNIX with gcc or cc vaxmake.com - Script to compile examples for VAX/VMS DOSDIR supports and has been tested under the following systems: MS-DOS 3.3/5.0 with Borland C++ V3.x/4.0, Turbo C, or Microsoft C V6.0/7.0, SunOS 4.1 with SUN or GNU C compilers, SGI IRIX 4.05 and 5.x, DEC Alpha OSF/1, and VMS 5.5 with VAX C. Other comparable ANSI C compilers should work as well. Jason Mathews The MITRE Coporation 202 Burlington Road Bedford, MA 01730-1420 Email: mathews@mitre.org, mathews@computer.org DOSDIR is free software, you can redistribute it and/or modify it under the terms of the GNU General Public License, a copy of which is provided under the name COPYING. wcd-5.2.5/doc/GCC_DOS.txt0000664000175000017500000001715212345657427015152 0ustar waterlanwaterlanThis file explains how to compile wcd for DOS, Windows, and OS/2 with GNU C compiler (GCC, DJGPP/MinGW/EMX). For Unix/Linux/Cygwin compile instructions see file UNIX.txt For how to install the program on DOS, Windows, OS/2 see file INST_DOS.txt. Prerequisites ============= * gcc : GNU C compiler * make : GNU make * sh : POSIX type shell * coreutils : GNU core utilities package Optional: * perl : Practical Extraction and Report Language (perlpod) * gettext : Framework to help GNU packages produce multi-lingual messages. * libiconv : Character set conversion library. * pdcurses : CRT screen handling and optimization package If you want to generate PostScript or PDF versions of the manual: * groff : GNU troff text formatting system. * ghostscript : An interpreter for the PostScript language and for PDF (ps2pdf) Needed for building packages: * zip : compressor-archiver gcc === DOS : DJGPP : http://www.delorie.com/djgpp/ Windows : MinGW : http://www.mingw.org/ Windows : MSYS2 : http://sourceforge.net/projects/msys2/ OS/2 : EMX : DJGPP gcc >= 4.6 seems to cause problems. Crashes of gcc itself, or crashing wcd binaries. Use DJGPP gcc <= 4.5.3. Wcd compiles with mingw.org and mingw-w64. I recommend using the MSYS2 project. The MSYS2 project includes the MinGW-w64 compiler for both 32 and 64 bit. Plus it includes a complete building environment. A POSIX shell, and many libraries and utilities. See also http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/ sh == A POSIX type shell. A copy of Bash or Zsh will do. GNU make may not work as expected if you don't have a proper shell installed. You can choose a shell for GNU Make by setting the environment variable SHELL. See also the GNU make manual: http://www.gnu.org/software/make/manual/make.html#Choosing-the-Shell DJGPP : Includes bash MinGW-w64 : Use MSYS2 In DJGPP it is certain that you get problems if you don't make the SHELL variable point to bash (c:/djgpp/bin/bash.exe). make, coreutils =============== make and coreutils can be found as packages on the web site of the gcc compiler. Coreutiles is needed for `chmod', `install', `mkdir', `mv', `rm', and `uname'. install : copy files and set their attributes (part of GNU `coreutils' package). For DJGPP compiler use package `fileutils' instead of `coreutils'. Coreutils is not (yet) available for DJGPP. DJGPP : http://www.delorie.com/pub/djgpp/current/v2gnu/ MSYS2 : http://sourceforge.net/projects/msys2/ perl ==== Perl packages are distributed with the DJGPP, MinGW, and EMX environment. DJGPP : http://www.delorie.com/pub/djgpp/current/v2gnu/ MSYS2 : http://sourceforge.net/projects/msys2/ gettext (libintl) and libiconv ============================== gettext and libiconv can be found as packages on the web site of the gcc compiler. DJGPP : http://www.delorie.com/pub/djgpp/current/v2gnu/ MSYS2 : http://sourceforge.net/projects/msys2/ Until wcd version 5.1.1 I used GnuWin32's gettext/libiconv instead of MinGW's, because the GnuWin32 port of libintl (part of gettext) has builtin relocation support. From wcd version 5.1.2 I use MinGW's gettext/libiconv. Wcd win32 binaries are packed with a patched version of MinGW's libintl-8.dll that also supports relocation. See also http://waterlan.home.xs4all.nl/libintl.html and http://sourceforge.net/p/mingw/bugs/1808/ The patch was not accepted by MinGW.org, but the MSYS2 project has included the patch for both 32 and 64 bit. PDCurses ======== To build wcd with PDCurses interface you need to have the PDCurses library installed. Get PDCurses at http://sourceforge.net/projects/pdcurses/ Compile it and copy the library file into the \lib directory of your compiler and the curses.h file in the \include directory. The DJGPP and MinGW project also provide ready-to-use binary PDCurses packages. groff and ghostscript ========================== These packages are needed if you want to create PostScript and PDF versions of the wcd manual page. The manual pages are included in the wcd DOS source package, not in the Unix source package. Groff and ghostscript are available in the Cygwin environment (http://cygwin.com). Problems on Windows VISTA and higher ==================================== To be able to run `gmake install' you may need adminstrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select `run as administrator'. Basic Installation ================== dos32 : DOS 32 bit dos32bsh : DOS 32 bit for BASH win32 : Windows 32 bit console version. win32psh : Windows 32 bit PowerShell version. win32zsh : Windows 32 bit MSYS and ZSH version. win64 : Windows 64 bit console version. win64psh : Windows 64 bit PowerShell version. win64zsh : Windows 64 bit MSYS and ZSH version. msys : Native MSYS version. os2 : OS/2 32 bit console version. Change to the appropriate directory `dos32', `dos32bsh', `win32', `win32psh', `win32zsh', `win64', `win64psh', `win64zsh', 'msys', 'os2'. Build wcd: Type `make' to compile the package. Install wcd: Type `make install' to install the package. `make install' will also compile the package if it wasn't done yet. To start clean: Type `make clean' Native Language Support (NLS) ============================= NLS is by default enabled. To disable reset the ENABLE_NLS variable: make ENABLE_NLS= Curses interface ================ The default interface is curses. win32* and win64* uses PDCurses with wide character support (CURSES=pdcursesw) OS/2 uses NCurses (CURSES=ncurses) To disable CURSES and compile with stdio interface, reset the CURSES variable: make CURSES= Graphical tree ============== By default the graphical tree is drawn with line drawing characters. If these are not available on your system you can set ASCII_TREE=1 so that ASCII characters are used instead. make ASCII_TREE=1 Conio interface (DOS only) ========================== To enable the conio interface instead of curses add CONIO=1: make CONIO=1 Unicode support =============== To activate Unicode support add UCS=1 to the make command: make UCS=1 This requires a (pd/n)curses installation with wide character support. Not supported for DOS versions of wcd. Unicode is only supported in Windows PowerShell, and Command Prompt on Windows 7 or higher. Enable Unicode normalization with UNINORM=1. This implies UCS=1. make UNINORM=1 Unicode normalization requires libunistring, see http://www.gnu.org/s/libunistring/ http://en.wikipedia.org/wiki/Unicode_normalization Get libunistring packages via http://waterlan.home.xs4all.nl/libunistring.html Installation Names ================== By default `make install' will install the program in /usr/bin, the language files in /usr/share/locale and the man file in /usr/share/man. You can specify an installation prefix other than `/usr' by giving `make' the option `prefix=PATH'. Example: make clean make prefix=c:/Users/waterlan make install prefix=c:/Users/waterlan dos32 : The default PREFIX is c:/dos32 dos32bsh : The default PREFIX is c:/dos32 win32 : The default PREFIX is c:/usr/local win32psh : The default PREFIX is c:/usr/local win32zsh : The default PREFIX is c:/usr/local win64 : The default PREFIX is c:/usr/local64 win64psh : The default PREFIX is c:/usr/local64 win64zsh : The default PREFIX is c:/usr/local64 msys : The default PREFIX is /usr os2 : The default PREFIX is c:/usr distribution package ==================== After installation a ready-to-run binary distribution package can be created. Type `make dist' to create the package. wcd-5.2.5/doc/WATCOMC.txt0000664000175000017500000001100312334504141015111 0ustar waterlanwaterlanThis file explains how to compile wcd for DOS, Windows, and OS/2 with the Open Watcom C compiler. For Unix/Linux/Cygwin compile instructions see file UNIX.txt For DJGPP/MinGW/EMX compile instructions see file GCC_DOS.txt For MS Visual C++ compile instructions see file VISUALC.txt For how to install the program on DOS, Windows, OS/2 see file INST_DOS.txt. Prerequisites ============= * Watcom C compiler. * pdcurses : CRT screen handling and optimization package * perl : Practical Extraction and Report Language (perlpod) Needed for building packages: * zip : compressor-archiver Watcom C ======== There is a free version of the Watcom C compiler available at http://www.openwatcom.org/ It includes cross compilation. From a Windows machine you can also create DOS and OS/2 programs. PDCurses ======== To build wcd with PDCurses interface you need to have the PDCurses library installed. Get PDCurses at http://sourceforge.net/projects/pdcurses/ Compile it and copy the library file into the proper \lib directory and the curses.h file in the \watcom\h directory. The Windows versions of wcd require PDCurses with wide character support, also if you build a non-Unicode version of wcd for Windows. Perl ==== Perl is required for the generation of the manual in text and html format. The wcd source package includes all documentation files. When you want to recreate the manuals, you need a 'perl' installation. There exist ready-to-run perl packages. DOS: DJGPP project: http://www.delorie.com/djgpp/ ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/perl588b.zip Windows: Strawberry Perl: http://strawberryperl.com/ Active Perl : http://www.activestate.com/activeperl Problems on Windows VISTA and higher ==================================== To be able to run `wmake install' you may need adminstrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select `run as administrator'. Basic Installation ================== dos16 : DOS 16 bit dos32 : DOS 32 bit dos32bsh : DOS 32 bit for BASH win32 : Windows 32 bit console version. win32zsh : Windows 32 bit for WinZsh or MSYS. win32psh : Windows 32 bit PowerShell version. os2 : OS/2 32 bit console version. Change to the appropriate directory `dos16', `dos32', `dos32bsh', `win32', `win32zsh', `win32psh', 'os2'. Then change to the `watcom' subdirectory when it is present. Build wcd: Type `wmake' to compile the package. Install wcd: Type `wmake install' to install the package. `wmake install' will also compile the package if it wasn't done yet. To start clean: Type `wmake clean' Curses interface ================ The default interface is pdcurses. win32* uses PDCurses with wide character support (CURSES=pdcursesw) To disable CURSES and compile with stdio interface, reset the CURSES variable: wmake CURSES= Graphical tree ============== By default the graphical tree is drawn with line drawing characters. If these are not available on your system you can set ASCII_TREE=1 so that ASCII characters are used instead. wmake ASCII_TREE=1 Unicode support =============== To activate Unicode support add UCS=1 to the wmake command: wmake UCS=1 This requires a (pd/n)curses installation with wide character support. Not supported for DOS and OS/2 versions of wcd. Unicode is only supported in Windows PowerShell, and Command Prompt on Windows 7 or higher. Installation Names ================== By default `wmake install' will install the program in /usr/bin, the language files in /usr/share/locale and the man file in /usr/share/man. You can specify an installation prefix other than `/usr' by giving `wmake' the option `prefix=PATH'. Example: wmake clean wmake wmake install prefix=c:\Users\waterlan The default prefixes are the same for Watcom C as for GCC. dos16 : The default PREFIX is c:\dos dos32 : The default PREFIX is c:\dos32 dos32bsh : The default PREFIX is c:\dos32 win32 : The default PREFIX is c:\usr\local win32zsh : The default PREFIX is c:\usr\local win32psh : The default PREFIX is c:\usr\local os2 : The default PREFIX is c:\usr manual pages in html and text format ==================================== To create the manuals in txt and html format type: wmake doc To install the manuals in txt and html format type: wmake install-doc distribution package ==================== After installation a ready-to-run binary distribution package can be created. Type `wmake dist' to create the package. wcd-5.2.5/doc/todo.txt0000664000175000017500000000336712276751450015013 0ustar waterlanwaterlan TO DO ===== * Translate the program messages. Translation of the messages for wcd is going via the Translation Project (TP). See http://translationproject.org/domain/wcd.html * Translate the manual. Contact Erwin Waterlander if you want to help (waterlan@xs4all.nl). * Support scripts that write from right to left like Arabic, Persian or Hebrew. I always kept this in mind while developing wcd: * keep it simple. Usable without knowing all the options. * wcd is a directory changer. The main goal is to change directory with a minimal amount of keystrokes. Don't change wcd into a directory/file manager. * low requirements. A minimal wcd version can be build with just an ansi-C compiler. The graphical tree can be drawn with ascii characters and colours are not required. This way wcd runs also on very old systems. * portable So I can use wcd everywhere. * backwards compatible Don't bother users. In a multi-user environment, old and new versions can be used together. NOT TO DO ========= Things I deliberately not implemented. (This may change in the future.) * Extended regular expressions support. Full regular expressions are too powerful for file and directory name matching. All normal shell commands like `ls' and `cp' use glob style matching and that is what users are used to. Full regular expressions are not really needed. * Approximate (fuzzy) matching. I have made in the past a wcd version with full regular expressions and fuzzy matching support. My experience was that when the number of directories is very large the fuzzy matching often causes unexpected behaviour. That is why I removed it again. I used the TRE regexp matching library, made by Ville Laurikari. See http://www.laurikari.net/tre/ wcd-5.2.5/doc/UNIX.txt0000664000175000017500000001744112343705203014615 0ustar waterlanwaterlanPREREQUISITES Required * gcc : GNU C compiler * make : GNU make * sh : POSIX type shell * coreutils : GNU core utilities package (chmod, install, mkdir, mv, rm, uname) * sed : Stream editor Optional (depending on build targets): * perl : Practical Extraction and Report Language (perlpod) perl >= 5.10.1 is required. * gettext : Framework to help GNU packages produce multi-lingual messages. * po4a : PO for anything. * ncurses : CRT screen handling and optimization package. * groff : GNU troff text formatting system. * ghostscript : An interpreter for the PostScript language and for PDF (ps2pdf) Check if you have GNU make(1) and GNU gcc(1) installed on your system. On some systems GNU make may be installed as 'gmake' command. make --version gcc --version BASIC INSTALLATION Change to directory src/ To compile using GNU make: make all Options that can be enabled during compiling UCS=1 Enable Unicode (UTF8) support The default value is empty. On Cygwin the default value is 1. UNINORM=1 Enable Unicode normalization. The default value is empty. On Cygwin the default value is 1. Requires libunistring, see http://www.gnu.org/s/libunistring/ http://en.wikipedia.org/wiki/Unicode_normalization ENABLE_NLS=1 Enable native language support. That is, use locale files. The default value is 1. STATIC=1 Enable static linking. Make a standalone wcd binary. The default value is empty. DEBUG=1 A debug enabled build can be made by adding DEBUG=1 to the make command. LFS= Large File Support (LFS) is by default enabled. This enables the use of 64 bit file system interface on 32 bit systems. This makes it possible to open files larger than 2GB on 32 bit systems, provided the OS has LFS support builtin. To disable LFS make the LFS variable empty. Example: Disable LFS: make clean install LFS= CURSES= Select curses library. The default value is 'ncurses'. Only an expert should change this. NCURSES_DEBUG=1 Link with ncurses debug enabled library by adding NCURSES_DEBUG=1 to the make command. ASCII_TREE=1 Draw graphical tree with ASCII characters. The default value is empty. EXT=.exe Set executable extension The default value is '.exe' to make a distinction between the binary and the function/alias. HMTLEXT=html Set HTML manual file extension. The default value is 'htm' to support all platforms. An example to enable unicode support, provided that the library libncursesw is also available: make UCS=1 clean all To disable Native Language Support, reset the ENABLE_NLS variable: make ENABLE_NLS= To disable curses and compile with plain stdin/stdout interface type, reset the CURSES variable: make CURSES= To install: make all strip install Now go to section SHELL INTEGRATION below. INSTALLATION NAMES By default the 'install' target will install the program in /usr/bin, the language files in /usr/share/locale and the man page in /usr/share/man. You can specify an installation prefix other than /usr by modifying the 'prefix' variable. An Example: make prefix=$HOME clean all make prefix=$HOME strip install SHELL INTEGRATION See manual page section "INSTALLATION" how to manually configure the shell to use the program. It is required to configure your shell, otherwise wcd cannot work. Alternatively you can use the shell scripts that are provided to install the wcd function (sh) or alias (csh) under /etc/profile.d/. To install these scripts type: make install-profile If you wish that Wcd stores its files under $HOME/.wcd instead of $HOME, add DOTWCD=1. This will add a definition of WCDHOME=$HOME/.wcd (see manual). make install-profile DOTWCD=1 Under Cygwin these shell scripts are always installed. INTERNATIONAL MAN PAGES All man pages are encoded in UTF-8, because even Western-European man pages may contain Unicode characters not supported by the Latin-1 (ISO-8859-1) character set. Originally the Unix man system supported only man pages in Latin1 format. Although the world is moving to Unicode format (UTF-8) there is still a lot of Latin1 legacy around. The English man page is a pure ASCII file and is readable on all platforms. Non-English man pages are encoded in UTF-8. These do not show properly on old systems. Man pages in UTF-8 format are shown properly on Linux. Not all roff implementations support UTF-8. In order to show UTF-8 man pages properly on Cygwin you need to do the following when you use classic man: In /etc/man.conf, change the NROFF definition to use 'preconv'. NROFF /usr/bin/preconv | /usr/bin/nroff -c -mandoc 2>/dev/null To view the man page set the correct locale. E.g. for Ukrainian: export LANG=uk_UA.UTF-8 man dos2unix When you use man-db all pages are shown correctly automatically. DOCUMENTATION Manual pages are generated from Perl POD files. The manual pages in text and html format are by default only created in English language. To create text and html manuals for other languages type: make txt make html Once the manuals in non-English languages have been created, they will also be installed under share/doc/ when you type 'make install' Manuals in PDF format are by default not created. To create manuals in PDF format type: make pdf PDF generation requires GhostScript to be installed. BINARY DISTRIBUTION PACKAGE CREATION After installation, a package can be created that contains a ready-to-run wcd binary. Type `make dist' to create a .tar.gz file. Type `make dist-zip' to create a .zip file. PORTABILITY See also file SOURCE.txt. -- A compile error occurs when you use gcc < 3.0 and is included somewhere (e.g. in curses.h). Thanks to Kevin M. Rosenberg, apply the following patch: patch -p1 < patch/wcd_bool.diff -- Conflicting curses.h ncurses.h On some systems curses.h is conflicting with ncurses.h. To compile wcd you can solve this by creating a symbolic link curses.h in the wcd source directory pointing to the ncurses.h file and adding -I. to CFLAGS in old/Makefile.ncurses.gcc. This problem was seen on a BSDI BSD/OS 4.0 system. /usr/local/include/ncurses.h End of file wcd-5.2.5/doc/README.txt0000664000175000017500000003477512345660627015014 0ustar waterlanwaterlanFile list README.txt : This file. SOURCE.txt : Notes about the source code. INSTALL.txt : Installation documentation. ../src/man/man1/wcd.txt : Manual, text format. ../src/man/man1/wcd.htm : Manual, HTML format. whatsnew.txt : Change log. faq.txt : Frequently Asked Questions. copying.txt : distribution license. problems.txt : Known problems. todo.txt : Things to do. Table of Contents 1.0 History 2.0 Copyright 2.1 C3PO data structures 2.2 DOSDIR 2.3 Recmatch 2.4 Ninux Czo Directory 2.5 Miscellaneous bits and pieces 3.0 Acknowledgements 3.1 Translators 3.2 Works of others used in the program 4.0 Contact and Download information 1.0 History In 1995 I started working for Philips Research in Eindhoven. I had to do all my work on HP Unix (HP-UX). I was missing an application like Norton Change Directory (NCD). I didn't know of any other NCD like program so in 1996 I decided to make it myself. On the internet I found Jason Mathew's DOSDIR package in the Simtel archives. DOSDIR was my starting point. Because DOSDIR was portable I could make wcd at home with Borland-C 3.1 on my PC (intel 80486, 80 MHz) on DOS 6.2. I mailed the source code to work and there I build a version for HP-UX. I made wcd for myself, but was happy to share it with others. Some colleagues started using wcd. In 1997, I found the DJGPP compiler and used that as my main development environment. Now I was able to create a 32 bit DOS version, and it supported long directory names under Windows 95. In Dec 1997 I put wcd on the internet. I was amazed that already 7 people downloaded it in the first month. From then on development was driven a lot by feedback I got via the internet. In March 1998 the GNU distribution license was attached to version 2.0.0. Later I installed Linux (RedHat 5.0) on my PC at home and that became my main development platform. Because eventually most DOS users will migrate to Windows I ported wcd to Windows NT. I started with Borland C 4.0, but changed soon to the MinGW compiler. The first Win32 port was ready in November 1999. The DOS 32 bit version still stayed the most popular version for a long time. In 2003 the Windows NT port became most popular. In April 2000 (version 2.3.0) a curses based interface was added to have a consistent interface on all platforms. And a year later the 'graphical tree' curses interface was added (version 3.0.0). I used wcd mainly in an ASCII (C) environment. Only since version 3.2.0 in Dec 2005 eight bit characters sets were properly supported. After a development pause of two years, version 4.0.0 (Sep 2008) was the first which supported internationalization by message translations via gettext. Since version 5.0.0 (Mar 2009) wcd supports Unicode, to enable internationalization for all languages. In the beginning this development was done on Linux, and later on Cygwin which supports Unicode since version 1.7. 2.0 Copyright Copyright (C) 1997-2014 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Visit 2.1 C3PO data structures Data structures with dynamic memory allocation were created with Ondrej Popp's C3PO ( Compiler Compiler Compiler Popp Ondrej ). http://sourceforge.net/projects/c3po/ email: 2.2 DOSDIR Wcd uses DOSDIR for scanning the disk. Only the parts of DOSDIR that are distributed under GNU General Public License are used in WCD. DOSDIR: A Portable DOS/UNIX/VMS Directory Interface DOSDIR minimizes the OS-specific directory access code for applications allowing programmers to concentrate on the application itself and not on the low-level directory and file structure. DOSDIR applications will run on their native operating systems with the appropriate file syntax and handling, which is expected for that platform. Copyright (C) 1994 Jason Mathews. Jason Mathews The MITRE Corporation 202 Burlington Road Bedford, MA 01730-1420 Email: mathews@mitre.org, mathews@computer.org DOSDIR can be download from my own homepage http://waterlan.home.xs4all.nl/ 2.3 Recmatch I used the regular matching algorithm, recmatch(), of Info-Zip's unzip program. recmatch() was written by Mark Adler. Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, Kai Uwe Rommel and Igor Mandrichenko. Mark Adler (original Zip author; UnZip decompression; writer of recmatch() ) and Greg Roelofs (former UnZip maintainer/co-author) have given permission to me to distribute recmatch() (match.c,match.h) under the GNU General Public License conditions as long as there's some sort of comment included that indicates it came from Info-ZIP's UnZip/Zip and was written by Mark Adler. Info-ZIP's home WWW site is at: http://www.info-zip.org/ 2.4 Ninux Czo Directory Ideas and source code of NCD (Ninux Czo Directory) have been used in the WCD graphical interface. Ninux Change Directory Copyright (C) 1995 Borja Etxebarria or http://www.ibiblio.org/pub/Linux/utils/shell/ncd-0.9.8.tgz Additions on NCD were made by Olivier Sirol (Czo) Ninux Czo Directory Copyright (C) 1995 Borja Etxebarria Copyright (C) 1996 Olivier Sirol Olivier Sirol http://www.ibiblio.org/pub/Linux/utils/file/managers/ncd1_205.tgz 2.5 Miscellaneous bits and pieces wcd_fixpath() is a modified version of _fixpath() Copyright (C) 1995-1996 DJ Delorie, see COPYING.DJ for details _fixpath() is a library function of libc for DJGPP. See also http://www.delorie.com/djgpp/ Source code to scan Windows LAN was originally written and placed in the Public Domain by Felix Kasza. Copied from Felix Kasza's Win32 Samples page at MVPS.ORG. http://www.mvps.org/win32/ Source code for colours in curses interface was copied from the PDCurses demo program 'tui'. The 'tui' demo program was originally written by P.J. Kunst and placed in the Public Domain. Markus Kuhn's free wcwidth() implementation is used in Wcd for Windows. See also http://www.cl.cam.ac.uk/~mgk25/unicode.html Rugxulo is the original autor of query_con_codepage(), which is in the public domain. 3.0 Acknowledgements Thanks to the following people for giving ideas and/or reporting/solving bugs: Leo Sevat (First user) Paul Lippens (? I forgot. ew) Ondrej Popp (relative treefiles) Ad Vaassen (subdirectories) Michael Magan (interface) Christopher Drexler (bugfix on SGI IRIX64) Richard Tietjen (HOME on DOS/Windows) Howard Schwartz (interface: use letters, WCDHOME) Ajit J. Thakkar (zsh on windows) Christian Mondrup (man page) Gary R. Johnson (graphical tree mode) Peter Gutmann (just go mode) Etienne Joarlette (SunOS makefile) Edwin Rijpkema (zoom in graphical tree mode) Juhapekka Tolvanen (man page) Andre vd Avoird (Keep paths, -k) Kevin M. Rosenberg (patch for compile problems w.r.t. gcc and , man page) Zoltan Varady (fix compile problems on Mac OS X/Darwin) Eric Auer (default makefile for DOS 16 bit (compact memory model) works again) Val Vakar (WCDFILTER) Jari Aalto (man page improvements) Jari Aalto (option -l takes alias directly) Jari Aalto (in match list key z does page down.) Jari Aalto (Swap options -v and -V.) Jari Aalto (Unix: Replace volume manager path of HOME dir by "$HOME") Jari Aalto (Makefile improvements) Jari Aalto (Updated installation documentation) Jari Aalto (Code cleanup) Jari Aalto (Generate manual from Perl POD file) Jari Aalto (Reformat README file.) Jari Aalto (Fix compilation on Solaris) Jari Aalto (Version date in ISO 8601 format) Gabor Grothendieck (UNC paths support) Gabor Grothendieck (automatically set PDC_RESTORE_SCREEN) Gabor Grothendieck (original console colours on windows) Mark Hessling (original console colours on windows) Mark Hessling (fix: scroll away problem on Windows NT/2000/XP) Ken Zinnato (alternative tree navigation) Scott D Friedemann (fix: curses interface writes uninitialised data to screen) Richard Boss (dump matches to stdout) Richard Boss (8-bit characters) Richard Boss (print match list at bottom of console) Roland Messier Shell script to compile wcd for QNX 4.25 systems. Elbert Pol Port to OS/2 Warp Billy Chen Optional colours in graphical mode (option -K) Billy Chen Less screen movement when navigating in graphical mode. anonymous Alternate stack file support. Laurence Errington Simpler installation instructions for Windows Command Prompt anonymous Support user names with spaces on Windows. Justin Lecher Makefile improvements. Eli Zaretskii Don't follow symbolic links on Windows. Thomas Dickey Use of ncurses on Windows. Misty De Meo Fix: Compilation on OS X/FreeBSD. David Binderman Fixed a dangerous string usage. Benno Schulenberg Cleanup user interface messages. 3.1 Translators Thanks to the following translators: Since verion 5.2.5 wcd is part of the Translation Project (TP). All translations of the messages go via the Translation Project. see http://translationproject.org/domain/wcd.html Dutch Erwin Waterlander Version 4.0.0 - 5.2.4 Dutch Benno Schulenberg Version 5.2.5 Esperanto Benno Schulenberg Version 5.2.5 Finnish Jari Aalto Version 5.1.0 - 5.2.4 Finnish Jorma Karvonen Version 5.2.5 German Philipp Thomas Version 5.1.3 - 5.2.5 German Lars Wendler Version 5.2.4 German Mario Blättermann Version 5.2.5 Spanish Julio A. Freyre-Gonzalez Version 5.0.4 - 5.2.4 Ukrainian Yuri Chornoivan Version 5.2.5 Vietnamese Trần Ngọc Quân Version 5.2.5 Translations of the manual: See http://translationproject.org/domain/wcd-man.html Dutch Erwin Waterlander Version 5.2.5 German Mario Blättermann Version 5.2.5 Ukrainian Yuri Chornoivan Version 5.2.5 3.2 Works of others used in the program Thanks to the following people for using their Free software: Ondrej Popp, C3PO Jason Mathews, dosdir Mark Adler, recmatch() DJ Delorie _fixpath() Borja Etxebarria & Olivier Sirol Ninux Czo Directory Felix Kasza WIN32 API sample WNetOpenEnum()/WNetEnumResource() MVPS.ORG http://www.mvps.org/win32/ Markus Kuhn wcwidth(), used in Windows version of Wcd. http://www.cl.cam.ac.uk/~mgk25/unicode.html Rugxulo query_con_codepage() http://sites.google.com/site/rugxulo/ 4.0 Contact and Download information I can be contacted via E-mail: waterlan@xs4all.nl -- Latest development source code is maintained in SourceForge Subversion repository: svn checkout svn://svn.code.sf.net/p/wcd/code/trunk wcd-code The latest WCD packages, executables and sources, can be downloaded from this internet-page: http://waterlan.home.xs4all.nl/ -- SourceForge project page: http://sourceforge.net/projects/wcd/ Freecode project page: http://freecode.com/projects/wcd/ -- For each release of wcd there are two source packages (the question marks indicate the version number): wcd-?.?.?.tar.gz : source package Source code in unix text. wcd???.zip : source package Source code in DOS text. -- Wcd is also distributed by: Debian Linux http://packages.debian.org/search?keywords=wcd Ubuntu Linux http://packages.ubuntu.com/ Fedora Linux Gentoo Linux Simtel.Net: Search: wcd SYSTEM UTILITIES > File management and conversion utils > wcd Ibiblio (was Metalab (was SunSite)): http://www.ibiblio.org/pub/Linux/utils/shell/ -- Erwin Waterlander wcd-5.2.5/doc/faq.txt0000664000175000017500000000372011365065350014601 0ustar waterlanwaterlan sh/bash/zsh/csh: Q: I have installed wcd. It looks like it works, but the directory is actually not changed. A: The directory can only be changed by the shell builtin cd command. You need to define a wcd function or alias. See the manual or the installation documentation. bash: Q: I have wcd.exe installed and defined the function in ~/.bashrc but the shell returns: "command not found". A: The problem is that ~/.bashrc is not executed because the bash is started as an interactive login shell. The bash only executes the commands in ~/.bashrc if it is started as an interactive shell that is not a login shell. If the bash is started as an interactive login shell it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The solution is to define the wcd function in one of these files. Windows Q: How do I automatically start the explorer after wcd? A: If you use the DOS 32 bit version on windows 95/98/ME this batch script will work: @echo off wcd.exe %1 %2 %3 %4 %5 %6 explorer.exe . If you use the win32 console version add an extra line to your wcd.bat script (on windows NT/2000/XP/Vista/7). @echo off wcdwin32.exe %* echo explorer.exe . >> c:\wcdgo.bat c:\wcdgo.bat Windows NT/2000/XP/Vista/7 Q: The system administrator has set environment variable HOME, but I want the behaviour of wcd as if HOME and WCDHOME were not set (as I was used to on DOS/Windows 9x). A: In the wcd.bat file you have to copy HOME into another variable, unset HOME, run wcd, and copy HOME back to its original value. An example follows: @echo off set HOMETEMP=%HOME% set HOME= wcdwin32.exe %* set HOME=%HOMETEMP% c:\wcdgo.bat You may need to rescan your drives after this. wcd-5.2.5/doc/copying.dj0000664000175000017500000000304711324023155015252 0ustar waterlanwaterlanThis is the file "copying.dj". It does not apply to any sources or binaries copyrighted by UCB Berkeley or the Free Software Foundation. Copyright Information for sources and executables that are marked Copyright (C) DJ Delorie 24 Kirsten Ave Rochester NH 03867-2954 This document is Copyright (C) DJ Delorie and may be distributed verbatim, but changing it is not allowed. Source code copyright DJ Delorie is distributed under the terms of the GNU General Public Licence, with the following exceptions: * Any existing copyright or authorship information in any given source file must remain intact. If you modify a source file, a notice to that effect must be added to the authorship information in the source file. * binaries provided in djgpp may be distributed without sources ONLY if the recipient is given sufficient information to obtain a copy of djgpp themselves. This primarily applies to go32.exe, emu387, stub.exe, and the graphics drivers. * modified versions of the binaries provided in djgpp must be distributed under the terms of the GPL. * objects and libraries linked into an application may be distributed without sources. ----- Changes to source code copyright BSD or FSF by DJ Delorie fall under the terms of the original copyright. A copy of the file "COPYING" is included with this document. If you did not receive a copy of "COPYING", you may obtain one from whence this document was obtained, or by writing: Free Software Foundation 675 Mass Ave Cambridge, MA 02139 USA wcd-5.2.5/doc/RPM.txt0000664000175000017500000000035511566546501014476 0ustar waterlanwaterlan RedHat RPM package installation =============================== Type: rpm -Uhv The wcd function for POSIX shells is defined in /etc/profile.d/wcd.sh, and an alias in /etc/profile.d/wcd.csh for C alike shells. wcd-5.2.5/dos16/0000775000175000017500000000000012345660655013466 5ustar waterlanwaterlanwcd-5.2.5/dos16/makefile0000664000175000017500000000252112343705203015151 0ustar waterlanwaterlanSRCDIR = ..\src !include $(SRCDIR)\version.mk CC = wcc PROGRAM = wcd.exe DEFINES = CURSES = pdcurses !ifneq CURSES DEFINES += -dWCD_USECURSES !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -bt=dos -ml CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif docsubdir = wcd VERSIONSUFFIX = b ZIPFILE = $(PACKAGE)$(VERSION_SHORT)$(VERSIONSUFFIX).zip ZIPFILEDIR = ..\.. HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) prefix = c:\dos TARGET = dos all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcd d all SYS $(TARGET) op m op st=32k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/win64psh/0000775000175000017500000000000012345660654014213 5ustar waterlanwaterlanwcd-5.2.5/win64psh/Makefile0000664000175000017500000000346112101167345015644 0ustar waterlanwaterlan PREFIX = c:/usr/local64 prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CC = x86_64-w64-mingw32-gcc STRIP = x86_64-w64-mingw32-strip CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = -DWCD_WINPWRSH ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin64psh.exe VERSIONSUFFIX = -win64psh ZIPOBJ_EXTRA = # Using MinGW gettext,iconv ifdef ENABLE_NLS ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll endif ifdef UNINORM ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} CC=$(CC) install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} CC=$(CC) uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} STRIP=$(STRIP) mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win64psh/vc/0000775000175000017500000000000012345660654014623 5ustar waterlanwaterlanwcd-5.2.5/win64psh/vc/makefile0000775000175000017500000000171312334504141016312 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin64psh.exe DEFINES = /DWCD_WINPWRSH CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win64psh-ucs !else VERSIONSUFFIX = -win64psh !endif HTMLEXT = htm prefix = c:\usr\local64 !include $(SRCDIR)\vc.mak wcd-5.2.5/dos32/0000775000175000017500000000000012345660655013464 5ustar waterlanwaterlanwcd-5.2.5/dos32/Makefile0000664000175000017500000000271012101167345015110 0ustar waterlanwaterlaninclude ../src/version.mk PREFIX = c:/dos32 prefix = $(PREFIX) MKDIR = mkdir CFLAGS = -O2 -Wall -Wextra -Wconversion CURSES = pdcurses ENABLE_NLS = DEFS = ifdef CONIO CURSES= DEFS += -DWCD_USECONIO endif ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES endif PROGRAM = wcd.exe VERSIONSUFFIX = pm ZIPFILE = wcd${VERSION_SHORT}${VERSIONSUFFIX}.zip ZIPOBJ_EXTRA = bin/cwsdpmi.exe docsubdir = wcd-${VERSION_SHORT} ifdef ENABLE_NLS LIBS_EXTRA = -lintl -liconv ZIPFILE = wcd${VERSION_SHORT}pm-nls.zip endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} ZIPFILE=${ZIPFILE} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/dos32/watcom/0000775000175000017500000000000012345660655014756 5ustar waterlanwaterlanwcd-5.2.5/dos32/watcom/makefile0000775000175000017500000000266012317636535016464 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcd.exe DEFINES = CURSES = pdcurses !ifneq CURSES DEFINES += -dWCD_USECURSES !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -5r -bt=dos -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif docsubdir = wcd-$(VERSION_SHORT) VERSIONSUFFIX = pm ZIPFILE = wcd$(VERSION_SHORT)$(VERSIONSUFFIX).zip HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) ZIPOBJ_EXTRA = bin\cwstub.exe #ZIPOBJ_EXTRA = bin\dos4gw.exe prefix = c:\dos32 TARGET = causeway #TARGET = dos4g all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcd d all SYS $(TARGET) op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/win32/0000775000175000017500000000000012345660655013474 5ustar waterlanwaterlanwcd-5.2.5/win32/wcd_win95.bat0000775000175000017500000000056311227272030015763 0ustar waterlanwaterlan@echo off set PDC_RESTORE_SCREEN=1 rem set LANG=nl_NL rem set LANGUAGE=nl rem set WCDLOCALEDIR=c:/Program Files/wcd/share/locale wcdwin32.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 IF NOT "%WCDHOME%" == "" GOTO WCDHOME IF NOT "%HOME%" == "" GOTO HOME c:\wcdgo.bat GOTO END :WCDHOME %WCDHOME%\wcdgo.bat GOTO END :HOME %HOME%\wcdgo.bat GOTO END :END wcd-5.2.5/win32/wcd.bat0000775000175000017500000000121312054434334014727 0ustar waterlanwaterlan@echo off set PDC_RESTORE_SCREEN=1 rem set WCDHOME=%HOMEDRIVE%%HOMEPATH% rem set LANG=nl_NL rem set LANGUAGE=nl rem set WCDLOCALEDIR=c:/Program Files/wcd/share/locale rem set WCDSCAN=c:;d: rem Define WCDHOME when WCDHOME and HOME are both not defined, rem because on Windows Vista and up users are not allowed to rem create files in the root directory of the system partition. IF NOT DEFINED WCDHOME ( IF NOT DEFINED HOME ( set WCDHOME=%HOMEDRIVE%%HOMEPATH% ) ) wcdwin32.exe %* IF DEFINED WCDHOME ( "%WCDHOME%\wcdgo.bat" ) ELSE ( IF DEFINED HOME ( "%HOME%\wcdgo.bat" ) ELSE ( c:\wcdgo.bat ) ) wcd-5.2.5/win32/Makefile0000664000175000017500000000431512345431710015123 0ustar waterlanwaterlan PREFIX = c:/usr/local prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin32.exe VERSIONSUFFIX = -win32 ZIPOBJ_EXTRA = bin/wcd.bat bin/wcd_win95.bat ifdef ENABLE_NLS # Using GnuWin32 gettext,iconv #ZIPOBJ_EXTRA += bin/libintl3.dll bin/libiconv2.dll # Using MinGW gettext,iconv ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll # libgcc_s_dw2-1 and libwinpthread-1 are needed when built with MSYS2 ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ifdef UNINORM ifndef ENABLE_NLS ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} install -m 755 wcd.bat $(DESTDIR)${bindir}/wcd.bat install -m 755 wcd_win95.bat $(DESTDIR)${bindir}/wcd_win95.bat uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} -rm -f $(DESTDIR)${bindir}/wcd.bat -rm -f $(DESTDIR)${bindir}/wcd_win95.bat dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win32/vc/0000775000175000017500000000000012345660655014104 5ustar waterlanwaterlanwcd-5.2.5/win32/vc/makefile0000775000175000017500000000173612317636535015615 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin32.exe DEFINES = CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win32-ucs !else VERSIONSUFFIX = -win32 !endif HTMLEXT = htm ZIPOBJ_EXTRA = bin\wcd.bat bin\wcd_win95.bat prefix = c:\usr\local !include $(SRCDIR)\vc.mak wcd-5.2.5/win32/watcom/0000775000175000017500000000000012345660655014766 5ustar waterlanwaterlanwcd-5.2.5/win32/watcom/makefile0000775000175000017500000000275512317636535016501 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcdwin32.exe DEFINES = CURSES = pdcursesw !ifneq CURSES DEFINES += -dWCD_USECURSES -dPDC_WIDE !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -5r -bt=nt -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj,wcwidth.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif !ifeq UCS 1 OBJS += matchw.obj LOBJS +=,matchw.obj VERSIONSUFFIX = -win32-ucs !else VERSIONSUFFIX = -win32 !endif HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) ZIPOBJ_EXTRA = bin\wcd.bat bin\wcd_win95.bat prefix = c:\usr\local TARGET = nt all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) @%append wcd.lnk library mpr.lib !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcdwin32 d all SYS $(TARGET) op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/win64zsh/0000775000175000017500000000000012345660655014226 5ustar waterlanwaterlanwcd-5.2.5/win64zsh/Makefile0000664000175000017500000000345712341176520015664 0ustar waterlanwaterlan PREFIX = c:/usr/local64 prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CC = x86_64-w64-mingw32-gcc STRIP = x86_64-w64-mingw32-strip CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = -DWCD_WINZSH ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin64zsh.exe VERSIONSUFFIX = -win64zsh ZIPOBJ_EXTRA = ifdef ENABLE_NLS # Using MinGW gettext,iconv ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll endif ifdef UNINORM ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} CC=${CC} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} CC=${CC} uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} STRIP=$(STRIP) mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win64zsh/vc/0000775000175000017500000000000012345660655014636 5ustar waterlanwaterlanwcd-5.2.5/win64zsh/vc/makefile0000775000175000017500000000171112341176520016326 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin64zsh.exe DEFINES = /DWCD_WINZSH CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win64zsh-ucs !else VERSIONSUFFIX = -win64zsh !endif HTMLEXT = htm prefix = c:\usr\local64 !include $(SRCDIR)\vc.mak wcd-5.2.5/dos32bsh/0000775000175000017500000000000012345660654014160 5ustar waterlanwaterlanwcd-5.2.5/dos32bsh/Makefile0000664000175000017500000000267312101167345015615 0ustar waterlanwaterlaninclude ../src/version.mk PREFIX = c:/dos32 prefix = $(PREFIX) MKDIR = mkdir CFLAGS = -O2 -Wall -Wextra -Wconversion CURSES = pdcurses ENABLE_NLS = DEFS = -DWCD_DOSBASH ifdef CONIO CURSES= DEFS += -DWCD_USECONIO endif ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES endif PROGRAM = wcdbash.exe VERSIONSUFFIX = bh ZIPFILE = wcd${VERSION_SHORT}${VERSIONSUFFIX}.zip docsubdir = wcd-${VERSION_SHORT} ifdef ENABLE_NLS LIBS_EXTRA = -lintl -liconv ZIPFILE = wcd${VERSION_SHORT}bh-nls.zip endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} ZIPFILE=${ZIPFILE} ENABLE_NLS=${ENABLE_NLS} docsubdir=$(docsubdir) strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/dos32bsh/watcom/0000775000175000017500000000000012345660654015452 5ustar waterlanwaterlanwcd-5.2.5/dos32bsh/watcom/makefile0000775000175000017500000000270612317636535017162 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcdbash.exe DEFINES = -dWCD_DOSBASH CURSES = pdcurses !ifneq CURSES DEFINES += -dWCD_USECURSES !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -5r -bt=dos -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif docsubdir = wcd-$(VERSION_SHORT) VERSIONSUFFIX = bh ZIPFILE = wcd$(VERSION_SHORT)$(VERSIONSUFFIX).zip HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) ZIPOBJ_EXTRA = bin\cwstub.exe #ZIPOBJ_EXTRA = bin\dos4gw.exe prefix = c:\dos32 TARGET = causeway #TARGET = dos4g all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcdbash d all SYS $(TARGET) op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/Makefile0000664000175000017500000000213411567227054014167 0ustar waterlanwaterlan# # Copyright (C) 2009-2011 Erwin Waterlander # Copyright (C) 2009 Jari Aalto # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # Visit # This makefile is intended only for Unix/Linux. # See also documentation in directory `doc'. ifneq (,) This makefile requires GNU Make. endif OBJDIR = src all: $(MAKE) -C $(OBJDIR) clean: $(MAKE) -C $(OBJDIR) clean distclean: $(MAKE) -C $(OBJDIR) distclean maintainer-clean: $(MAKE) -C $(OBJDIR) maintainer-clean realclean: maintainer-clean install: $(MAKE) -C $(OBJDIR) install uninstall: $(MAKE) -C $(OBJDIR) uninstall .PHONY: clean distclean realclean install # End of file wcd-5.2.5/file_id.diz0000775000175000017500000000306112345657427014643 0ustar waterlanwaterlanWCD - Directory changer for DOS and Unix. w/ C src. Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search. * Full screen interactive directory tree browser with speed search and zoom in/out. * Present the user a list in case of multiple matches. * Wildcards *, ? and [SET] supported. * Directory stack, push pop. * Subdir definition possible. E.g. wcd subdira/subdirb * Long directory names support in Win95/98/NT DOS-box * Windows LAN UNC paths supported. * Change drive and directory at once. * Alias directories. * Ban directories. * Exclude directories. * Alternate stack per shell or terminal. * Multi user: Jump to folders of your colleagues. * Multi platform: * DOS 16 bit, DOS 32 bit, DOS bash * Windows Command Prompt, Windows PowerShell, Windows ZSH, MSYS, Cygwin * Unix/Linux: all Bourne and C type shells * OS/2 Warp * Native language support: Dutch, English, Esperanto, Finnish, German, Spanish, Ukrainian, Vietnamese. * Unicode Level 3 support (all UCS characters including double width and combining characters). * Unix/Linux * Cygwin-1.7. * Windows PowerShell. * Windows Command Prompt (cmd.exe) on Windows 7 and up. * Unicode matching with normalization (compatible equivalence). * Option to ignore diacritics for Latin-based scripts. wcd-5.2.5/test/0000775000175000017500000000000012345660654013510 5ustar waterlanwaterlanwcd-5.2.5/test/utf8.wcd0000775000175000017500000001411312073112776015073 0ustar waterlanwaterlan/home/waterlan/src/utf8 /home/waterlan/src/utf8/utf8_EUR € 14.95 /home/waterlan/src/utf8/test /home/waterlan/src/utf8/test/iso-8859-1 /home/waterlan/src/utf8/test/iso-8859-1/xyz_startmen� /home/waterlan/src/utf8/test/iso-8859-1/xyz_�rwon /home/waterlan/src/utf8/test/iso-8859-1/xyz_���� /home/waterlan/src/utf8/test/iso-8859-1/xyz_����/xyz_a /home/waterlan/src/utf8/test/iso-8859-1/xyz_����/xyz_erwin /home/waterlan/src/utf8/test/iso-8859-1/xyz_����/xyz_b /home/waterlan/src/utf8/test/iso-8859-1/xyz_��� /home/waterlan/src/utf8/test/utf8 /home/waterlan/src/utf8/test/utf8/utf8_ERWAN /home/waterlan/src/utf8/test/utf8/utf8_ERWUN /home/waterlan/src/utf8/test/utf8/utf8_ZZ /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/aa /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_chinees 中文 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_chinees 中文/utf8_a /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_chinees 中文/utf8_a/utf8_b /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_chinees 中文/utf8_a/utf8_b/utf8_c /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_chinees 中文/utf8_b /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/bb/utf8_EUR € 14.95 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_a/utf8_b/utf8_c /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_a/utf8_b/utf8_d /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_a/utf8_β/utf8_Σ /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_a/utf8_β/utf8_Ψ /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_b/utf8_c /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_greek_δΔΩ/utf8_a /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_a /home/waterlan/src/utf8/test/utf8/utf8_chinees 中文/cc/utf8_b /home/waterlan/src/utf8/test/utf8/utf8_erwin /home/waterlan/src/utf8/test/utf8/utf8_ccccccc_xx /home/waterlan/src/utf8/test/utf8/utf8_ccccccc_xx/dd /home/waterlan/src/utf8/test/utf8/utf8_ccccccc_xx/dd/utf8_ccccccc_zz /home/waterlan/src/utf8/test/utf8/utf8_µ /home/waterlan/src/utf8/test/utf8/utf8_ERW-IN /home/waterlan/src/utf8/test/utf8/utf8_EUR € 14.95 /home/waterlan/src/utf8/test/utf8/utf8_† /home/waterlan/src/utf8/test/utf8/utf8_© /home/waterlan/src/utf8/test/utf8/utf8_é /home/waterlan/src/utf8/test/utf8/utf8_sü /home/waterlan/src/utf8/test/utf8/utf8_� /home/waterlan/src/utf8/test/utf8/utf8_Su /home/waterlan/src/utf8/test/utf8/utf8_π /home/waterlan/src/utf8/test/utf8/utf8_chinees 中 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/aa /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_chinees 中文 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_chinees 中文/utf8_a /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_chinees 中文/utf8_a/utf8_b /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_chinees 中文/utf8_a/utf8_b/utf8_c /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_chinees 中文/utf8_b /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/bb/utf8_EUR € 14.95 /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/cc /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/cc/utf8_a /home/waterlan/src/utf8/test/utf8/utf8_chinees 中/cc/utf8_b /home/waterlan/src/utf8/utf8_EUR-8 € /home/waterlan/src/utf8/utf8_chinees 中文 /home/waterlan/src/utf8/utf8_nee /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷ /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a/b /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a/b/c /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a/b/c/d /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a/c /home/waterlan/src/utf8/utf8_comb_áêu̠-xx-o̷/a/c/d /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷ /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1 /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2 /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3 /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a/b /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a/b/c /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a/b/c/d /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a/b/c/d/e /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/a/b/c/d/e/f /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/utf4 /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/utf1/utf2/utf3/utf4/utf5 /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f/g /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f/g/h /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f/g/h/i /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f/g/h/i/utf8_x /home/waterlan/src/utf8/utf8_comb_áê中文u̠-xx-o̷/a/b/c/d/e/f/utf8_u /home/waterlan/src/utf8/utf8_nèe /home/waterlan/src/utf8/utf8_nêé /home/waterlan/src/utf8/utf8_surrogate_𠜎/utf8_𠜎/utf8_erwin /home/waterlan/src/utf8/utf8_surrogate_𠜎/utf8_9_𠜎/utf8_erwin /home/waterlan/src/utf8/utf8_surrogate_𠜎/utf8_99_𠜎/utf8_erwin /home/waterlan/src/utf8/utf8_surrogate_𠜎/utf8_99_𠜎/utf8_waterlander wcd-5.2.5/src/0000775000175000017500000000000012345660661013316 5ustar waterlanwaterlanwcd-5.2.5/src/wfixpath.c0000664000175000017500000000717612276236747015336 0ustar waterlanwaterlan/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ /* Modified by Erwin Waterlander. Mar 30 1999 */ /* Oct 16 2001: On Unix directories can have a backslash (\) * in the name, so they must not be replaced a slash (/) * Erwin Waterlander * Oct 26 2002: Keep first two slashes if WIN32 (UNC path) * Erwin Waterlander * Sep 8 2005: Keep first two slashes also for Cygwin (UNC path) * Erwin Waterlander * Sep 15 2011: changed parameter 'lim' to size_t type. * Erwin Waterlander */ #include /* For FILENAME_MAX */ #include #include #include "tailor.h" #include "config.h" #include "wcd.h" int wcd_is_slash(int c) { #if (defined(UNIX) && !defined(__CYGWIN__)) /* Oct 16 2001 */ return c == '/'; #else return c == '/' || c == '\\'; #endif } static int is_term(int c) { #if (defined(UNIX) && !defined(__CYGWIN__)) /* Oct 16 2001 */ return c == '/' || c == '\0'; #else return c == '/' || c == '\\' || c == '\0'; #endif } /* Takes as input an arbitrary path. Fixes up the path by: 1. Removing consecutive slashes 2. Removing trailing slashes 4. Removing "." in the path 7. Converting all slashes to '/' 8. Keep beginning "/" 9. Keep beginning "./" 10. Don't fix path "." */ void wcd_fixpath(char *in, size_t lim) { size_t i=0; int drive_number= -1; const char *ip = in; char *out; char *op; if ((in == NULL) || (lim == 0)) return ; if ((out = (char *) malloc(lim)) == NULL) { print_error("%s", _("malloc error in wcd_fixpath()\n")); return; } op = out; #if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) /* Add drive specification to output string (if present) */ if (((*ip >= 'a' && *ip <= 'z') || (*ip >= 'A' && *ip <= 'Z')) && (*(ip + 1) == ':')) { if (*ip >= 'a' && *ip <= 'z') { drive_number = *ip - 'a'; *op++ = *ip++; } else { drive_number = *ip - 'A'; if (*ip <= 'Z') *op++ = (char)(drive_number + 'a'); else *op++ = *ip; ++ip; } *op++ = *ip++; i+=2; } #endif #if (defined(_WIN32) || defined(__CYGWIN__)) /* Keep first "//" if present (UNC path) */ if (wcd_is_slash(*ip) && wcd_is_slash(*(ip + 1))) { ip+=2 ; *op++ = '/'; *op++ = '/'; i+=2 ; } else #endif /* Keep first slash if present */ if (wcd_is_slash(*ip)) { ip++; *op++ = '/'; i++ ; } else /* return if ip == "." */ if ((*ip == '.') && (*(ip + 1) == '\0')) { free(out); return ; } else /* Keep first "./" if present */ if (*ip == '.' && wcd_is_slash(*(ip + 1))) { ip+=2 ; *op++ = '.'; *op++ = '/'; i+=2 ; } /* Step through the input path */ while ((*ip) && (i<(lim-1))) { /* Skip input slashes */ if (wcd_is_slash(*ip)) { ip++; continue; } /* Skip "." and output nothing */ if (*ip == '.' && is_term(*(ip + 1))) { ip++; continue; } /* Copy path component from in to out */ if ((op > out) && (*(op-1) != '/')) { *op++ = '/'; i++ ; } while (!is_term(*ip)) { *op++ = *ip++; i++; } } /* If root directory, insert trailing slash */ if (((drive_number >= 0) && (op == out + 2)) || (op == out)) *op++ = '/'; /* Null terminate the output */ *op = '\0'; strcpy(in,out); free(out); } #ifdef TEST int main (int argc, char *argv[]) { char fixed[FILENAME_MAX]; if (argc > 1) { strcpy(fixed,argv[1]); wcd_fixpath (fixed,FILENAME_MAX); printf ("You mean %s?\n", fixed); } return 0; } #endif wcd-5.2.5/src/wcwidth.c0000664000175000017500000003346012151203455015126 0ustar waterlanwaterlan/* * This is an implementation of wcwidth() and wcswidth() (defined in * IEEE Std 1002.1-2001) for Unicode. * * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html * * In fixed-width output devices, Latin characters all occupy a single * "cell" position of equal width, whereas ideographic CJK characters * occupy two such cells. Interoperability between terminal-line * applications and (teletype-style) character terminals using the * UTF-8 encoding requires agreement on which character should advance * the cursor by how many cell positions. No established formal * standards exist at present on which Unicode character shall occupy * how many cell positions on character terminals. These routines are * a first attempt of defining such behavior based on simple rules * applied to data provided by the Unicode Consortium. * * For some graphical characters, the Unicode standard explicitly * defines a character-cell width via the definition of the East Asian * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. * In all these cases, there is no ambiguity about which width a * terminal shall use. For characters in the East Asian Ambiguous (A) * class, the width choice depends purely on a preference of backward * compatibility with either historic CJK or Western practice. * Choosing single-width for these characters is easy to justify as * the appropriate long-term solution, as the CJK practice of * displaying these characters as double-width comes from historic * implementation simplicity (8-bit encoded characters were displayed * single-width and 16-bit ones double-width, even for Greek, * Cyrillic, etc.) and not any typographic considerations. * * Much less clear is the choice of width for the Not East Asian * (Neutral) class. Existing practice does not dictate a width for any * of these characters. It would nevertheless make sense * typographically to allocate two character cells to characters such * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be * represented adequately with a single-width glyph. The following * routines at present merely assign a single-cell width to all * neutral characters, in the interest of simplicity. This is not * entirely satisfactory and should be reconsidered before * establishing a formal standard in this area. At the moment, the * decision which Not East Asian (Neutral) characters should be * represented by double-width glyphs cannot yet be answered by * applying a simple rule from the Unicode database content. Setting * up a proper standard for the behavior of UTF-8 character terminals * will require a careful analysis not only of each Unicode character, * but also of each presentation form, something the author of these * routines has avoided to do so far. * * http://www.unicode.org/unicode/reports/tr11/ * * Markus Kuhn -- 2007-05-26 (Unicode 5.0) * * Permission to use, copy, modify, and distribute this software * for any purpose and without fee is hereby granted. The author * disclaims all warranties with regard to this software. * * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c */ #include struct interval { int first; int last; }; /* auxiliary function for binary search in interval table */ static int bisearch(wchar_t ucs, const struct interval *table, int max) { int min = 0; int mid; if (ucs < table[0].first || ucs > table[max].last) return 0; while (max >= min) { mid = (min + max) / 2; if (ucs > table[mid].last) min = mid + 1; else if (ucs < table[mid].first) max = mid - 1; else return 1; } return 0; } /* The following two functions define the column width of an ISO 10646 * character as follows: * * - The null character (U+0000) has a column width of 0. * * - Other C0/C1 control characters and DEL will lead to a return * value of -1. * * - Non-spacing and enclosing combining characters (general * category code Mn or Me in the Unicode database) have a * column width of 0. * * - SOFT HYPHEN (U+00AD) has a column width of 1. * * - Other format characters (general category code Cf in the Unicode * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0. * * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) * have a column width of 0. * * - Spacing characters in the East Asian Wide (W) or East Asian * Full-width (F) category as defined in Unicode Technical * Report #11 have a column width of 2. * * - All remaining characters (including all printable * ISO 8859-1 and WGL4 characters, Unicode control characters, * etc.) have a column width of 1. * * This implementation assumes that wchar_t characters are encoded * in ISO 10646. */ int mk_wcwidth(wchar_t ucs) { /* sorted list of non-overlapping intervals of non-spacing characters */ /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ static const struct interval combining[] = { { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, { 0xE0100, 0xE01EF } }; /* test for 8-bit control characters */ if (ucs == 0) return 0; if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return -1; /* binary search in table of non-spacing characters */ if (bisearch(ucs, combining, sizeof(combining) / sizeof(struct interval) - 1)) return 0; /* if we arrive here, ucs is not a combining or C0/C1 control character */ return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ ucs == 0x2329 || ucs == 0x232a || (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f) || /* CJK ... Yi */ (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */ (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ (ucs >= 0xffe0 && ucs <= 0xffe6) || (ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd))); } int mk_wcswidth(const wchar_t *pwcs, size_t n) { int w, width = 0; for (;*pwcs && n-- > 0; pwcs++) if ((w = mk_wcwidth(*pwcs)) < 0) return -1; else width += w; return width; } /* * The following functions are the same as mk_wcwidth() and * mk_wcswidth(), except that spacing characters in the East Asian * Ambiguous (A) category as defined in Unicode Technical Report #11 * have a column width of 2. This variant might be useful for users of * CJK legacy encodings who want to migrate to UCS without changing * the traditional terminal character-width behaviour. It is not * otherwise recommended for general use. */ int mk_wcwidth_cjk(wchar_t ucs) { /* sorted list of non-overlapping intervals of East Asian Ambiguous * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */ static const struct interval ambiguous[] = { { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F }, { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B }, { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF }, { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } }; /* binary search in table of non-spacing characters */ if (bisearch(ucs, ambiguous, sizeof(ambiguous) / sizeof(struct interval) - 1)) return 2; return mk_wcwidth(ucs); } int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) { int w, width = 0; for (;*pwcs && n-- > 0; pwcs++) if ((w = mk_wcwidth_cjk(*pwcs)) < 0) return -1; else width += w; return width; } #if defined (_WIN32) && !defined(__CYGWIN__) int wcwidth(wchar_t ucs) { return mk_wcwidth(ucs); } int wcswidth(const wchar_t *pwcs, size_t n) { return mk_wcswidth(pwcs,n); } #endif wcd-5.2.5/src/dosdir.c0000664000175000017500000003316712337451362014755 0ustar waterlanwaterlan/* dosdir.c: DOSDIR V2.1a: A Portable DOS/UNIX/VMS Directory Interface Implementation of the DOS directory functions (findfirst and findnext) on MS-DOS, UNIX and VMS platforms using the appropriate file & directory structure. Provides the DOS directory framework for MS-DOS/UNIX/VMS application portability. Supports MS-DOS with Borland C++, Turbo C, or Microsoft C V6.0/7.0, Sun with GNU C compiler, DEC Alpha (OSF-1), VAX/VMS C, and other comparable platforms. Written by: Jason Mathews --------------------------------------------------------------------------- Copyright (C) 1996 Jason Mathews This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --------------------------------------------------------------------------- Modification history: V1.0 02-May-91, Original version. V2.0 13-May-94, Reimplemented findfirst/findnext with ffblk structure to match MS-DOS externally, fixed wildcard evaluation function. V2.1 08-Jun-94, Replaced wildcard evaluation function with recursive function provided by Info-ZIP's portable UnZip, added dd_ prefix to most functions & constants, added VMS functions + MSC/TURBOC macros. V2.1a 16-Oct-96, Call lstat() instead of stat() to avoid expanding on symbolic linked directories. Jan 3 2000, Erwin Waterlander, update for Mingw32 compiler. Apr 29 2002, Erwin Waterlander, update for LCC windows compiler. Jul 14 2008, Erwin Waterlander, update for OS/2 using gcc. Jul 28 2009, Erwin Waterlander, support UTF-16 Unicode on Windows. UTF-16 wide character names are converted to UTF-8 multi-byte strings. Aug 2012, Major cleanup macros: * Use only C99 predefined macros. * Use __MSDOS__ only when it's real for MS-DOS. * UNIX is not defined on OS/2 EMX (fixed tailor.h, UNIX got defined, because _BSD_SOURCE is defined with EMX (GCC on OS/2)). * Make it compile with Watcom C for OS/2. * Borland C and LCC may have been broken, because these are not supported anymore. Erwin Waterlander */ #include #include "dosdir.h" #ifdef WCD_UTF16 # include "display.h" struct _stat dd_sstat; #else struct stat dd_sstat; /* global stat structure of last successful file * returned by findfirst/findnext functions available * to query for more detailed information. */ #endif #ifdef UNIX # define STAT lstat /* don't expand symbolic links */ #else /* ?MSDOS\VMS */ # ifdef WCD_UTF16 # define STAT _wstat # else # define STAT stat # endif #endif #if defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # define FSTRUCT struct _finddata_t # define FATTR _A_HIDDEN+_A_SYSTEM+_A_SUBDIR # ifdef WCD_UTF16 # define FFIRST(n,d) _wfindfirst(n,d) # define FNEXT(h,d) _wfindnext(h,d) # else # define FFIRST(n,d) _findfirst(n,d) # define FNEXT(h,d) _findnext(h,d) # endif # define FNAME name # define FATTRIB attrib # define FSIZE size #elif defined (__MSDOS__) # ifdef __TURBOC__ # define FSTRUCT struct ffblk # define FATTR FA_HIDDEN+FA_SYSTEM+FA_DIREC # define FFIRST(n,d,a) findfirst(n,d,a) # define FNEXT(d) findnext(d) # define FNAME ff_name # define FATTRIB ff_attrib # define FSIZE ff_fsize # define FDATE ff_fdate # define FTIME ff_ftime # else /* !__TURBOC__ */ # define FSTRUCT struct find_t # define FATTR _A_HIDDEN+_A_SYSTEM+_A_SUBDIR # define FFIRST(n,d,a) _dos_findfirst(n,a,d) # define FNEXT(d) _dos_findnext(d) # define FNAME name # define FATTRIB attrib # define FSIZE size # define FDATE wr_date # define FTIME wr_time # endif /* ?__TURBOC__ */ #endif /* Various implementations of setdisk/getdisk */ #if defined(__MSDOS__) || (defined(__WATCOMC__) && defined(__NT__)) # ifndef __TURBOC__ /* * getdisk * * Returns: -1 if error, otherwise: 0=drive A, 1=drive B, and so on. */ int getdisk() { unsigned d; _dos_getdrive(&d); return ((int)d - 1); } /* * setdisk: 0=drive A, 1=drive B, and so on. * * Returns: total number of drive available * */ int setdisk( int drive ) { unsigned numdrives; _dos_setdrive((unsigned) (drive + 1), &numdrives); return numdrives; } # endif /* ?!__TURBOC__ */ #elif defined(__OS2__) /* OS/2 implementation of getdisk and setdisk for EMX */ /* * getdisk * * Returns: -1 if error, otherwise: 0=drive A, 1=drive B, and so on. */ int getdisk() { ULONG ulDrive; ULONG ulLogical; APIRET rc; int d; rc=DosQueryCurrentDisk(&ulDrive, &ulLogical); /* Get current drive */ d = (int)ulDrive; return(d-1); } /* * setdisk: 0=drive A, 1=drive B, and so on. * * Returns: total number of drive available * */ int setdisk( int drive ) { int d; ULONG ulDrive; ulDrive = (ULONG)(drive+1); if(DosSetDefaultDisk(ulDrive)) /* Set default drive, 1=A, 2=B, 3=C, 4=D */ { /* printf("Wcd: error: Can not change default drive to %d\n",drive); */ return(-1); } d = getdisk(); return(d); } #elif defined(_WIN32) int getdisk(void) { int d; d = _getdrive(); return(d-1); } int setdisk (int drive) { unsigned long numdrives; _chdrive(drive+1); numdrives = _getdrives(); return ((int)numdrives); } #else /* stub functions for get/set disk * fake MS-DOS functions that do not apply to unix or vms: */ int getdisk() { return 0; } int setdisk( int drive ) { return 0; } #endif #if defined(__MSDOS__) || defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # if 0 /* function used if we want to fake stat info instead of failing the file, * but I cannot find a case where stat fails after findfirst/findnext succeeds. */ /* fill stat structure given the DOS findfirst structure */ static void dd_fillstatbuf( FSTRUCT* fb ) { struct date fdate; struct time ftime; /* * convert struct ffblk date/time format -> dos format */ fdate.da_year = (fb->FDATE>>9) + 1980; fdate.da_day = fb->FDATE & 0x1f; fdate.da_mon = fb->FDATE>>5 & 0xf; ftime.ti_hour = fb->FTIME>>11; ftime.ti_min = fb->FTIME>>5 & 0x3f; ftime.ti_sec = 2*(fb->FTIME & 0x1f); ftime.ti_hund = 0; /* convert dos time to t_time format */ dd_sstat->st_atime = dd_sstat->st_mtime = dd_sstat->st_ctime = dostounix (&fdate, &ftime); /* * set file mode flags */ dd_sstat->st_mode = S_IREAD; if (fb->ff_attrib & DD_DIREC) dd_sstat->st_mode |= (S_IFDIR | S_IEXEC); else if (fb->ff_attrib & DD_DEVICE) /* non-documented findfirst attribute */ dd_sstat->st_mode |= S_IFCHR; else dd_sstat->st_mode |= S_IFREG; if (!(fb->ff_attrib & DD_RDONLY)) dd_sstat->st_mode |= S_IWRITE; /* other msdos stat fields not used by dosdir */ dd_sstat->st_uid = dd_sstat->st_gid = 0; dd_sstat->st_size = fb->FSIZE; dd_sstat->st_nlink = 1; dd_sstat->st_ino = 0; dd_sstat->st_rdev = dd_sstat->st_dev = fb->ff_attrib & DD_DEVICE ? -1 : 3; } # endif static int dd_initstruct( dd_ffblk* fb ) { #ifdef WCD_UTF16 /* Convert wide character name (UTF-16) to UTF-8. */ wcstoutf8(fb->dd_name,fb->dos_fb.FNAME,DD_MAXPATH); #else fb->dd_name = fb->dos_fb.FNAME; #endif /* ".." entry refers to the directory entry of the cwd and *NOT* the * parent directory, so we use "." instead. */ #ifdef WCD_UTF16 if (STAT(!strcmp(fb->dd_name, "..") ? L"." : fb->dos_fb.FNAME, &dd_sstat)) return -1; /* stat failed! */ #else if (STAT(!strcmp(fb->dd_name, "..") ? "." : fb->dd_name, &dd_sstat)) return -1; /* stat failed! */ #endif fb->dd_time = dd_sstat.st_mtime; fb->dd_size = fb->dos_fb.FSIZE; fb->dd_mode = ((fb->dos_fb.FATTRIB & DD_DOSATTRIBS) | (dd_sstat.st_mode & ~DD_DOSATTRIBS)); return 0; } # if defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) wcd_intptr_t dd_findnext( dd_ffblk* fb ) { wcd_intptr_t rc; /* repeat until file info is initialized or no more files are left */ while ((rc=FNEXT(fb->nHandle,&fb->dos_fb)) == 0 && (rc=dd_initstruct(fb)) != 0); if (rc != 0) /* no more files left */ _findclose(fb->nHandle); return rc; } wcd_intptr_t dd_findfirst( const wcd_char *path, dd_ffblk *fb, int attrib ) { wcd_intptr_t rc; if ((rc = FFIRST( path, &fb->dos_fb)) != -1) { fb->nHandle = rc; fb->dd_attribs = (char)attrib; if ((rc = dd_initstruct(fb)) != 0) /* initialization failed? */ rc = dd_findnext( fb ); } return rc; } # else /* * Function: dd_findnext * * Purpose: Use dd_findnext after dd_findfirst to find the remaining files * * Returns: zero if successful, otherwise, it returns a -1 * and sets errno either to the constant ENOENT indicating * that the file could not be found, or to ENMFILE * signifying that there are no more files. * * Parms: * dd_ffblk* fb = structure to hold results of search */ int dd_findnext( dd_ffblk* fb ) { int rc; /* repeat until file info is initialized or no more files are left */ while ((rc=FNEXT(&fb->dos_fb)) == 0 && (rc=dd_initstruct(fb)) != 0); return rc; } /* * Function: dd_findfirst * * Purpose: Find file matching specification in specified directory * given directory information * * Returns: zero if successful, otherwise, it returns a -1 * and sets errno either to the constant ENOENT indicating * that the file could not be found, or to ENMFILE * signifying that there are no more files. * * Parms: * char *filespec = filename to search for including path * dd_ ffblk* fb = structure to hold results of search * int attrib = file attributes to match */ int dd_findfirst( const char *path, dd_ffblk *fb, int attrib ) { int rc; if ((rc = FFIRST( path, &fb->dos_fb, attrib & DD_DOSATTRIBS)) == 0) { if ((rc = dd_initstruct(fb)) != 0) /* initialization failed? */ rc = dd_findnext( fb ); } return rc; } # endif #elif defined (VMS) # include "match.h" int dd_findnext( dd_ffblk* fb ) { int rc; while ((rc = SYS$SEARCH(&fb->fab, 0, 0)) == RMS$_NORMAL) { char *s; fb->rsa[fb->nam.nam$b_rsl] = '\0'; /* terminate filename */ if (STAT(fb->rsa, &dd_sstat)) /* if stat fails then we have no */ continue; /* priviledge to read file, so skip it */ if (dd_sstat.st_mode & S_IFDIR && !(fb->dd_attribs & DD_DIREC)) continue; s = strchr(fb->rsa, DIR_END); fb->dd_name = s ? s + 1 : fb->rsa; if (dd_match(fb->dd_name, fb->filespec, 1)) { fb->dd_size = dd_sstat.st_size; fb->dd_time = dd_sstat.st_mtime; fb->dd_mode = dd_sstat.st_mode; return 0; /* OK: match found */ } } /* while */ memset(fb, 0x0, sizeof(dd_ffblk)); /* Invalidate structure */ errno = ENOENT; /* No file found */ return -1; /* Search failed */ } int dd_findfirst( const char *path, dd_ffblk *fb, int attrib ) { char *s; strcpy(fb->path, path); s = strchr(fb->path, DIR_END); if (!s) s = strrchr(fb->path, ':'); /* check device/node */ if (s) { strncpy(fb->rms_filespec, fb->path, s - fb->path + 1); strcat(fb->rms_filespec, "*.*"); fb->filespec = s + 1; printf("filespec = %s\n", fb->rms_filespec); } else { strcpy(fb->rms_filespec, "*.*"); fb->filespec = fb->path; } /* if no version number specified then add one */ s = strchr(fb->path, ';'); if (!s) strcat(fb->path, ";*"); fb->fab = cc$rms_fab; fb->nam = cc$rms_nam; fb->fab.fab$l_dna = &fb->rms_filespec; fb->fab.fab$b_dns = strlen(fb->rms_filespec); fb->fab.fab$l_nam = &fb->nam; fb->nam.nam$l_esa = &fb->esa; fb->nam.nam$b_ess = DD_MAXPATH; fb->nam.nam$l_rsa = &fb->rsa; fb->nam.nam$b_rss = DD_MAXPATH; fb->dd_attribs = attrib; if (SYS$PARSE(&fb->fab, 0, 0) != RMS$_NORMAL) { memset(fb, 0x0, sizeof(dd_ffblk)); /* Invalidate structure */ errno = ENOENT; /* No file found */ return -1; /* Initialization failed */ } return dd_findnext(fb); } #else /* ?UNIX or EMX */ # include "match.h" int dd_findnext(dd_ffblk* fb) { if (!fb->dd_dirp) goto findnext_err; while ((fb->dd_dp = readdir(fb->dd_dirp)) != NULL) { if (STAT(fb->dd_dp->d_name, &dd_sstat)) continue; if (dd_sstat.st_mode & S_IFDIR && !(fb->dd_attribs & DD_DIREC)) continue; if (dd_match(fb->dd_dp->d_name, fb->dd_filespec, 0)) { /* fill in file info */ fb->dd_name = fb->dd_dp->d_name; fb->dd_size = dd_sstat.st_size; fb->dd_time = dd_sstat.st_mtime; fb->dd_mode = dd_sstat.st_mode; return 0; /* successful match */ } } /* while */ closedir(fb->dd_dirp); findnext_err: memset(fb, 0x0, sizeof(dd_ffblk)); /* invalidate structure */ errno = ENOENT; /* no file found */ return -1; } /** dd_findnext **/ int dd_findfirst( const char *path,dd_ffblk* fb,int attrib) { char *s = strrchr(path, DIR_END); char dir[DD_MAXDIR]; /* directory path */ if (s) { strcpy(fb->dd_filespec, s+1); strncpy(dir, path, (size_t)(s-path)); } else { strcpy(dir, "."); /* use current directory */ strcpy(fb->dd_filespec, path); } fb->dd_attribs = (char)attrib; fb->dd_dirp = opendir(dir); return dd_findnext(fb); } /** dd_findfirst **/ #endif /* ?__MSDOS__ */ wcd-5.2.5/src/wcddir.h0000664000175000017500000000327312133335700014734 0ustar waterlanwaterlan/* filename: wcddir.h WCD - Chdir for Dos and Unix. Author: Erwin Waterlander ====================================================================== = Copyright = ====================================================================== Copyright (C) 2002-2012 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ======================================================================= */ #if (defined(_WIN32) || defined(__CYGWIN__)) int wcd_isServerPath (char* path); void wcd_getshares(char* path, nameset n); #endif #if (defined(_WIN32) && !defined(__CYGWIN__)) int wcd_islink(const char *dir, int quiet); int wcd_mkdir(char *buf, int quiet); #else /* not WIN32 API */ # if defined(UNIX) || defined(__DJGPP__) || defined(__EMX__) int wcd_mkdir(char *buf, mode_t m, int quiet); # else int wcd_mkdir(char *buf, int quiet); # endif #endif char *wcd_getcwd(char *buf, size_t size); int wcd_chdir(char *buf, int quiet); int wcd_rmdir(char *buf, int quiet); int wcd_isdir(char *dir, int quiet); wcd-5.2.5/src/vc.mak0000775000175000017500000001123012337225051014407 0ustar waterlanwaterlan# Common parts of the Microsoft Visual C++ makefiles. DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) all: $(PROGRAM) $(DOCFILES) $(PROGRAM): $(OBJS) $(LINK) /out:$@ $(LDFLAGS) $(OBJS) $(LIBS) DEBUG = 0 CFLAGS = $(CFLAGS) /DDEBUG=$(DEBUG) !if "$(ASCII_TREE)" == "1" CFLAGS = $(CFLAGS) /DASCII_TREE !endif !if "$(UCS)" == "1" CFLAGS = $(CFLAGS) /DWCD_UNICODE !endif stack.obj : $(SRCDIR)\stack.c $(CC) /c $(CFLAGS) $(SRCDIR)\stack.c match.obj : $(SRCDIR)\match.c $(CC) /c $(CFLAGS) $(SRCDIR)\match.c matchl.obj : $(SRCDIR)\matchl.c $(CC) /c $(CFLAGS) $(SRCDIR)\matchl.c matchw.obj : $(SRCDIR)\matchw.c $(CC) /c $(CFLAGS) $(SRCDIR)\matchw.c querycp.obj : $(SRCDIR)\querycp.c $(CC) /c $(CFLAGS) $(SRCDIR)\querycp.c wcwidth.obj : $(SRCDIR)\wcwidth.c $(CC) /c $(CFLAGS) $(SRCDIR)\wcwidth.c wfixpath.obj : $(SRCDIR)\wfixpath.c $(CC) /c $(CFLAGS) $(SRCDIR)\wfixpath.c dosdir.obj : $(SRCDIR)\dosdir.c $(CC) /c $(CFLAGS) $(SRCDIR)\dosdir.c display.obj : $(SRCDIR)\display.c $(CC) /c $(CFLAGS) $(SRCDIR)\display.c colors.obj : $(SRCDIR)\colors.c $(CC) /c $(CFLAGS) $(SRCDIR)\colors.c graphics.obj : $(SRCDIR)\graphics.c $(CC) /c $(CFLAGS) $(SRCDIR)\graphics.c wcd.obj : $(SRCDIR)\wcd.c $(CC) /c $(CFLAGS) $(CFLAGS_VERSION) $(SRCDIR)\wcd.c wcddir.obj : $(SRCDIR)\wcddir.c $(CC) /c $(CFLAGS) $(SRCDIR)\wcddir.c WcdStack.obj : $(SRCDIR)\c3po\WcdStack.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\WcdStack.c Text.obj : $(SRCDIR)\c3po\Text.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\Text.c nameset.obj : $(SRCDIR)\c3po\nameset.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\nameset.c Error.obj : $(SRCDIR)\c3po\Error.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\Error.c intset.obj : $(SRCDIR)\c3po\intset.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\intset.c command.obj : $(SRCDIR)\c3po\command.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\command.c dirnode.obj : $(SRCDIR)\c3po\dirnode.c $(CC) /c $(CFLAGS) $(SRCDIR)\c3po\dirnode.c PACKAGE = wcd exec_prefix = $(prefix) bindir = $(exec_prefix)\bin datarootdir = $(prefix)\share datadir = $(datarootdir) !ifndef docsubdir docsubdir = $(PACKAGE)-$(VERSION) !endif docdir = $(datarootdir)\doc\$(docsubdir) status: @echo "CFLAGS = $(CFLAGS)" @echo $(MAKEDIR) $(prefix): if not exist $@ mkdir $@ $(bindir): $(prefix) if not exist $@ mkdir $@ $(datarootdir): $(prefix) if not exist $@ mkdir $@ $(datarootdir)\doc: $(datarootdir) if not exist $@ mkdir $@ $(docdir): $(datarootdir)\doc if not exist $@ mkdir $@ install: $(PROGRAM) $(DOCFILES) $(bindir) $(docdir) copy $(PROGRAM) $(bindir) !if "$(PROGRAM)" == "wcdwin32.exe" copy ..\wcd.bat $(bindir) copy ..\wcd_win95.bat $(bindir) !endif !if "$(PROGRAM)" == "wcdwin64.exe" copy ..\wcd.bat $(bindir) !endif $(MAKE) install-doc $(SRCDIR)\man\man1\wcd.txt : $(SRCDIR)\man\man1\wcd.pod pod2text $** > $@ $(SRCDIR)\man\man1\wcd.$(HTMLEXT) : $(SRCDIR)\man\man1\wcd.pod pod2html --title="$(PACKAGE) $(VERSION) - Wherever Change Directory" $** > $@ txt: $(SRCDIR)\man\man1\wcd.txt html: $(SRCDIR)\man\man1\wcd.$(HTMLEXT) doc : $(DOCFILES) install-doc: $(docdir) $(DOCFILES) copy $(SRCDIR)\..\doc\faq.txt $(docdir) copy $(SRCDIR)\..\doc\whatsnew.txt $(docdir) copy $(SRCDIR)\..\doc\README.txt $(docdir) copy $(SRCDIR)\..\doc\problems.txt $(docdir) copy $(SRCDIR)\..\doc\todo.txt $(docdir) copy $(SRCDIR)\..\doc\INSTALL.txt $(docdir) copy $(SRCDIR)\..\doc\INST_DOS.txt $(docdir) copy $(SRCDIR)\..\doc\copying.txt $(docdir) copy $(SRCDIR)\man\man1\$(PACKAGE).txt $(docdir) copy $(SRCDIR)\man\man1\$(PACKAGE).$(HTMLEXT) $(docdir) uninstall: -del $(bindir)\$(PROGRAM) !if "$(PROGRAM)" == "wcdwin32.exe" -del $(bindir)\wcd.bat -del $(bindir)\wcd_win95.bat !endif !if "$(PROGRAM)" == "wcdwin64.exe" -del $(bindir)\wcd.bat !endif -rmdir /s /q $(docdir) !ifndef VERSIONSUFFIX VERSIONSUFFIX = -bin !endif !ifndef ZIPFILE ZIPFILE = $(PACKAGE)$(VERSION)$(VERSIONSUFFIX).zip !endif !ifndef ZIPFILEDIR ZIPFILEDIR = ..\..\.. !endif ZIPOBJ = bin\$(PROGRAM) share\doc\$(docsubdir) $(ZIPOBJ_EXTRA) DISTCMD = dist.bat dist : @echo cd /d $(prefix) > $(DISTCMD) @echo unix2dos -k share\doc\$(docsubdir)\*.txt >> $(DISTCMD) @echo unix2dos -k share\doc\$(docsubdir)\*.$(HTMLEXT) >> $(DISTCMD) @echo zip -r $(ZIPFILE) $(ZIPOBJ) >> $(DISTCMD) @echo cd /d $(MAKEDIR) >> $(DISTCMD) @echo move $(prefix)\$(ZIPFILE) $(ZIPFILEDIR) >> $(DISTCMD) .\$(DISTCMD) mostlyclean: -del *~ -del *.bak -del *.obj -del *.exe -del *.tmp -del $(DISTCMD) clean: mostlyclean maintainer-clean: clean -del $(DOCFILES) wcd-5.2.5/src/tailor.h0000664000175000017500000000702112025724165014754 0ustar waterlanwaterlan/* tailor.h Copyright (C) 1998-2012 Erwin Waterlander. Was original written by Mark Adler (Not copyrighted 1993) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _TAILOR_H #define _TAILOR_H /* Define __MSDOS__ for Turbo C and Power C */ #ifdef __POWERC # define __TURBOC__ # define __MSDOS__ #endif /* __POWERC */ #if (defined(__DOS__) && !defined(__MSDOS__)) # define __MSDOS__ #endif /* Watcom C DOS target. EW */ #if (defined(__MSDOS__) && !defined(MSDOS)) # define MSDOS #endif #if (defined(__NT__) && !defined(_WIN32)) # define _WIN32 #endif /* Watcom C Windows NT and 95 target. EW */ #if (defined(_WIN32) && !defined(WIN32)) # define WIN32 #endif #ifdef ATARI_ST # undef __MSDOS__ /* avoid the MS-DOS specific includes */ #endif /* Use prototypes and ANSI libraries if _STDC__, or Microsoft or Borland C, * or Silicon Graphics, or IBM C Set/2, or Watcom C, or GNU gcc under emx. */ #if defined(__STDC__) || defined(__MSDOS__) || defined(ATARI_ST) || defined(sgi) # ifndef PROTO # define PROTO # endif /* !PROTO */ # define MODERN #endif #if defined(__IBMC__) || defined(__EMX__) || defined(__WATCOMC__) # ifndef PROTO # define PROTO # endif /* !PROTO */ # define MODERN #endif #if defined(__BORLANDC__) || (defined(__alpha) && defined(VMS)) # ifndef PROTO # define PROTO # endif /* !PROTO */ # define MODERN #endif #ifdef __IBMC__ # define S_IFMT 0xF000 #endif /* __IBMC__ */ #if defined(__EMX__) || defined(__WATCOMC__) || defined(__BORLANDC__) # if (defined(__OS2__) && !defined(__32BIT__)) # define __32BIT__ # endif #endif #if (defined(__OS2__) && !defined(OS2)) # define OS2 #endif #if defined(__DJGPP__) /* MS-DOS extender: NOT Unix */ # undef unix # undef __unix # undef __unix__ #endif #if (defined(unix) || defined(__unix) || defined(__unix__)) # ifndef UNIX # define UNIX # endif #endif /* unix || __unix || __unix__ */ /* GCC on OS/2 defines _BSD_SOURCE in /usr/inlcude/features.h EW. */ #if (defined(linux) || defined(_BSD_SOURCE)) && !defined(__OS2__) # ifndef UNIX # define UNIX # endif #endif /* linux || _BSD_SOURCE */ #if (defined(M_XENIX) || defined(COHERENT) || defined(__hpux)) # ifndef UNIX # define UNIX # endif #endif /* M_XENIX || COHERENT || __hpux */ #if defined(__convexc__) || defined(MINIX) || defined(sgi) # ifndef UNIX # define UNIX # endif #endif /* __convexc__ || MINIX || sgi */ #ifdef __COMPILER_KCC__ # define TOPS20 # define NOPROTO #endif /* Turn off prototypes if requested */ #if (defined(NOPROTO) && defined(PROTO)) # undef PROTO #endif /* Used to remove arguments in function prototypes for non-ANSI C */ #ifdef PROTO # define OF(a) a #else /* !PROTO */ # define OF(a) () #endif /* ?PROTO */ #ifdef MACOS # define DYN_ALLOC #endif /* Define MSVMS if MSDOS or VMS defined -- ATARI also does, Amiga could */ #if defined(__MSDOS__) || defined(VMS) # define MSVMS #endif #endif /* end of tailor.h */ wcd-5.2.5/src/match.c0000664000175000017500000002355012011306227014544 0ustar waterlanwaterlan/*--------------------------------------------------------------------------- match.c The match() routine recursively compares a string to a "pattern" (regular expression), returning TRUE if a match is found or FALSE if not. This version is specifically for use with unzip.c: as did the previous match() routines from SEA and J. Kercheval, it leaves the case (upper, lower, or mixed) of the string alone, but converts any uppercase characters in the pattern to lowercase if indicated by the global var pInfo->lcflag (which is to say, string is assumed to have been converted to lowercase already, if such was necessary). GRR: reversed order of text, pattern in matche() (now same as match()); added ignore_case/ic flags, Case() macro. PK: replaced matche() with recmatch() from Zip, modified to have an ignore_case argument; replaced test frame with simpler one. --------------------------------------------------------------------------- Copyright on recmatch() from Zip's util.c (although recmatch() was almost certainly written by Mark Adler...ask me how I can tell :-) ): Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, Kai Uwe Rommel and Igor Mandrichenko. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --------------------------------------------------------------------------- Info-ZIP's home WWW site is listed on Yahoo and is at: http://www.cdrom.com/pub/infozip/ e-mail : Zip-Bugs@lists.wku.edu --------------------------------------------------------------------------- Match the pattern (wildcard) against the string (fixed): match(string, pattern, ignore_case); returns TRUE if string matches pattern, FALSE otherwise. In the pattern: `*' matches any sequence of characters (zero or more) `?' matches any character [SET] matches any character in the specified set, [!SET] or [^SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like ``character hyphen character'' (as in 0-9 or A-Z). [0-9a-zA-Z_] is the minimal set of characters allowed in the [..] pattern construct. Other characters are allowed (ie. 8 bit characters) if your system will support them. To suppress the special syntactic significance of any of ``[]*?!^-\'', in- side or outside a [..] construct and match the character exactly, precede it with a ``\'' (backslash). Note that "*.*" and "*." are treated specially under MS-DOS if DOSWILD is defined. See the DOSWILD section below for an explanation. ---------------------------------------------------------------------------*/ #include #include #include "match.h" /* define ToLower() in here (for Unix, define ToLower * to be macro (using isupper()); otherwise just use * tolower() */ #define Case(x) (ic? tolower(x) : (int)(x)) /* dd_match() is a shell to recmatch() to return only Boolean values. */ static int recmatch(uch *pattern, uch *string, int ignore_case); int dd_match(const char *string,const char *pattern,int ignore_case) { #if (defined(__MSDOS__) && defined(DOSWILD)) char *dospattern; int j = strlen(pattern); /*--------------------------------------------------------------------------- Optional MS-DOS preprocessing section: compare last three chars of the wildcard to "*.*" and translate to "*" if found; else compare the last two characters to "*." and, if found, scan the non-wild string for dots. If in the latter case a dot is found, return failure; else translate the "*." to "*". In either case, continue with the normal (Unix-like) match procedure after translation. (If not enough memory, default to normal match.) This causes "a*.*" and "a*." to behave as MS-DOS users expect. ---------------------------------------------------------------------------*/ if ((dospattern = (char *)malloc(j+1)) != NULL) { strcpy(dospattern, pattern); if (!strcmp(dospattern+j-3, "*.*")) { dospattern[j-2] = '\0'; /* nuke the ".*" */ } else if (!strcmp(dospattern+j-2, "*.")) { char *p = strchr(string, '.'); if (p) { /* found a dot: match fails */ free(dospattern); return 0; } dospattern[j-1] = '\0'; /* nuke the end "." */ } j = recmatch((uch *)dospattern, (uch *)string, ignore_case); free(dospattern); return j == 1; } else #endif /* __MSDOS__ && DOSWILD */ return recmatch((uch *)pattern, (uch *)string, ignore_case) == 1; } static int recmatch(uch *p,uch *s,int ic) /* uch *p; sh pattern to match */ /* uch *s; string to which to match it */ /* int ic; true for case insensitivity */ /* Recursively compare the sh pattern p with the string s and return 1 if * they match, and 0 or 2 if they don't or if there is a syntax error in the * pattern. This routine recurses on itself no more deeply than the number * of characters in the pattern. */ { int c; /* pattern char or start of range in [-] loop */ /* Get first character, the pattern for new recmatch calls follows */ c = *p++; /* If that was the end of the pattern, match if string empty too */ if (c == 0) return *s == 0; /* '?' (or '%') matches any character (but not an empty string) */ #ifdef VMS if (c == '%') /* GRR: make this conditional, too? */ #else /* !VMS */ if (c == '?') #endif /* ?VMS */ return *s ? recmatch(p, s + 1, ic) : 0; /* '*' matches any number of characters, including zero */ #ifdef AMIGA if (c == '#' && *p == '?') /* "#?" is Amiga-ese for "*" */ c = '*', p++; #endif /* AMIGA */ if (c == '*') { if (*p == 0) return 1; for (; *s; s++) if ((c = recmatch(p, s, ic)) != 0) return (int)c; return 2; /* 2 means give up--match will return false */ } #ifndef VMS /* No bracket matching in VMS */ /* Parse and process the list of characters and ranges in brackets */ if (c == '[') { int e; /* flag true if next char to be taken literally */ uch *q; /* pointer to end of [-] group */ int r; /* flag true to match anything but the range */ if (*s == 0) /* need a character to match */ return 0; p += (r = (*p == '!' || *p == '^')); /* see if reverse */ for (q = p, e = 0; *q; q++) /* find closing bracket */ if (e) e = 0; else if (*q == '\\') /* GRR: change to ^ for MS-DOS, OS/2? */ e = 1; else if (*q == ']') break; if (*q != ']') /* nothing matches if bad syntax */ return 0; for (c = 0, e = *p == '-'; p < q; p++) { /* go through the list */ if (e == 0 && *p == '\\') /* set escape flag if \ */ e = 1; else if (e == 0 && *p == '-') /* set start of range if - */ c = *(p-1); else { int cc = Case(*s); if (*(p+1) != '-') for (c = c ? c : *p; c <= *p; c++) /* compare range */ if (Case(c) == cc) return r ? 0 : recmatch(q + 1, s + 1, ic); c = e = 0; /* clear range, escape flags */ } } return r ? recmatch(q + 1, s + 1, ic) : 0; /* bracket match failed */ } #endif /* !VMS */ /* if escape ('\'), just compare next character */ if (c == '\\' && (c = *p++) == 0) /* if \ at end, then syntax error */ return 0; /* just a character--compare it */ return Case((uch)c) == Case(*s) ? recmatch(p, ++s, ic) : 0; } /* end function recmatch() */ #ifdef WILD_STAT_BUG /* Turbo/Borland C, Watcom C, VAX C, Atari MiNT libs */ int dd_iswild(const char *p) { for (; *p; ++p) if (*p == '\\' && *(p+1)) ++p; #ifdef VMS else if (*p == '%' || *p == '*') #else /* !VMS */ #ifdef AMIGA else if (*p == '?' || *p == '*' || (*p=='#' && p[1]=='?') || *p == '[') #else /* !AMIGA */ else if (*p == '?' || *p == '*' || *p == '[') #endif /* ?AMIGA */ #endif /* ?VMS */ return 1; return 0; } /* end function dd_iswild() */ #endif /* WILD_STAT_BUG */ #ifdef TEST_MATCH /* replaced gets() with fgets(). gets() can be dangerous, has known to give security problems, because it does not check for bufferoverflow. Erwin Waterlander, Jul 22 1998 */ #define put(s) { fputs(s, stdout); fflush(stdout); } void main(void) { char pat[256], str[256]; for (;;) { put("Pattern (return to exit): "); fgets(pat,100,stdin); if (!pat[0]) break; for (;;) { put("String (return for new pattern): "); fgets(str,100,stdin); if (!str[0]) break; printf("Case sensitive: %s insensitive: %s\n", dd_match(str, pat, 0) ? "YES" : "NO", dd_match(str, pat, 1) ? "YES" : "NO"); } } exit(0); } #endif /* TEST_MATCH */ wcd-5.2.5/src/version.mk0000664000175000017500000000010012345657427015331 0ustar waterlanwaterlan VERSION = 5.2.5 VERSION_SHORT = 525 VERSION_DATE = 2014-06-10 wcd-5.2.5/src/querycp.c0000664000175000017500000001415212066325113015143 0ustar waterlanwaterlan/* querycp.c is in the public domain */ #if (defined(__WATCOMC__) && defined(__NT__)) # define _WIN32 #endif #ifdef __MSYS__ # define _WIN32 # undef __CYGWIN__ #endif #ifdef __DJGPP__ #include #include #include /* ---------------------------------------------------------------------- Tuesday, May 5, 2009 1:40pm rugxulo _AT_ gmail _DOT_ com This file is (obviously?) not copyrighted, "nenies proprajxo" !! Tested successfully on DR-DOS 7.03, FreeDOS 1.0++, and MS-DOS 6.22. (Doesn't work on XP or Vista, though.) ---------------------------------------------------------------------- unsigned short query_con_codepage(void); gets currently selected display CON codepage int 21h, 6601h ("chcp") needs NLSFUNC.EXE + COUNTRY.SYS, but many obscure codepages (e.g. FD's cp853 from EGA.CPX (CPIX.ZIP) or Kosta Kostis' cp913 from ISOLATIN.CPI (ISOCP101.ZIP) have no relevant data inside COUNTRY.SYS. int 21h, 440Ch 6Ah only works in MS-DOS and DR-DOS (not FreeDOS) because FreeDOS DISPLAY is an .EXE TSR, not a device driver, and hence doesn't fully support IOCTL, so they use the undocumented int 2Fh, 0AD02h (which doesn't work in DR-DOS!). But DR-DOS' DISPLAY doesn't respond to the typical install check i.d. anyways. FreeDOS currently only supports COUNTRY.SYS in their "unstable" kernel 2037, but at least their KEYB, "gxoje", supports cp853 too (thanks, Henrique!). P.S. For MS or DR: ren ega.cpx *.com ; upx -d ega.com ; ren ega.com *.cpi ADDENDUM (2011): Latest "stable" FreeDOS kernel is 2040, it now includes COUNTRY.SYS support by default, but NLSFUNC (CHCP) 'system code page' support is partially unimplemented (lacking some int 2Fh calls, yet Eduardo Casino didn't seem too worried, so I dunno, nag him if necessary, heh). ---------------------------------------------------------------------- */ unsigned short query_con_codepage(void) { __dpmi_regs regs; unsigned short param_block[2] = { 0, 437 }; regs.d.eax = 0x440C; /* GENERIC IO FOR HANDLES */ regs.d.ebx = 1; /* STDOUT */ regs.d.ecx = 0x036A; /* 3 = CON, 0x6A = QUERY SELECTED CP */ regs.x.ds = __tb >> 4; /* using transfer buffer for low mem. */ regs.x.dx = __tb & 0x0F; /* (suggested by DJGPP FAQ, hi Eli!) */ regs.x.flags |= 1; /* preset carry for potential failure */ __dpmi_int (0x21, ®s); if (!(regs.x.flags & 1)) /* if succeed (carry flag not set) */ dosmemget( __tb, 4, param_block); else { /* (undocumented method) */ regs.x.ax = 0xAD02; /* 440C -> MS-DOS or DR-DOS only */ regs.x.bx = 0xFFFE; /* AD02 -> MS-DOS or FreeDOS only */ regs.x.flags |= 1; __dpmi_int(0x2F, ®s); if ((!(regs.x.flags & 1)) && (regs.x.bx < 0xFFFE)) param_block[1] = regs.x.bx; } return param_block[1]; } #elif defined(__WATCOMC__) && defined(__I86__) /* Watcom C, 16 bit Intel */ /* rugxulo _AT_ gmail _DOT_ com */ #include #include #include unsigned short query_con_codepage(void) { union REGS regs; unsigned short param_block[2] = { 0, 437 }; regs.x.ax = 0x440C; /* GENERIC IO FOR HANDLES */ regs.x.bx = 1; /* STDOUT */ regs.x.cx = 0x036A; /* 3 = CON, 0x6A = QUERY SELECTED CP */ regs.x.dx = (unsigned short)param_block; regs.x.cflag |= 1; /* preset carry for potential failure */ int86(0x21, ®s, ®s); if (regs.x.cflag) /* if not succeed (carry flag set) */ { regs.x.ax = 0xAD02; /* 440C -> MS-DOS or DR-DOS only */ regs.x.bx = 0xFFFE; /* AD02 -> MS-DOS or FreeDOS only */ regs.x.cflag |= 1; int86(0x2F, ®s, ®s); } if ((!(regs.x.cflag)) && (regs.x.bx < 0xFFFE)) param_block[1] = regs.x.bx; return param_block[1]; } #elif defined(__WATCOMC__) && defined(__DOS__) /* Watcom C, 32 bit DOS */ /* rugxulo _AT_ gmail _DOT_ com */ #include #include #include unsigned short query_con_codepage(void) { union REGS regs; unsigned short param_block[2] = { 0, 437 }; regs.x.eax = 0x440C; /* GENERIC IO FOR HANDLES */ regs.x.ebx = 1; /* STDOUT */ regs.x.ecx = 0x036A; /* 3 = CON, 0x6A = QUERY SELECTED CP */ regs.x.edx = (unsigned short)param_block; regs.x.cflag |= 1; /* preset carry for potential failure */ int386(0x21, ®s, ®s); if (regs.x.cflag) /* if not succeed (carry flag set) */ { regs.x.eax = 0xAD02; /* 440C -> MS-DOS or DR-DOS only */ regs.x.ebx = 0xFFFE; /* AD02 -> MS-DOS or FreeDOS only */ regs.x.cflag |= 1; int386(0x2F, ®s, ®s); } if ((!(regs.x.cflag)) && (regs.x.ebx < 0xFFFE)) param_block[1] = regs.x.ebx; return param_block[1]; } #elif defined (_WIN32) && !defined(__CYGWIN__) /* Windows, not Cygwin */ /* Erwin Waterlander */ #include unsigned short query_con_codepage(void) { /* Get the console's DOS code page */ /* return((unsigned short)GetConsoleOutputCP()); */ /* The Windows version of Wcd writes the treedata * files in the system's default encoding, which is * the ANSI code page. */ /* Get the system's ANSI code page */ return((unsigned short)GetACP()); } #elif defined (__OS2__) /* OS/2 Warp */ #define INCL_DOS #include unsigned short query_con_codepage(void) { ULONG cp[3]; ULONG cplen; DosQueryCp(sizeof(cp), cp, &cplen); return((unsigned short)cp[0]); } #else /* Unix, other */ #ifndef __MSDOS__ #include #include #endif unsigned short query_con_codepage(void) { #ifndef __MSDOS__ if (strcmp(nl_langinfo(CODESET), "ISO-8859-1") == 0) return(28591); if (strcmp(nl_langinfo(CODESET), "ISO-8859-2") == 0) return(28592); #endif return(0); } #endif #ifdef TEST int main() { printf("\nCP%u\n",query_con_codepage() ); /* should be same result as */ return 0; /* "mode con cp /status" */ } #endif wcd-5.2.5/src/stack.c0000664000175000017500000001260512275541571014573 0ustar waterlanwaterlan/* Copyright (C) 1997-2014 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "std_macr.h" #include "structur.h" #include "nameset.h" #include "display.h" #include "dosdir.h" #include "WcdStack.h" #include "Text.h" #include "wcd.h" #include "stack.h" #include "config.h" #include "wcddir.h" /******************************************************************** * * stack_add * ********************************************************************/ int stack_add(WcdStack ws, char *dir) { ws->lastadded++; if(ws->lastadded == ws->maxsize) ws->lastadded = 0; ws->current = ws->lastadded; /* printWcdStack("add ", ws, stdout); */ /* free old dir string if present */ if (ws->dir != NULL) if((ws->dir[ws->lastadded] != NULL) && (ws->size == (size_t)ws->maxsize)) free (ws->dir[ws->lastadded]); putElementAtWcdStackDir(textNew(dir), (size_t)ws->lastadded, ws); return(0); } /******************************************************************** * * stack_read * ********************************************************************/ int stack_read(WcdStack ws,char *stackfilename) { FILE *infile; char tmp[DD_MAXPATH]; int line_nr=1; /* open stack-file */ if ((ws->maxsize <= 0)||((infile = wcd_fopen(stackfilename,"r",1)) == NULL)) { /* print_error("Unable to read file %s\n",stackfilename); */ ws->lastadded = -1; ws->current = -1; } else { if(fscanf(infile,"%d %d",&ws->lastadded,&ws->current)==2) { while( !feof(infile)&&(ws->size < (size_t)ws->maxsize) ) { int len ; /* read a line */ len = wcd_getline(tmp,DD_MAXPATH,infile,stackfilename,&line_nr); ++line_nr; if (len > 0 ) addToWcdStackDir(textNew(tmp), ws); } } else { print_error("%s", _("Error parsing stack\n")); ws->lastadded = -1; ws->current = -1; } wcd_fclose(infile, stackfilename, "r", "stack_read: "); if (ws->lastadded >= (int)ws->size) ws->lastadded = 0; if (ws->current >= (int)ws->size) ws->current = 0; } /* printWcdStack("READ ", ws, stdout); */ return(0); } /*******************************************************************/ int stack_print(WcdStack ws, int use_numbers, int use_stdout) { #ifdef WCD_USECONIO if (use_stdout == WCD_STDOUT_NO) return display_list_conio(NULL,ws,0,use_numbers); else return display_list_stdout(NULL,ws,0, use_stdout); #else # ifdef WCD_USECURSES int i; if ((use_stdout == WCD_STDOUT_NO) && ((i = display_list_curses(NULL,ws,0,use_numbers)) != WCD_ERR_CURSES)) return i; else return display_list_stdout(NULL,ws,0, use_stdout); # else return display_list_stdout(NULL,ws,0, use_stdout); # endif #endif } /******************************************************************** * * stack_push * ********************************************************************/ char* stack_push(WcdStack ws, int push_ntimes) { int new_stack_nr; if(ws == NULL) return (NULL); else if( ((ws->size) == 0) || ((ws->size) > (size_t)ws->maxsize) ) return (NULL); else { push_ntimes = push_ntimes % (int)ws->size; new_stack_nr = ws->current - push_ntimes; if(new_stack_nr < 0) new_stack_nr = (int)ws->size + new_stack_nr; ws->current = new_stack_nr; return(ws->dir[ws->current]); } } /******************************************************************** * * stack_pop * * * ********************************************************************/ char* stack_pop(WcdStack ws, int pop_ntimes) { int new_stack_nr; if(ws == NULL) return (NULL); else if( ((ws->size) == 0) || ((ws->size) > (size_t)ws->maxsize) ) return (NULL); else { pop_ntimes = pop_ntimes % (int)ws->size; new_stack_nr = ws->current + pop_ntimes; if(new_stack_nr > (int)(ws->size -1)) new_stack_nr = new_stack_nr - (int)ws->size; ws->current = new_stack_nr; return(ws->dir[ws->current]); } } /******************************************************************** * * stack_write * ********************************************************************/ int stack_write(WcdStack ws,char *stackfilename) { FILE *outfile; int i; if (ws->maxsize <= 0) return(0); else { /* create directory for stack file if it doesn't exist */ create_dir_for_file(stackfilename); if ( (outfile = wcd_fopen(stackfilename,"w",0)) == NULL) { return(0); } else { fprintf(outfile,"%d %d\n",ws->lastadded,ws->current); for(i=0;((i<(int)ws->size)&&(imaxsize));i++) { /* printf("writing line %d\n",i); */ fprintf(outfile,"%s\n",ws->dir[i]); } wcd_fclose(outfile, stackfilename, "w", "stack_write: "); } return(0); } } wcd-5.2.5/src/matchw.h0000664000175000017500000000073411642416446014755 0ustar waterlanwaterlan/* matchw.h Copyright (C) 2011 Erwin Waterlander This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, see the file COPYING. */ #ifndef _MATCHW_H #define _MATCHW_H #include int dd_matchmbs(const char *string, const char *pattern, int ignore_case, int ignore_diacritics); int dd_matchwcs(const wchar_t *string, const wchar_t *pattern, int ignore_case, int ignore_diacritics); #endif /* _MATCHW_H */ wcd-5.2.5/src/patch/0000775000175000017500000000000012345660655014420 5ustar waterlanwaterlanwcd-5.2.5/src/patch/wcd_bool.diff0000775000175000017500000000101311567517042017034 0ustar waterlanwaterlan--- wcd-3.1.1.orig/c3po/std_macr.h +++ wcd-3.1.1/c3po/std_macr.h @@ -41,8 +41,10 @@ #define EOF -1 /* end of file */ #endif -#define true 1 -#define false 0 +/* Change by KMR to support build on Debian */ +#include +/* #define true 1 */ +/* #define false 0 */ #define expvar /* export variable */ #define expfun /* export function */ wcd-5.2.5/src/matchw.c0000664000175000017500000005312612035632042014740 0ustar waterlanwaterlan/*--------------------------------------------------------------------------- match.c The match() routine recursively compares a string to a "pattern" (regular expression), returning TRUE if a match is found or FALSE if not. This version is specifically for use with unzip.c: as did the previous match() routines from SEA and J. Kercheval, it leaves the case (upper, lower, or mixed) of the string alone, but converts any uppercase characters in the pattern to lowercase if indicated by the global var pInfo->lcflag (which is to say, string is assumed to have been converted to lowercase already, if such was necessary). GRR: reversed order of text, pattern in matche() (now same as match()); added ignore_case/ic flags, Case() macro. PK: replaced matche() with recmatch() from Zip, modified to have an ignore_case argument; replaced test frame with simpler one. --------------------------------------------------------------------------- matchw.c : A modified version of match.c with Unicode matching. EW: * Option to ignore diacritics. * Unicode normalistion. --------------------------------------------------------------------------- Copyright on recmatch() from Zip's util.c (although recmatch() was almost certainly written by Mark Adler...ask me how I can tell :-) ): Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, Kai Uwe Rommel and Igor Mandrichenko. Copyright (C) 2011 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --------------------------------------------------------------------------- Info-ZIP's home WWW site is listed on Yahoo and is at: http://www.cdrom.com/pub/infozip/ e-mail : Zip-Bugs@lists.wku.edu --------------------------------------------------------------------------- Match the pattern (wildcard) against the string (fixed): match(string, pattern, ignore_case); returns TRUE if string matches pattern, FALSE otherwise. In the pattern: `*' matches any sequence of characters (zero or more) `?' matches any character [SET] matches any character in the specified set, [!SET] or [^SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like ``character hyphen character'' (as in 0-9 or A-Z). [0-9a-zA-Z_] is the minimal set of characters allowed in the [..] pattern construct. Other characters are allowed (ie. 8 bit characters) if your system will support them. To suppress the special syntactic significance of any of ``[]*?!^-\'', in- side or outside a [..] construct and match the character exactly, precede it with a ``\'' (backslash). Note that "*.*" and "*." are treated specially under MS-DOS if DOSWILD is defined. See the DOSWILD section below for an explanation. ---------------------------------------------------------------------------*/ #include #include #include #ifdef WCD_UNINORM # include /* part of libunistring */ #endif #include "wcd.h" #include "display.h" #include "dosdir.h" #include "matchw.h" /* define ToLower() in here (for Unix, define ToLower * to be macro (using isupper()); otherwise just use * tolower() */ #define Case(x) (ic? towlower(x) : (wint_t)(x)) static wint_t match_C[0x250] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12a, 0x12b, 0x12c, 0x12d, 0x12e, 0x12f, 0x130, 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, 0x137, 0x138, 0x139, 0x13a, 0x13b, 0x13c, 0x13d, 0x13e, 0x13f, 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x149, 0x14a, 0x14b, 0x14c, 0x14d, 0x14e, 0x14f, 0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, 0x15a, 0x15b, 0x15c, 0x15d, 0x15e, 0x15f, 0x160, 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16a, 0x16b, 0x16c, 0x16d, 0x16e, 0x16f, 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, 0x176, 0x177, 0x178, 0x179, 0x17a, 0x17b, 0x17c, 0x17d, 0x17e, 0x17f, 0x180, 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189, 0x18a, 0x18b, 0x18c, 0x18d, 0x18e, 0x18f, 0x190, 0x191, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, 0x19e, 0x19f, 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a7, 0x1a8, 0x1a9, 0x1aa, 0x1ab, 0x1ac, 0x1ad, 0x1ae, 0x1af, 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b4, 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1bd, 0x1be, 0x1bf, 0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9, 0x1ca, 0x1cb, 0x1cc, 0x1cd, 0x1ce, 0x1cf, 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d4, 0x1d5, 0x1d6, 0x1d7, 0x1d8, 0x1d9, 0x1da, 0x1db, 0x1dc, 0x1dd, 0x1de, 0x1df, 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e4, 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9, 0x1ea, 0x1eb, 0x1ec, 0x1ed, 0x1ee, 0x1ef, 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f4, 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9, 0x1fa, 0x1fb, 0x1fc, 0x1fd, 0x1fe, 0x1ff, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20a, 0x20b, 0x20c, 0x20d, 0x20e, 0x20f, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21a, 0x21b, 0x21c, 0x21d, 0x21e, 0x21f, 0x220, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22a, 0x22b, 0x22c, 0x22d, 0x22e, 0x22f, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, 0x239, 0x23a, 0x23b, 0x23c, 0x23d, 0x23e, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x249, 0x24a, 0x24b, 0x24c, 0x24d, 0x24e, 0x24f }; static wint_t match_Unicode[0x250] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* Latin-1 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xc6, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe6, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0xf0, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, /* Latin Extended-A */ 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x132, 0x133, 0x4a, 0x6a, 0x4b, 0x6b, 0x138, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x152, 0x153, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x17f, 0x62, 0x42, 0x42, 0x62, 0x184, 0x185, 0x186, 0x43, 0x63, 0x44, 0x44, 0x44, 0x64, 0x18d, 0x18e, 0x18f, /* Latin Extended-B */ 0x45, 0x46, 0x66, 0x47, 0x194, 0x195, 0x49, 0x197, 0x4b, 0x6b, 0x19a, 0x19b, 0x19c, 0x4e, 0x6e, 0x4f, 0x4f, 0x6f, 0x1a2, 0x1a3, 0x50, 0x70, 0x1a6, 0x1a7, 0x1a8, 0x1a9, 0x1aa, 0x74, 0x54, 0x74, 0x54, 0x55, 0x75, 0x1b1, 0x56, 0x59, 0x79, 0x5a, 0x7a, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x32, 0x1bc, 0x1bd, 0x1be, 0x1bf, 0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9, 0x1ca, 0x1cb, 0x1cc, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x1dd, 0x41, 0x61, 0x41, 0x61, 0x1e2, 0x1e3, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x1ee, 0x1ef, 0x6a, 0x1f1, 0x1f2, 0x1f3, 0x47, 0x67, 0x1f6, 0x1f7, 0x4e, 0x6e, 0x41, 0x61, 0x1fc, 0x1fd, 0x4f, 0x6f, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x21c, 0x21d, 0x48, 0x68, 0x4e, 0x64, 0x222, 0x223, 0x5a, 0x7a, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x6c, 0x6e, 0x74, 0x6a, 0x238, 0x239, 0x41, 0x43, 0x63, 0x4c, 0x54, 0x73, 0x7a, 0x241, 0x242, 0x42, 0x55, 0x245, 0x45, 0x65, 0x4a, 0x6a, 0x71, 0x71, 0x52, 0x72, 0x59, 0x79 }; /* dd_matchwcs() is a shell to recmatch() to return only Boolean values. */ static int recmatchwcs(wchar_t *pattern, wchar_t *string, int ignore_case, wint_t *CPTable); int dd_matchmbs(const char *string, const char *pattern, int ignore_case, int ignore_diacritics) { static wchar_t wstr_string[DD_MAXPATH]; static wchar_t wstr_pattern[DD_MAXPATH]; size_t len1,len2; len1 = MBSTOWCS(wstr_string , string ,(size_t)DD_MAXPATH); len2 = MBSTOWCS(wstr_pattern, pattern,(size_t)DD_MAXPATH); if ((len1 == (size_t)(-1)) || (len2 == (size_t)(-1))) return 0; return(dd_matchwcs(wstr_string, wstr_pattern, ignore_case, ignore_diacritics)); } int dd_matchwcs(const wchar_t *string,const wchar_t *pattern,int ignore_case, int ignore_diacritics) { #if (defined(__MSDOS__) && defined(DOSWILD)) wchar_t *dospattern; size_t j = wcslen(pattern); #endif wint_t *CPTable; int result; #ifdef WCD_UNINORM static wchar_t string_buffer[DD_MAXPATH]; static wchar_t pattern_buffer[DD_MAXPATH]; size_t lengthp = DD_MAXPATH; wchar_t *string_normalized; wchar_t *pattern_normalized; # if defined(_WIN32) || defined(__CYGWIN__) /* Normalization. Composition, such that we can ignore diacritics. */ string_normalized = u16_normalize (UNINORM_NFKC, string, wcslen(string) +1, string_buffer, &lengthp); if (string_normalized == NULL) return(0); pattern_normalized = u16_normalize (UNINORM_NFKC, pattern, wcslen(pattern) +1, pattern_buffer, &lengthp); if (pattern_normalized == NULL) return(0); # else string_normalized = u32_normalize (UNINORM_NFKC, string, wcslen(string) +1, string_buffer, &lengthp); if (string_normalized == NULL) return(0); pattern_normalized = u32_normalize (UNINORM_NFKC, pattern, wcslen(pattern) +1, pattern_buffer, &lengthp); if (pattern_normalized == NULL) return(0); # endif #else /* No normalization */ const wchar_t *string_normalized; const wchar_t *pattern_normalized; string_normalized = string; pattern_normalized = pattern; #endif if (ignore_diacritics == 0) CPTable = match_C; else CPTable = match_Unicode; #if (defined(__MSDOS__) && defined(DOSWILD)) /*--------------------------------------------------------------------------- Optional MS-DOS preprocessing section: compare last three chars of the wildcard to "*.*" and translate to "*" if found; else compare the last two characters to "*." and, if found, scan the non-wild string for dots. If in the latter case a dot is found, return failure; else translate the "*." to "*". In either case, continue with the normal (Unix-like) match procedure after translation. (If not enough memory, default to normal match.) This causes "a*.*" and "a*." to behave as MS-DOS users expect. ---------------------------------------------------------------------------*/ if ((dospattern = (wchar_t *)malloc((j+1) * sizeof(wchar_t))) != NULL) { wcscpy(dospattern, pattern_normalized); if (!wcscmp(dospattern+j-3, L"*.*")) { dospattern[j-2] = '\0'; /* nuke the ".*" */ } else if (!wcscmp(dospattern+j-2, L"*.")) { wchar_t *p = wcschr(string_normalized, L'.'); if (p) { /* found a dot: match fails */ free(dospattern); return 0; } dospattern[j-1] = '\0'; /* nuke the end "." */ } result = recmatchwcs((wchar_t *)dospattern, (wchar_t *)string_normalized, ignore_case, CPTable); free(dospattern); #ifdef WCD_UNINORM if (string_normalized != string_buffer) free(string_normalized); if (pattern_normalized != pattern_buffer) free(pattern_normalized); #endif return result == 1; } else #endif /* __MSDOS__ && DOSWILD */ result = recmatchwcs((wchar_t *)pattern_normalized, (wchar_t *)string_normalized, ignore_case, CPTable) == 1; #ifdef WCD_UNINORM if (string_normalized != string_buffer) free(string_normalized); if (pattern_normalized != pattern_buffer) free(pattern_normalized); #endif return(result); } static int recmatchwcs(wchar_t *p,wchar_t *s,int ic, wint_t *CPTable) /* wchar_t *p; sh pattern to match */ /* wchar_t *s; string to which to match it */ /* int ic; true for case insensitivity */ /* Recursively compare the sh pattern p with the string s and return 1 if * they match, and 0 or 2 if they don't or if there is a syntax error in the * pattern. This routine recurses on itself no more deeply than the number * of characters in the pattern. */ { wint_t c; /* pattern char or start of range in [-] loop */ int result; /* Get first character, the pattern for new recmatch calls follows */ c = *p++; /* If that was the end of the pattern, match if string empty too */ if (c == 0) return *s == 0; /* '?' (or '%') matches any character (but not an empty string) */ #ifdef VMS if (c == L'%') /* GRR: make this conditional, too? */ #else /* !VMS */ if (c == L'?') #endif /* ?VMS */ return *s ? recmatchwcs(p, s + 1, ic, CPTable) : 0; /* '*' matches any number of characters, including zero */ #ifdef AMIGA if (c == L'#' && *p == L'?') /* "#?" is Amiga-ese for "*" */ c = L'*', p++; #endif /* AMIGA */ if (c == L'*') { if (*p == 0) return 1; for (; *s; s++) if ((result = recmatchwcs(p, s, ic, CPTable)) != 0) return result; return 2; /* 2 means give up--match will return false */ } #ifndef VMS /* No bracket matching in VMS */ /* Parse and process the list of characters and ranges in brackets */ if (c == L'[') { wint_t e; /* flag true if next char to be taken literally */ wchar_t *q; /* pointer to end of [-] group */ wint_t r; /* flag true to match anything but the range */ if (*s == 0) /* need a character to match */ return 0; p += (r = (*p == L'!' || *p == L'^')); /* see if reverse */ for (q = p, e = 0; *q; q++) /* find closing bracket */ if (e) e = 0; else if (*q == '\\') /* GRR: change to ^ for MS-DOS, OS/2? */ e = 1; else if (*q == L']') break; if (*q != L']') /* nothing matches if bad syntax */ return 0; for (c = 0, e = *p == L'-'; p < q; p++) { /* go through the list */ if (e == 0 && *p == L'\\') /* set escape flag if \ */ e = 1; else if (e == 0 && *p == L'-') /* set start of range if - */ c = *(p-1); else { wint_t cc = Case((wint_t)*s); if (*(p+1) != L'-') for (c = c ? c : (wint_t)*p; c <= (wint_t)*p; c++) /* compare range */ { if ((c < 0x250) && (cc < 0x250)) result = Case(CPTable[c]) == Case(CPTable[cc]); else result = Case(c) == Case(cc); if (result) return r ? 0 : recmatchwcs(q + 1, s + 1, ic, CPTable); } c = e = 0; /* clear range, escape flags */ } } return r ? recmatchwcs(q + 1, s + 1, ic, CPTable) : 0; /* bracket match failed */ } #endif /* !VMS */ /* if escape ('\'), just compare next character */ if (c == '\\' && (c = *p++) == 0) /* if \ at end, then syntax error */ return 0; /* just a character--compare it */ if ((c < 0x250) && (*s < 0x250)) result = Case(CPTable[c]) == Case(CPTable[*s]); else result = Case(c) == Case((wint_t)*s); return result ? recmatchwcs(p, ++s, ic, CPTable) : 0; } /* end function recmatch() */ #ifdef WILD_STAT_BUG /* Turbo/Borland C, Watcom C, VAX C, Atari MiNT libs */ int dd_iswildl(const wchar_t *p) { for (; *p; ++p) if (*p == '\\' && *(p+1)) ++p; #ifdef VMS else if (*p == L'%' || *p == L'*') #else /* !VMS */ #ifdef AMIGA else if (*p == L'?' || *p == L'*' || (*p==L'#' && p[1]==L'?') || *p == L'[') #else /* !AMIGA */ else if (*p == L'?' || *p == L'*' || *p == L'[') #endif /* ?AMIGA */ #endif /* ?VMS */ return 1; return 0; } /* end function dd_iswild() */ #endif /* WILD_STAT_BUG */ #ifdef TEST_MATCH /* replaced gets() with fgets(). gets() can be dangerous, has known to give security problems, because it does not check for bufferoverflow. Erwin Waterlander, Jul 22 1998 */ #define put(s) { fputs(s, stdout); fflush(stdout); } void main(void) { wchar_t pat[256], str[256]; for (;;) { put("Pattern (return to exit): "); fgetws(pat,100,stdin); if (!pat[0]) break; for (;;) { put("String (return for new pattern): "); fgetws(str,100,stdin); if (!str[0]) break; printf("Case sensitive: %s insensitive: %s\n", dd_matchwcs(str, pat, 0) ? "YES" : "NO", dd_matchwcs(str, pat, 1) ? "YES" : "NO"); } } exit(0); } #endif /* TEST_MATCH */ wcd-5.2.5/src/wcd.h0000664000175000017500000001342012337451362014241 0ustar waterlanwaterlan/* Copyright (C) 1997-2012 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WCD_H #define _WCD_H #include #include #include "tailor.h" #include "std_macr.h" #include "structur.h" #if defined(__MSDOS__) || defined(__OS2__) || (defined(_WIN32) && !defined(__CYGWIN__)) /* A DOS like file system: * with drive letters * case insensitive * backslash separator. */ #define _WCD_DOSFS 1 #endif #ifdef VMS # define EXIT_OK 1 # define ALT_SW || *argv[i]=='/' # define CHDIR(s) vms_chdir(s) #else # define EXIT_OK 0 # define CHDIR(s) chdir(s) # ifdef _WCD_DOSFS # define ALT_SW || *argv[i]=='/' # define TREEFILE "/treedata.wcd" # define RELTREEFILE "/rtdata.wcd" /* relative treedata */ # define EXTRA_TREEFILE "/extra.wcd" # define BANFILE "/ban.wcd" # define ALIASFILE "/alias.wcd" # define STACK_GO_DRIVE "c:" # define STACKFILE "/stack.wcd" # ifdef WCD_WINZSH # define GO_FILE "/wcd.go" # elif defined(WCD_WINPWRSH) # define GO_FILE "/wcdgo.ps1" # elif defined(_WIN32) # define GO_FILE "/wcdgo.bat" # elif defined(__OS2__) # define GO_FILE "/wcdgo.cmd" # else # define GO_FILE "/wcd.go" # endif # define ROOTDIR "/" # define HOMESTRING "//users" # define DIR_SEPARATOR '/' # else /* ?UNIX */ # define ALT_SW # define TREEFILE "/.treedata.wcd" # define RELTREEFILE "/.rtdata.wcd" /* relative treedata */ # define EXTRA_TREEFILE "/.extra.wcd" # define BANFILE "/.ban.wcd" # define ALIASFILE "/.alias.wcd" # define STACKFILE "/.stack.wcd" # define ROOTDIR "/" # define HOMESTRING "/home" # define TMP_MNT_STR "/tmp_mnt/" /* temp mount dir for automounter, including ending / */ # define GO_FILE "/bin/wcd.go" # define GO_FILE2 "/wcd.go" # define DIR_SEPARATOR '/' # endif /* ?__MSDOS__ */ #endif /* ?VMS */ #if defined(UNIX) || defined(_WIN32) || defined(WCD_DOSBASH) || defined(__OS2__) /* A go-script is required */ #define WCD_SHELL #endif #if defined(UNIX) || defined(WCD_WINZSH) || defined(WCD_DOSBASH) || defined(WCD_OS2BASH) #define WCD_UNIXSHELL #endif /* Unix shells DJGPP-bash and WinZsh use Windows style paths, e.g. "c:/Program Files". * So in these shells we have to use a semicolon ';' as list separator. */ #ifdef _WCD_DOSFS # define LIST_SEPARATOR ";" #else # define LIST_SEPARATOR ":" #endif #if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined(VMS) # define OP_DIR "" #else /* ?unix */ # define OP_DIR "." #endif /* ?__MSDOS__|VMS */ /* Function prototypes */ #if defined(UNIX) || defined(WCD_DOSBASH) || defined(_WIN32) || defined(__OS2__) void quoteString(char *string); #endif #if defined(_WIN32) && !defined(__CYGWIN__) && defined(WCD_UNICODE) # define WCD_UTF16 # define WCSTOMBS wcstoutf8 # define MBSTOWCS utf8towcs #elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(WCD_UTF16) # define WCD_ANSI # define WCSTOMBS wcstoansi # define MBSTOWCS ansitowcs #else # define WCSTOMBS wcstombs # define MBSTOWCS mbstowcs #endif #ifdef WCD_UTF16 typedef unsigned char wcd_uchar; typedef wchar_t wcd_char; #else typedef unsigned char wcd_uchar; typedef char wcd_char; #endif #if defined(_WIN32) && !defined(__CYGWIN__) # define WCD_WINDOWS #endif #define FILE_MBS 0 /* Multi-byte string or 8-bit char */ #define FILE_UTF16LE 1 /* UTF-16 Little Endian */ #define FILE_UTF16BE 2 /* UTF-16 Big Endian */ #define FILE_UTF8 3 /* UTF-8 */ FILE *wcd_fopen(const char *filename, const char *m, int quiet); FILE *wcd_fopen_bom(const char *filename, const char *m, int quiet, int *bomtype); void wcd_fclose(FILE *fp, const char *filename, const char *m, const char *functionname); void finddirs(char *dir, size_t *offset, FILE *outfile, int *use_HOME, nameset exclude, int quiet); int read_treefile(char *filename, nameset bd, int silent); void rmDirFromList(char *string, nameset n); void writeList(char *filename, nameset n, int bomtype); void cleanTreeFile(char *filename, char *dir); void create_dir_for_file(char *f); char *removeBackSlash(char *string); void addCurPathToFile(char *filename, int *use_HOME, int parents); int check_double_match(char *dir, nameset set); void scanfile(char *org_dir, char *filename, int ignore_case, nameset pm, nameset wm, nameset bd, nameset filter, int relative, int wildOnly, int ignore_diacritics); void scanaliasfile(char *org_dir, char *filename, nameset pm, nameset wm, int wildOnly); int strcompare(const char*, const char*, int); int print_msg(const char *format, ...); int print_error(const char *format, ...); void print_help(void); #ifdef ENABLE_NLS void print_version(char *localedir); #else void print_version(void); #endif void print_license(void); int wcd_get_int(void); int wcd_getline(char s[], int lim, FILE* infile, const char* file_name, const int* line_nr); int wcd_exit(nameset pm, nameset wm, nameset ef, nameset bd, nameset nfs, WcdStack ws, nameset excl); void getCurPath(char *buffer, size_t size, int *use_HOME); #ifdef WCD_DOSBASH void empty_wcdgo(char *go_file, int changedrive, char *drive, int use_GoScript, int verbose); #else void empty_wcdgo(char *go_file, int use_GoScript, int verbose); #endif int SpecialDir(const char *path); #endif wcd-5.2.5/src/po/0000775000175000017500000000000012345660655013737 5ustar waterlanwaterlanwcd-5.2.5/src/po/wcd.pot0000664000175000017500000005227312343715651015244 0ustar waterlanwaterlan# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-05 00:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "" #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "" #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr "" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr "" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr "" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr "" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr "" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr "" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr "" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr "" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr "" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr "" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr "" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr "" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr "" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr "" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr "" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr "" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr "" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr "" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr "" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr "" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr "" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr "" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr "" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr "" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr "" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr "" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr "" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr "" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr "" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr "" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr "" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr "" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr "" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr "" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr "" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr "" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr "" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr "" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr "" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr "" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr "" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr "" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr "" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr "" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr "" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr "" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr "" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr "" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr "" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr "" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "" #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr "" #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr "" #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "" #: wcddir.c:127 msgid "access denied.\n" msgstr "" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "" #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "" #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "" #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "" #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "" #: stack.c:101 msgid "Error parsing stack\n" msgstr "" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "" #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "" #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "" #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr "" #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "" #: display.c:684 display.c:1177 msgid "w or page up" msgstr "" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr "" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr "" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "" #: display.c:693 display.c:1186 msgid " abort" msgstr "" #: display.c:694 msgid "Type w or x to quit help." msgstr "" #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "" #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "" #: display.c:1326 msgid "error creating input window.\n" msgstr "" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "" #: graphics.c:1776 msgid "SEARCH: " msgstr "" #: graphics.c:1779 msgid "Search: " msgstr "" #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "" #: graphics.c:1796 msgid "h or go left" msgstr "" #: graphics.c:1797 msgid "j or go down" msgstr "" #: graphics.c:1798 msgid "k or go up" msgstr "" #: graphics.c:1799 msgid "l or go right" msgstr "" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "" #: graphics.c:1804 msgid "1 go to root dir" msgstr "" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "" #: graphics.c:1806 msgid "f go page forward" msgstr "" #: graphics.c:1807 msgid "b go page backward" msgstr "" #: graphics.c:1808 msgid "u go half page up" msgstr "" #: graphics.c:1809 msgid "d go half page down" msgstr "" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "" #: graphics.c:1821 msgid " or q abort" msgstr "" #: graphics.c:1822 msgid "/ search forward" msgstr "" #: graphics.c:1823 msgid "? search backward" msgstr "" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr "" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "" #: graphics.c:1833 msgid " go left" msgstr "" #: graphics.c:1834 msgid " go down" msgstr "" #: graphics.c:1835 msgid " go up" msgstr "" #: graphics.c:1836 msgid " go right" msgstr "" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr "" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "" #: graphics.c:1855 msgid "ZOOMING:" msgstr "" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "" #: graphics.c:1863 msgid "- fold directory" msgstr "" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "" #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "" wcd-5.2.5/src/po/vi.po0000664000175000017500000010420112345660661014710 0ustar waterlanwaterlan# Vietnamese translations for wcd wcd # Bản dịch tiếng Việt cho gói wcd. # This file is distributed under the same license as the wcd package. # Trần Ngọc Quân , 2014. # msgid "" msgstr "" "Project-Id-Version: wcd 5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-03-29 14:15+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: lỗi: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Không đọc tập tin %s: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Không thể đọc tập tin %s: Đây không phải là một tập tin thường.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Không thể ghi tập tin “%s”: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Không thể đóng tập tin “%s”: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s được thêm vào tập tin %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Không thể gỡ bỏ tập tin %s: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): không thể dò tìm đường dẫn trong thư mục %s\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "đường dẫn quá dài.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s: không phải là một thư mục.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "Vui lòng chờ. Đang quét đĩa. Xây dựng tập-tin-dữ-liệu-cây %s từ %s\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Đang ghi tập tin \"%s\"\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Không đủ thẩm quyền ghi trên tập-tin-cây.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "Đặt biến môi trường TEMP nếu đây là đĩa chỉ cho đọc.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Đã gỡ bỏ liên kết mềm %s\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Không thể gỡ bỏ liên kết mềm %s: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s là một liên kết mềm đến một tập tin.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Gỡ bỏ đệ quy %s? Bạn chắc không? y/n c/k :" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Đã gỡ bỏ thư mục %s\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "dòng quá dài trong %s ( > %d). Tập-tin-cây có lẽ đã hỏng, hãy sửa chữa bằng " "cánh tăng DD_MAXPATH trong mã nguồn.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "tập tin: %s, dòng: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " kích cỡ: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Cách dùng: wcd [các-tùy-chọn] [thư-mục]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "thư-mục: Tên của thư-mục bạn muốn chuyển đến.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" " Hỗ trợ ký tự đại diện *, ? và [TẬPHỢP].\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "tùy chọn:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a Thêm đường dẫn hiện tại vào tập tin cây\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa thêm thư mục hiện tại và đường dẫn chA mẹ vào tập-" "tin-cây\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A ĐƯỜNG_DẪN Thêm cây từ ĐƯỜNG DẪN\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b Cấm thư mục hiện tại\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd chế độ CD trực tiếp\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr " -d ĐĨA đặt ĐĨA cho các tập tin stack & go (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e thêm đường dẫn hiện tại vào tập-tin-cây mở rộng\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee thêm đường dẫn cha mẹ và hiện tại vào tập-tin-cây " "mở rộng\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E ĐƯỜNG_DẪN thêm cây từ ĐƯỜNG DẪN vào tập-tin-cây mở rộng\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f TẬP-TIN dùng tập-tin-cây\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f TẬP-TIN thêm tập-tin-cây\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g Đồ họa\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd Đồ họa, đổ cây\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G ĐƯỜNG_DẪN đặt ĐƯỜNG DẪN Go-script\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script Không Go-script\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help hiển thị trợ giúp này\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr " -i, --ignore-case Không phân biệt HOA/thường (mặc định)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case phân biệt HOA/thường\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case Không phân biệt HOA/thường\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr " +i, --no-ignore-case phân biệt HOA/thường (mặc định)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics bỏ qua dấu phụ\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr " +I, --no-ignore-diacritics quan tâm đến dấu phụ (mặc định)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go Chế độ chỉ di chuyển\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths Giữ lại các đường dẫn\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color màu\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l BÍ_DANH bí danh thư mục hiện tại\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license hiển thị giấy phép phần mềm\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr " -m THƯ-MỤC Tạo THƯ-MỤC và thêm nó vào tập-tin-cây\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr " -M THƯ-MỤC Tạo THƯ-MỤC, thêm nó vào tập-tin-cây\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr " -n ĐƯỜNG_DẪN dùng tập-tin-cây tương đối trong ĐƯỜNG_DẪN\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr " +n ĐƯỜNG_DẪN thêm tập-tin-cây tương đối trong ĐƯỜNG_DẪN\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers dùng số\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o dùng đầu ra tiêu chuẩn\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout đổ mẫu khớp\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet Thực hiện im lặng\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r THƯ-MỤC gỡ bỏ THƯ-MỤC\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree THƯ-MỤC gỡ bỏ đệ quy THƯ-MỤC\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s quét đĩa từ biến $HOME\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S ĐƯỜNG_DẪN quét đĩa từ ĐƯỜNG DẪN\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S ĐƯỜNG_DẪN quét đĩa từ ĐƯỜNG DẪN, tạo tập-tin-cây tương đối\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t không cắt bỏ /tmp_mnt khỏi đường dẫn\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree vẽ cây dùng các ký tự ASCII\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav Điều hướng cây thay thế\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree hiển thị cây ở giữa\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree nén cây\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr " -Td, --cjk-width hỗ trợ phông chữ cũ CJK\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u TÀI_KHOẢN dùng tập-tin-cây của TÀI_KHOẢN này\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " -u TÀI_KHOẢN thêm tập-tin-cây của TÀI_KHOẢN này\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose mô tả các thao tác đang thực hiện\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version hiển thị thông tin về phiên bản\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only Chỉ khớp ký tự đại diện\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr " -x ĐƯỜNG_DẪN không lấy những đường dẫn khi quét đĩa\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf TẬP-TIN không lấy những đường dẫn có trong TẬP-TIN\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes trả lời là có cho mọi câu hỏi\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z SỐ đặt cỡ ngăn xếp tối đa\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr " -[SỐ] đẩy thư mục (SỐ lần)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[SỐ] lấy ra thư mục (SỐ lần)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = hiển thị ngăn xếp\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) - Đổi thư mục ở bất kỳ chỗ nào\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Chdir dành Dos và Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "Phiên bản DOS 16 bit (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "Phiên bản DOS 16 bit (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "Phiên bản DOS 32 bit (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "Phiên bản DOS 32 bit (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Phiên bản Win64 (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Phiên bản Win64 (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Phiên bản Win32 (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Phiên bản Win32 (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Phiên bản Win32 (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Phiên bản Win32 (MinGW).\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Đây là phiên bản dành cho MSYS và WinZsh.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Đây là phiên bản dành cho Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Đây là phiên bản dành cho Windows Command Prompt (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "Phiên bản OS/2" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Đây là phiên bản dành cho MSYS nguyên bản.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Phiên bản Cygwin.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Đây là phiên bản dành cho DJGPP DOS bash.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Đây là phiên bản dành cho OS/2 bash.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Giao diện: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "Phiên bản ncurses %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses biên dịch %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "thư viện curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "đầu ra tiêu chuẩn\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Đã bao gồm hỗ trợ ngôn ngữ tự nhiên.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Không hỗ trợ ngôn ngữ bản địa.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "Miền địa phương hiện tại dùng bảng mã CP%u.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "Miền địa phương hiện nay dùng bảng mã %s.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Có hỗ trợ Unicode.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Ký hiệu Euro: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Ký tự tiếng Trung Quốc: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Không hỗ trợ Unicode.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Có thường hóa Unicode.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Không thường hóa Unicode.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "Tải về chương trình thực thi và mã nguồn mới nhất từ:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Bản quyền (C) 1997-2014 Erwin Waterlander\n" "Bản quyền (C) 1994-2002 Ondrej Popp trên C3PO\n" "Bản quyền (C) 1995-1996 DJ Delorie trên _fixpath()\n" "Bản quyền (C) 1995-1996 Borja Etxebarria & Olivier Sirol trên Ninux Czo " "Directory\n" "Bản quyền (C) 1994-1996 Jason Mathews on DOSDIR\n" "Bản quyền (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel và Igor Mandrichenko trên recmatch()\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Mã nguồn để quét mạng nội bộ Windows nguyên gốc được viết và để\n" "ở miền công cộng bởi Felix Kasza.\n" "Mã thực thi wcwidth() và wcswidth() Markus Kuhn của được dùng.\n" "Rugxulo là tác giả gốc của query_con_codepage() (miền công).\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó\n" "và/hoặc sửa đổi nó với điều kiện của Giấy Phép Công Cộng GNU\n" "như được xuất bản bởi Tổ Chức Phần Mềm Tự Do; hoặc phiên bản 2\n" "của Giấy Phép này, hoặc (tùy chọn) bất kỳ phiên bản nào mới hơn.\n" "\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Chương trình này vì hy vọng là nó hữu ích,\n" "nhưng mà KHÔNG BẢO ĐẢM GÌ CẢ, không ngay cả\n" "KHI BÁN hoặc MỤC ĐÍCH ĐẶC THÙ.\n" "Hãy xem Giấy phép Công Chung GNU (GPL) để tìm chi tiết.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Bạn nên lấy một bản Giấy Phép Công Cộng GNU cùng với chương trình này;\n" "nếu không thì hãy viết thư cho Tổ chức Phần mềm Tự do theo địa chỉ:\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA (Mỹ).\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "đang tạo thư mục %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Giá trị của biến môi trường %s là quá dài.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Gặp lỗi khi bỏ đặt biến môi trường TERM: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Biến môi trường HOME hoặc WCDHOME chưa được đặt.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "biến HOME chưa được định nghĩa\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "biến WCDHOME chưa được định nghĩa\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "biến WCDSCAN chưa được định nghĩa\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" "Chế độ đồ họa chỉ được hỗ trợ trong wcd với giao diện dựa trên thư viện " "curse.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s được thêm vào tập-tin-bí-danh %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Không thể đọc tập tin %s hoặc %s\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "thư mục WCDSCAN {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "cấm {%s}\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "loại trừ {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "đang lọc {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Không tìm thấy thư mục nào khớp với %s\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "Có lẽ bạn cần quét lại đĩa hoặc là đường dẫn đã bị cấm.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Không thể chuyển sang %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu (\"%s\") được báo cáo bởi \"%s\".\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "không đủ thẩm quyền.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Đang tìm kếm thư mục chia sẻ trên máy chủ %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Tìm thấy %lu thư mục chia sẻ trên máy chủ %s\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Không thể lấy thư mục làm việc hiện hành: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Không thể chuyển sang thư mục %s: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Không thể tạo thư mục %s: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Không thể gỡ bỏ thư mục %s: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Không thể tạo thư mục %s: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Không thể lấy thư mục làm việc hiện hành: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Không thể đổi sang thư mục %s: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Không thể gỡ bỏ thư mục %s: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Gặp lỗi khi phân tích ngăn xếp\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "lỗi nội bộ trong hàm maxLength(), list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "lỗi nộ bộ trong hàm maxLengthStack(), s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Khớp hoàn toàn %d thư mục." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Khớp mẫu ký tự đại diện cho %d thư mục." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Vui lòng chọn một ( để bãi bỏ): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=lên x=xuống ?=trợ giúp Trang %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Chiều cao màn hình phải > 20 với trợ giúp." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w hay lên một trang" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x hay z hay xuống một trang" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", hay cuộn sang trái một trang" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". hay cuộn một trang sang phải" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< hay [ cuộn sang trái 10 trang" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> hay ] cuộn sang phải 10 trang" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "CTRL-a hay cuộn lên đầu" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "CTRL-e hay cuộn đến cuối" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "CTRL-c hay bãi bỏ" #: display.c:693 display.c:1186 msgid " abort" msgstr " bãi bỏ" #: display.c:694 msgid "Type w or x to quit help." msgstr "Gõ w hoặc x để thoát khỏi trợ giúp." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Nhấn phím bất kỳ." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" "Gặp lỗi khi mở thiết-bị cuối, quay trở lại giao diện đầu ra tiêu chuẩn.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "chiều cao màn hình phải lớn hơn 3 dòng.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "gặp lỗi khi tạo màn hình cuộn.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "gặp lỗi khi tạo cửa sổ đầu vào.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: lỗi: đường dẫn quá dài" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = tìm xuôi, ? = tìm ngược, : = trợ giúp" #: graphics.c:1776 msgid "SEARCH: " msgstr "TÌM: " #: graphics.c:1779 msgid "Search: " msgstr "Tìm: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "CHẾ ĐỘ DI CHUYỂN (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h hay sang trái" #: graphics.c:1797 msgid "j or go down" msgstr "j hay xuống dưới" #: graphics.c:1798 msgid "k or go up" msgstr "k hay lên trên" #: graphics.c:1799 msgid "l or go right" msgstr "l hay sang phải" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "* hay v hay đi tiếp đến thư mục có cùng tên" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# hay p hay đi ngược lại thư mục có cùng tên" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ hay a đi đến đầu dòng" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ hay e đi đến cuối dòng" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 nhảy đến thư mục gốc" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g hay G đi đến thư mục cuối" #: graphics.c:1806 msgid "f go page forward" msgstr "f nhảy một trang kế" #: graphics.c:1807 msgid "b go page backward" msgstr "b nhảy ngược một trang" #: graphics.c:1808 msgid "u go half page up" msgstr "u lên nửa trang" #: graphics.c:1809 msgid "d go half page down" msgstr "d xuống nửa trang" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "CHẾ ĐỘ DI CHUYỂN (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A bật/tắt điều hướng cây thay thế" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t bật/tắt chế độ căn giữa" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "T bật/tắt giữa vẽ bằng đường kẻ và ký tự ASCII" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m bật/tắt giữa trải rộng và thu gọn cây" #: graphics.c:1821 msgid " or q abort" msgstr " hay q bãi bỏ" #: graphics.c:1822 msgid "/ search forward" msgstr "/ tìm tiếp" #: graphics.c:1823 msgid "? search backward" msgstr "? tìm ngược lại" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n tìm lặp lại / hay ? cuối" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " chọn thư mục" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "CHẾ ĐỘ TÌM KẾM với hỗ trợ ký tự thay thế và thư mục con:" #: graphics.c:1833 msgid " go left" msgstr " sang trái" #: graphics.c:1834 msgid " go down" msgstr " đi xuống" #: graphics.c:1835 msgid " go up" msgstr " đi lên" #: graphics.c:1836 msgid " go right" msgstr " sang phải" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "CTRL-v đi tiếp đến thư mục với cùng tên" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "CTRL-p trở lại thư mục có cùng tên" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "CTRL-a đi đến đầu dòng" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "CTRL-e đi đến cuối dòng" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "CTRL-g quay lại thư mục cuối" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "CTRL-f đi tiếp một trang" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "CTRL-b đi ngược một trang" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "CTRL-u đi lên nửa trang" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "CTRL-d đi xuống nửa trang" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " hay CTRL-x bỏ CHẾ ĐỘ TÌM KIẾM" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "CTRL-n lặp lại việc tìm / hoặc ?" #: graphics.c:1855 msgid "ZOOMING:" msgstr "PHÓNG TO:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z hoặc i hay CTRL-i phóng to" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z hoặc o hay CTRL-o thu nhỏ" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c cô đặc: gấp nếp mức hiện tại" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C cô đặc: gấp nếp mức thư mục con" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w cô đặc: gấp nếp mức hiện tại và thư mục con" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y hay CTRL-y bỏ cô đặc: trải mức thư mục hiện tại và thư mục con" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r hay CTRL-r bỏ cô đặc: trải mọi thư mục ra" #: graphics.c:1863 msgid "- fold directory" msgstr "- gập nếp thư mục" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ hoặc = bỏ gấp nếp thư mục" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l or bỏ gấp nếp và đi sang phải" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "Chiều cao màn hình phải lớn hơn 21 khi dùng trợ giúp." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "lỗi malloc trong wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "trong “%s”, không đủ bộ nhớ để phân bổ\n" wcd-5.2.5/src/po/fi.po0000664000175000017500000010334112345660661014674 0ustar waterlanwaterlan# Finnish translations for wcd package. # Copyright © 2008-2014 Erwin Waterlander (msgids). # This file is distributed under the same license as the wcd package. # Jari Aalto , 2009, 2013. # Jorma Karvonen , 2014. # msgid "" msgstr "" "Project-Id-Version: wcd 5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-04-18 13:43+0200\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: virhe: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Tiedoston %s lukeminen epäonnistui: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Tiedoston %s lukeminen epäonnistui: ei ole tavallinen tiedosto.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Tiedoston %s kirjoittaminen epäonnistui: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Tiedoston %s sulkeminen epäonnistui: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s lisätty tiedostoon %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Tiedoston %s poistaminen epäonnistui: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): polun määrittäminen hakemistossa %s epäonnistui\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "polku on todennäköisesti liian pitkä.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s ei ole hakemisto.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" "Odota hetki, levyaseman tutkinta käynnissä. Treedata-tiedosto %s rakennetaan " "lähteestä %s\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Kirjoitetaan tiedostoa ”%s”\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Ei kirjoitusoikeutta tree-file-tiedostoon.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" "Aseta ympäristömuuttuja TEMP osoittamaan eri levyasemalle, jos tämä on " "kirjoitussuojattu levyasema.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Symbolinen linkki %s poistettu\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Symbolisen linkin %s poistaminen epäonnistui: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s on symbolinen linkki tiedostoon.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Poistetaanko %s rekursiivisesti? Oletko varma (yes/no)? y/n :" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Hakemisto %s poistettu\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "rivi liian pitkä kohteessa %s ( > %d). Tiedosto treefile saattaa olla " "rikkinäinen, tai korjaa kasvattamalla DD_MAXPATH-kokoa lähdekoodissa.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "tiedosto: %s, rivi: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " pituus: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Käyttö: wcd [valitsimet] [hakemisto]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "hakemisto: hakemiston nimi, johon siirtyä.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" " Jokerimerkit *, ? ja [] ovat tuettuja\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "valitsimet:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a Lisää nykyinen polku tiedostoon treefile\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa Lisää nykyinen ja kaikki polut yläpuolelta " "tiedostoon treefile\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A POLKU Lisää puuhierarkia kohteesta POLKU\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b Lisää nykyinen polku mustalle listalle\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd suora CD-tila\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d ASEMA Aseta ASEMA toimintojen stack & go -tiedostoille " "(DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e lisää nykyinen polku tiedostoon Extra treefile\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee lisää nykyinen ja kaikki polut yläpuolella " "tiedostoon Extra treefile\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E POLKU lisää puuhierarkia kohteesta POLKU tiedostoon " "Extra treefile\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f TIEDOSTO käytä extra treeFile\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f TIEDOSTO lisää extra treeFile\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g Graafinen tila\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd Graafinen tila, tulosta puuhierarkia\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G POLKU aseta go-skriptin POLKU\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script Poista go-skripti käytöstä\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help näytä tämä opaste\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr " -i, --ignore-case Ohita kirjainkokomääritykset (oletus)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case älä ohita kirjainkokomäärityksiä\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case Ohita kirjainkokomääritykset\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr " +i, --no-ignore-case älä ohita kirjainkokomäärityksiä (oletus)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics Ohita diakriittiset merkit\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" " +I, --no-ignore-diacritics älä ohita diakriittisiä merkkejä (oletus)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go Ainoastaan go-tila\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths Säilytä polut\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color Näytä värit\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ALIAS määritä nykyisen hakemiston ALIAS\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license näytä ohjelman lisenssi\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr " -m HAKEMISTO Tee HAKEMISTO, lisää tiedostoon treefile\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M HAKEMISTO Tee HAKEMISTO, lisää tiedostoon extra treefile\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr "" " -n POLKU käytä suhteellista treefile-osoitetta POLUSSA\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr " +n POLKU lisää suhteellinen treefile osoite POLKUUN\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers käytä numerointia\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o käytä vakiotulostetta\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout vedosta täsmäykset\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet Hiljainen tila, ei viestejä\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r HAKEMISTO Poista HAKEMISTO\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree HAKEM. Poista HAKEMISTO rekursiivisesti\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s Tutki levyasema kohteesta $HOME alaspäin\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S POLKU Tutki levyasema kohteesta POLKU alaspäin\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S POLKU Tutki levyasema kohteesta POLKU alaspäin, mutta " "käyttäen suhteellisia osoitteita (treefile)\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t älä poista /tmp_mnt osoitetta poluista\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree piirrä hakemistopuu ASCII-kirjaimin\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav Vaihtoehtoinen puunavigointitapa\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree Keskitä näkymä\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree Suppea esitystapa\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr "" " -Td, --cjk-width aktivoi tuki perinteisille CJK-kirjasimille\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u KÄYTTÄJÄ käytä KÄYTTÄJÄn treefile-tiedostoa\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u KÄYTTÄJÄ lisää KÄYTTÄJÄn treefile-tiedosto\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose Lavea tila, lisää viestien määrää\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version näytä ohjelman versio\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr "" " -w, --wild-match-only Jokerimerkkihaku, etsi annetun säännön mukaan\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr " -x POLKU Ohita POLKU tutkinnan aikana\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf TIEDOSTO ohita polut, jotka on mainittu TIEDOSTOssa\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr "" " -y, --assume-yes käytä oletusarvoa KYLLÄ kaikkiin kysymyksiin\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z NUMERO aseta pinon maksimikoko\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr " -[NUMERO] lisää hakemisto pinoon (NUMERO kertaa)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[NUMERO] ota hakemisto pinosta (NUMERO kertaa)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = näytä pino\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "" "wcd %s (%s) - Wherever Change Directory, siirry mihin tahansa hakemistoon\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Hakemiston vaihto Dos- ja Unix-käyttöjärjestelmille.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "DOS 16-bittinen versio (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "DOS 16-bittinen versio (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "DOS 32-bittinen versio (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "DOS 32-bittinen versio (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Win64-versio (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Win64-versio (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Win32-versio (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Win32-versio (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Win32-versio (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Win32-versio (MinGW).\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Tämä versio on tarkoitettu MSYS- ja WinZsh-käyttöön.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Tämä versio on tarkoitettu Windows PowerShell-käyttöön.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Tämä ohjelma toimii vain Windowsin cmd.exe komentotulkissa.\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "OS/2-versio" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Tämä versio on alkuperäinen MSYS.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Cygwin-versio.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Tämä versio on tarkoitettu DJGPP DOS bash-käyttöön.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Tämä version on OS/2 bash-käyttöön.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Käyttöliittymä: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "ncurses-tuella varustettu versio %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses-tuella varustettu versio %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "vakiotuloste\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Alkuperäisen kielen tuki sisällytetty.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Ei alkuperäisen kielen tukea sisällytettynä.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "Nykyinen paikallisasetus käyttää CP%u-koodausta.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "Nykyinen paikallisasetus käyttää %s-koodausta.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Unicode-tuella.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Euro-symboli: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Kiinalaiset merkit: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Ei Unicode-tukea.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Unicode-normalisointi käytössä.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Ilman Unicode-normalisointia.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "Lataa viimeisin versio ohjelmasta ja sen lähdekoodista osoitteesta:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Copyright © 1997-2014 Erwin Waterlander\n" "Copyright © 1994-2002 Ondrej Popp kohteessa C3PO\n" "Copyright © 1995-1996 DJ Delorie kohteessa _fixpath()\n" "Copyright © 1995-1996 Borja Etxebarria & Olivier Sirol kohteessa Ninux Czo " "Directory\n" "Copyright © 1994-1996 Jason Mathews kohteessa DOSDIR\n" "Copyright © 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel ja Igor Mandrichenko kohteessa recmatch()\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Felix Kasza kirjoitti ja sijoitti public domain-lisenssin alaiseksi\n" "lähdekoodin Windows LAN-tutkintaan.\n" "Työssä käytettiin Markus Kuhnin wcwidth()- ja wcswidth()-toteutuksia.\n" "Rugxulo oli query_con_codepage() (public domain) -koodin alkuperäinen\n" "tekijä\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Tämä ohjelma on vapaa; voit jakaa sitä edelleen ja/tai muokata\n" "sitä Free Software Foundationin julkaiseman GNU General Public License\n" "-lisenssin alaisena; joko versiona 2, tai (valintasi mukaan)\n" "minä tahansa myöhäisempänä versiona.\n" "\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Tätä ohjelmaa jaetaan toivossa, että se on hyödyllinen,\n" "mutta ILMAN MITÄÄN TAKUUTA; ilman pientäkään vihjausta takuusta\n" "KAUPALLISUUTEEN tai SOVELTUVUUDESTA JOHONKIN TARKOITUKSEEN. Lisätietoja\n" "GNU General Public License-lisenssistä.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Sinun pitäisi saada kopion GNU General Public License-lisenssistä\n" "tämän ohjelman mukana; jos näin ei ole, kirjoita osoittteeseen Free " "Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "luodaan hakemisto %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Ympäristömuuttujan %s arvo on liian pitkä.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Ympäristömuuttujan TERM poistaminen epäonnistui: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Ympäristömuuttujaa HOME tai WCDHOME is ole asetettu.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "HOME-ympäristömuuttujaa ei ole asetettu\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "WCDHOME-ympäristömuuttujaa ei ole asetettu\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "WCDSCAN-ympäristömuuttujaa ei ole asetettu\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" "Graafinen tila tuettu ainoastaan ohjelman curses-perustaisessa " "käyttöliitymässä.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s lisätty alias-tiedostoon %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Tiedoston %s tai %s lukeminen epäonnistui\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "WCDSCAN-hakemisto {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "asetetaan {%s} mustalle listalle\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "ohitetaan {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "suodatetaan {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Ei löytynyt %s-täsmäävää hakemistoa\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "" "Levyasema on ehkä tutkittava uudelleen tai hakemistopolku on mustalla " "listalla\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Ei voi vaihtaa hakemistoon %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu (”%s”) ilmoitti: ”%s”.\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "pääsy kielletty.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Etsitään jaettuja hakemistoja palvelimelta %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Löydetty %lu jaettua hakemistoa palvelimelta %s\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Nykyisen työhakemiston haku epäonnistui: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Hakemistoon %s siirtyminen epäonnistui: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Hakemiston %s luominen epäonnistui: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Hakemiston %s poistaminen epäonnistui: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Hakemiston %s luominen epäonnistui: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Nykyisen työhakemiston haku epäonnistui: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Hakemistoon %s siirtyminen epäonnistui: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Hakemiston %s poistaminen epäonnistui: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Virhe jäsennettäessä pinoa\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "sisäinen virhe kohteeessa maxLength(), list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "sisäinen virhe kohteessa maxLengthStack(), s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Täydellinen täsmäys %d:lle hakemistolle." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Jokeritäsmäys %d:lle hakemistolle." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Valitse toiminta ( keskeytys): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=ylös x=alas ?=opaste Sivu %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Opasteen näytönkorkeuden on oltava > 20 riviä." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w tai sivu ylös" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x tai z tai sivu alas" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", tai vieritä 1 vasemmalle" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". tai vieritä 1 oikealle" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< tai [ vieritä 10 vasemmalle" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> tai ] vieritä 10 oikealle" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "CTRL-a tai vieritä sivun alkuun" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "CTRL-e tai vieritä sivun loppuun" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "CTRL-c tai keskeytä" #: display.c:693 display.c:1186 msgid " abort" msgstr " keskeytä" #: display.c:694 msgid "Type w or x to quit help." msgstr "Poistu opasteesta kirjoittamalla w tai x." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Paina jotakin näppäintä." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "Virhe pääteikkunan avauksessa, käytössä vain vakiotuloste.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "näytön korkeus on oltava vähintään 3 riviä.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "virhe vierityspalkki-ikkunan luonnissa.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "virhe luotaessa syöteikkunaa.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: virhe: polku on liian pitkä" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = etsi eteenpäin, ? = etsi taaksepäin, : = opaste" #: graphics.c:1776 msgid "SEARCH: " msgstr "HAKU: " #: graphics.c:1779 msgid "Search: " msgstr "Haku: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "NAVIGOINTITILA (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h tai siirry vasemmalle" #: graphics.c:1797 msgid "j or go down" msgstr "j tai siirry alas" #: graphics.c:1798 msgid "k or go up" msgstr "k tai siirry ylös" #: graphics.c:1799 msgid "l or go right" msgstr "l tai siirry oikealle" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "* tai v tai siirry eteenpäin samannimiseen hakemistoon" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# tai p tai siirry taaksepäin samannimiseen hakemistoon" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ tai a siirry rivin alkuun" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ tai e siirry rivin loppuun" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 siirry juurihakemistoon" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g tai G siirry viimeiseen hakemistoon" #: graphics.c:1806 msgid "f go page forward" msgstr "f siirry sivu alas" #: graphics.c:1807 msgid "b go page backward" msgstr "b siirry sivu ylös" #: graphics.c:1808 msgid "u go half page up" msgstr "u siirry puolisivua ylös" #: graphics.c:1809 msgid "d go half page down" msgstr "d siirry puolisivua alas" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "NAVIGOINTITILA (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A vaihtoehtoinen navigointitapa päälle/pois" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t keskitetty tila päälle/pois" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "T kytke viivanpiirto ASCII kirjaimin päälle/pois" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m vaihda suppean ja tavallisen esitystavan välillä" #: graphics.c:1821 msgid " or q abort" msgstr " tai q keskeytä" #: graphics.c:1822 msgid "/ search forward" msgstr "/ haku eteenpäin" #: graphics.c:1823 msgid "? search backward" msgstr "? haku taaksepäin" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n toista viimeinen / tai ? etsintä" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " valitse hakemisto" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "HAKUTILA jokerimerkkien ja alihakemistojen tuella:" #: graphics.c:1833 msgid " go left" msgstr " siirry vasemmalle" #: graphics.c:1834 msgid " go down" msgstr " siirry alas" #: graphics.c:1835 msgid " go up" msgstr " siirry ylös" #: graphics.c:1836 msgid " go right" msgstr " siirry oikealle" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "CTRL-v siirry seuraavaan samannimiseen hakemistoon" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "CTRL-p siirry edelliseen samannimiseen hakemistoon" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "CTRL-a siirry rivin alkuun" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "CTRL-e siirry rivin loppuun" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "CTRL-g siirry viimeiseen hakemistoon" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "CTRL-f siirry sivu alas" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "CTRL-b siirry sivu ylös" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "CTRL-u siirry puolisivua ylös" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "CTRL-d siirry puolisivua alas" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " tai CTRL-x Keskeytä HAKUTILA" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "CTRL-n Toista viimeinen / tai ? etsintä" #: graphics.c:1855 msgid "ZOOMING:" msgstr "ZOOMAUS:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z tai i tai CTRL-i lähennä" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z tai o tai CTRL-o loitonna" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c näkymä: tiivistä nykyinen taso" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C näkymä: tiivistä alihakemiston taso" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w näkymä: tiivistä nykyinen ja kaikki alitasot" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y tai CTRL-y näkymä: avaa nykyinen ja alitasot" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r tai CTRL-r näkymä: avaa kaikki hakemistot" #: graphics.c:1863 msgid "- fold directory" msgstr "- näkymä: tiivistä hakemisto" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ tai = näkymä: avaa hakemisto" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l tai näkymä: avaa ja siirry oikealle" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "" "Opasteikkunan avaaminen ei onnistu. Ikkunan korkeuden on oltava > 21 riviä." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "malloc-virhe funktiossa wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "kohteessa ’%s’, muistia ei ole riittävästi varausta varten\n" #~ msgid "" #~ "Wcd: error in '%s', no space left for allocation\n" #~ "Wcd: Insufficient memory\n" #~ msgstr "" #~ "Wcd: virhe kohdassa ’%s’, muistin varaus ei onnistu\n" #~ "Wcd: Riitämätön määrä muistia\n" wcd-5.2.5/src/po/es.po0000664000175000017500000007772012345660661014720 0ustar waterlanwaterlan# Spanish translations for wcd package # Traducciones al español para el paquete wcd. # Copyright (C) 2008 THE wcd'S COPYRIGHT HOLDER # This file is distributed under the same license as the wcd package. # Julio A. Freyre-Gonzalez , 2009-2013. # msgid "" msgstr "" "Project-Id-Version: wcd 5.2.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2008-09-08 22:17+0200\n" "Last-Translator: Julio A. Freyre-Gonzalez \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: error: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Imposible leer el archivo %s: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Imposible leer el archivo %s: No es un archivo normal.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Imposible escribir al archivo %s: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "No se puede cerrar el archivo %s: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s añadido al archivo %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Imposible remover el archivo %s: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): imposible determinar la ruta en el directorio %s\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "probablemente la ruta es demasiado larga.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s no es un directorio.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" "Favor de esperar. Explorando el disco. Construyendo el archivo %s de árbol " "de rutas para %s\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Escribiendo al archivo \"%s\"\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Se denegó la escritura al archivo de árbol de rutas.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" "Use la variable de ambiente TEMP si este es un disco de sólo lectura.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Se removió el enlace simbólico %s\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "imposible remover el enlace simbólico %s: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s es un enlace simbólico a un archivo.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "" "¿Remover recursivamente %s? ¿Está seguro que desea continuar? y(sí)/n(no) :" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Se removió el directorio %s\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "línea demasiado larga en %s ( > %d). Es posible que el archivo de árbol esté " "corrupto, sino incremente DD_MAXPATH en el código fuente.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "archivo: %s, línea: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " longitud: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Uso: wcd [opciones] [directorio]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "directorio: Nombre del directorio al que desea cambiarse.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" " Se pueden emplear los comodines *, ? y [conjunto]\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "opciones:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a Añade la ruta actual al archivo de árbol\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa Añade la ruta actual y sus padres al archivo de " "árbol\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A RUTA Añade árbol desde RUTA\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b Prohíbe la ruta actual\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd Usa modo CD directo\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d UNIDAD Establece la UNIDAD para almacenar los archivos de " "la pila y el script go (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e Añade la ruta actual al archivo extra de árbol\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee Añade la ruta actual y sus padres al archivo extra " "de árbol\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E RUTA Añade árbol desde RUTA al archivo extra del árbol\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f ARCHIVO Usa archivo extra de árbol\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f ARCHIVO Añade archivo extra de árbol\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g Ambiente gráfico\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd Ambiente gráfico, impresión del árbol\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G RUTA Establece la RUTA del script go\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script No emplees el script go\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help Despliega esta ayuda\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr "" " -i, --ignore-case Ignora las diferencias entre mayúsculas y " "minúsculas (por defecto)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case Distingue entre mayúsculas y minúsculas\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr "" " -i, --ignore-case Ignora las diferencias entre mayúsculas y " "minúsculas\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr "" " +i, --no-ignore-case Distingue entre mayúsculas y minúsculas (por " "defecto)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics Ignora signos diacríticos\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" " +I, --no-ignore-diacritics contempla signos diacríticos (por defecto)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go Modo directo\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths Retén las rutas\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color Colores\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ALIAS Crea un ALIAS para el directorio actual\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license Imprime la Licencia del Programa\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" " -m DIRECTORIO Crea DIRECTORIO, y añádelo al archivo de árbol\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M DIRECTORIO Crea DIRECTORIO, y añádelo al archivo extra de " "árbol\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr " -n RUTA Emplea archivo de árbol relativo en RUTA\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr " +n RUTA Añade archivo de árbol relativo en RUTA\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers Emplea números\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o Emplea la salida estándar (stdout)\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout Imprime correspondencias\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet Operación silenciosa\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r DIRECTORIO Remueve DIRECTORIO\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree DIR. Remueve recursivamente desde DIRECTORIO\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s Explora disco desde $HOME\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S RUTA Explora disco desde RUTA\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S RUTA Explora disco desde RUTA, crea archivo de árbol " "relativo\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t No remuevas /tmp_mnt de las rutas\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree Dibuja el árbol con caracteres ASCII\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav Navegación de árbol alternativa\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree Vista centrada en árbol\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree Árbol compacto\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr " -Td, --cjk-width soporte para fuentes antiguas CJK\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u USUARIO Emplea archivo de árbol de USUARIO\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u USUARIO Añade archivo de árbol de USUARIO\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose Imprime mensajes de información\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version Imprime información sobre la versión\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only Emplea sólo concordancias inexactas\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr "" " -x RUTA Excluye RUTA durante la exploración del disco\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf ARCHIVO Excluye rutas contenidas en ARCHIVO\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes suprime las confirmaciones suponiendo 'Sí'\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z NÚMERO Establece el tamaño máximo para la pila\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr " -[NÚMERO] Mete directorio a la pila (NÚMERO veces)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[NÚMERO] Saca directorio de la pila (NÚMERO veces)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = Muestra la pila\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) - Wherever Change Directory\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Chdir para Dos y Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "Versión DOS de 16 bit (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "Versión DOS de 16 bit (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "Versión DOS de 32 bit (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "Versión DOS de 32 bit (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Versión para Win64 (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Versión para Win64 (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Versión para Win32 (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Versión para Win32 (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Versión para Win32 (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Versión para Win32 (MinGW).\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Esta versión es para la implementación MSYS y WinZsh.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Esta versión es para Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Esta versión es para el Símbolo del sistema de Windows (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "Versión para OS/2" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Esta versión es para MSYS nativos.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Versión para Cygwin.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Esta versión es para DJGPP DOS bash.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Esta versión es para OS/2 bash.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Interfase: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "versión ncurses %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses versión %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "stdout\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Soporte de lenguaje nativo incluido.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "No incluye soporte de lenguaje nativo.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "Localización actual emplea codificación CP%u.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "Localización actual emplea codificación %s.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Con soporte para Unicode.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Símbolo de Euro: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Caracteres chinos: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Sin soporte para Unicode.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Con normalización Unicode.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Sin normalización Unicode.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "Descarga los últimos ejecutables y archivos fuente de:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "Creando directorio %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "El valor de la variable de ambiente %s es demasiado largo.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Error al suprimir la variable de entorno TERM: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "La variable de ambiente HOME o WCDHOME no tiene valor.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "La variable de entorno HOME no está definida\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "La variable de entorno WCDHOME no está definida\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "La variable de entorno WCDSCAN no está definida\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "Modo gráfico sólo soportado en wcd con interfase basada en curses.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s se añadió al archivo de alias %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Imposible leer el archivo %s: %s\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "Directorio de WCDSCAN {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "prohibiendo {%s}\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "excluyendo {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "filtrando {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "No se encontró algún directorio que concordara con %s\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "Quizá necesite reexplorar el disco o la ruta.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "No puedo cambiar el directorio a %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu (\"%s\") reportado por \"%s\".\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "acceso denegado.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Buscando archivos compartidos en el servidor %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Se encontraron %lu directorios compartidos en el servidor %s\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Imposible obtener el directorio actual de trabajo: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Imposible cambiarse al directorio %s: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Imposible cambiarse al directorio %s: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Imposible remover el directorio %s: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Imposible cambiarse al directorio %s: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Imposible obtener el directorio actual de trabajo: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Imposible cambiarse al directorio %s: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Imposible remover el archivo %s: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Error al analizar la pila\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr " error interno en maxLength(), list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "error interno en maxLengthStack(), s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Perfecta concordancia para %d directorios." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Inexacta concordancia para %d directorios." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Favor de elegir uno ( para abortar): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=arriba x=abajo ?=ayuda Página %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "La altura de la pantalla debe ser > 20 para la ayuda." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w o avanza página" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x o retrocede página" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", o desliza 1 a la izquierda" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". o desliza 1 a la derecha" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< o [ desliza 10 a la izquierda" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> o ] desliza 10 a la derecha" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "CTRL-a o desliza al inicio" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "CTRL-e o desliza al fin" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "CTRL-c o aborta" #: display.c:693 display.c:1186 msgid " abort" msgstr " aborta" #: display.c:694 msgid "Type w or x to quit help." msgstr "" #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Presione alguna tecla." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "Error al abrir la terminal, usando interfase stdout.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "la altura de la pantalla debe ser mayor de 3 líneas.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "error al crear ventana deslizable.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "error al crear ventana de entrada.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: error: la ruta es demasiado larga" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = busca adelante, ? = busca atrás, : = ayuda" #: graphics.c:1776 msgid "SEARCH: " msgstr "BUSCA: " #: graphics.c:1779 msgid "Search: " msgstr "Busca: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "MODO NAVEGACIÓN (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h o ir a la izquierda" #: graphics.c:1797 msgid "j or go down" msgstr "j o ir hacia abajo" #: graphics.c:1798 msgid "k or go up" msgstr "k o ir hacia arriba" #: graphics.c:1799 msgid "l or go right" msgstr "l o ir a la derecha" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "* o v o ir hacia adelante al directorio con el mismo nombre" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# o p o ir hacia atrás al directorio con el mismo nombre" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ o a ir al inicio de la línea" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ o e ir al final de la línea" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 ir al directorio raiz" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g o G ir al último directorio" #: graphics.c:1806 msgid "f go page forward" msgstr "f avanzar página" #: graphics.c:1807 msgid "b go page backward" msgstr "b retroceder página" #: graphics.c:1808 msgid "u go half page up" msgstr "u avanzar media página" #: graphics.c:1809 msgid "d go half page down" msgstr "d retroceder media página" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "MODO NAVEGACIÓN (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A enciende/apaga navegación de árbol alternativa" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t enciende/apaga el modo centrado" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "T intercambia entre gráficas y caracteres ASCII" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m selecciona entre árbol compacto y expandido" #: graphics.c:1821 msgid " or q abort" msgstr " o q Aborta" #: graphics.c:1822 msgid "/ search forward" msgstr "/ Busca hacia adelante" #: graphics.c:1823 msgid "? search backward" msgstr "? Busca hacia atrás" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n Repetir la última búsqueda / o ?" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " Selecciona directorio" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "MODO BUSQUEDA con soporte de comodines y subdirectorios:" #: graphics.c:1833 msgid " go left" msgstr " ir a la izquierda" #: graphics.c:1834 msgid " go down" msgstr " ir hacia abajo" #: graphics.c:1835 msgid " go up" msgstr " ir hacia arriba" #: graphics.c:1836 msgid " go right" msgstr " ir a la derecha" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "CTRL-v ir hacia delante al directorio con el mismo nombre" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "CTRL-p ir hacia atrás al directorio con el mismo nombre" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "CTRL-a ir al inicio de la línea" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "CTRL-e ir al final de la línea" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "CTRL-g ir al último directorio" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "CTRL-f avanzar página" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "CTRL-b retroceder página" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "CTRL-u avanzar media página" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "CTRL-d retroceder media página" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " o CTRL-x Abortar MODO BUSQUEDA" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "CTRL-n Repetir la última búsqueda / o ?" #: graphics.c:1855 msgid "ZOOMING:" msgstr "ZOOMING:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z o i o CTRL-i acercamiento" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z o o o CTRL-o alejamiento" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c condensar: condensar nivel actual" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C condensar: condensar nivel del subdirectorio" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w condensar: condensar nivel actual y subdirectorios" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y o CTRL-y expandir: expandir nivel actual y subdirectorios" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r o CTRL-r expandir: expandir todos los directorios" #: graphics.c:1863 msgid "- fold directory" msgstr "- abrir directorio" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ o = cerrar directorio" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l o cerrar e ir a la derecha" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "La altura de la pantalla debe ser > 21 para la ayuda." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "error de malloc en wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "" #~ msgid "" #~ "Wcd: error in '%s', no space left for allocation\n" #~ "Wcd: Insufficient memory\n" #~ msgstr "" #~ "Wcd: error en '%s', no hay espacio para asignación\n" #~ "Wcd: Memoria insuficiente\n" wcd-5.2.5/src/po/eo.po0000664000175000017500000010037712345660661014707 0ustar waterlanwaterlan# Esperanto translations for wcd. # Copyright (C) 2014 Erwin Waterlander (msgids) # This file is distributed under the same license as the wcd package. # # Benno Schulenberg , 2014. msgid "" msgstr "" "Project-Id-Version: wcd-5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-02-12 15:01+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: eraro: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Ne eblas legi dosieron %s: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Ne eblas legi dosieron %s: ne estas normala dosiero.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Ne eblas skribi dosieron %s: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Ne eblas fermi dosieron %s: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "Aldoniĝis %s al dosiero %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Ne eblas forigi dosieron %s: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): malsukcesis eltrovi padon en dosierujo %s\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "probable la pado tro longas.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s ne estas dosierujo.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" "Bonvolu atendi, skaniĝas disko... Konstruiĝas arbodosiero %s el %s...\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Skribiĝas dosiero '%s'\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Skribi al arbodosiero malpermesatas.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "Argordu la ĉirkaŭaĵan variablon TEMP se ĉi tiu estas nurlega disko.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Forigiĝis simbola ligo %s\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Ne eblas forigi simbolan ligon %s: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s estas simbola ligo al dosiero.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Ĉu rikure forigi %s? Ĉu vi certas? y(jes)/n(ne):" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Forigiĝis dosierujo %s\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "Linio en %s tro longas (> %d). Eble la arbodosiero difektiĝis,\n" "aŭ alie evitu ĉi tiun per pligrandigi DD_MAXPATH en la programo.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "dosiero: %s, linio: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " longo: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Uzmaniero: wcd [OPCIO...] [DOSIERUJO]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "DOSIERUJO estas la nomo de la dosierujo al kiu ŝanĝi.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" "Ĵokeraj signoj * kaj ? subtenatas, kaj ankaŭ [ARO].\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "Opcioj:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a aldoni nunan padon al arbodosiero\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa aldoni nunan kaj suprajn padojn al arbodosiero\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A PADO aldoni arbon el ĉi tiu pado\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b escepti nunan padon\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd rekta CD-moduso\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d DISKO uzenda disko por stakaj kaj 'go'-dosieroj (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr " -e aldoni nunan padon al aldona arbodosiero\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee aldoni nunan kaj suprajn padojn al aldona " "arbodosiero\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E PADO aldoni arbon de ĉi tiu pado al aldona arbodosiero\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f DOSIERO uzenda arbodosiero\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f DOSIERO aldona arbodosiero\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g grafika moduso\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd grafika moduso, deponi arbon\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G PADO uzenda pado por trovi Go-skripton\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script ne uzi Go-skripton\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help montri ĉi tiun helptekston\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr " -i, --ignore-case ignori usklecon (defaŭlto)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case atenti usklecon\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case ignori usklecon\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr " +i, --no-ignore-case atenti usklecon (defaŭlto)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics ignori diakritajn signojn\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr " +I, --no-ignore-diacritics atenti diakritajn signojn (defaŭlto)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go «simple iru»-moduso\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths reteni padojn\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color uzi kolorojn\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ALINOMO uzenda alinomo por nuna dosierujo\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license montri la permesilon de la programo\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" " -m UJO krei ĉi tiun dosierujon kaj aldoni ĝin al " "arbodosiero\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M UJO krei dosierujon kaj aldoni ĝin al aldona " "arbodosiero\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr " -n PADO uzi relativan arbodosieron en ĉi tiu pado\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr "" " +n PADO aldoni relativan arbodosieron en ĉi tiu pado\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers uzi numerojn\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o uzi ĉefeligujon\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout deponi kongruojn\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet silentema funkciado\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r UJO forigi ĉi tiun dosierujon\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree UJO rikure forigi ĉi tiun dosierujon\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s skani diskon ekde $HOME\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S PADO skani diskon ekde ĉi tiu pado\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S PADO skani diskon ekde pado, krei relativan " "arbodosieron\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t ne forpreni '/tmp_mnt' de la padojn\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree montri arbon per ASCII-signoj\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav alternativa navigado de la arbo\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree centrigita arbomontro\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree densa arbomontro\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr " -Td, --cjk-width subteni antikvajn CJK-tiparojn\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u USANTO uzi arbodosieron de ĉi tiu uzanto\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u USANTO aldone uzi arbodosieron de ĉi tiu uzanto\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose parolema funkciado\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version montri programversion\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only nur ĵokeraj kongruoj\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr " -x PADO ekskludenda pado dum skanado de disko\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr "" " -xf DOSIERO ekskludi la padojn listigitaj en ĉi tiu dosiero\n" # FIXME: s/query/question/ #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes alpreni 'jes' je ĉiuj demandoj\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z NOMBRO agordi maksimuman grandon de stako\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr "" " -[NOMBRO] surstakigi nunan dosierujon (NOMBRO fojojn)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[NOMBRO] elstakigi dosierujon (NOMBRO fojojn)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = montri stakon\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) -- «ien ajn ŝanĝi dosierujon»\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Lerta 'chdir' por DOS kaj Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "DOS 16-bita versio (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "DOS 16-bita versio (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "DOS 32-bita versio (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "DOS 32-bita versio (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Windows 64-bita versio (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Windows 64-bita versio (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Windows 32-bita versio (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Windows 32-bita versio (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Windows 32-bita versio (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Windows 32-bita versio (MinGW)\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Ĉi tiu versio estas por MSYS kaj WinZsh.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Ĉi tiu versio estas por Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Ĉi tiu versio estas por Windows Command Prompt (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "OS/2-versio" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Ĉi tiu versio estas por MSYS.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Cygwin-versio.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Ĉi tiu versio estas por DJGPP DOS bash.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Ĉi tiu versio estas por OS/2 bash.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Interfaco: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "ncurses, versio %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses, versio %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "ĉefeligujo\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Kun subteno por lokaĵoj.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Sen subteno por lokaĵoj.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "La nuna lokaĵo uzas kodon CP%u.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "La nuna lokaĵo uzas kodon %s.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Kun subteno por Unikodo.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Eŭro-simbolo: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Ĉinaj signoj: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Sen subteno por Unikodo.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Kun Unikoda normigo.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Sen Unikoda normigo.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "Elŝutu la lastan version el:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp [je C3PO]\n" "Copyright (C) 1995-1996 DJ Delorie [je_fixpath()]\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol [je Ninux Czo " "Directory]\n" "Copyright (C) 1994-1996 Jason Mathews [je DOSDIR]\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel kaj Igor Mandrichenko [je recmatch()]\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Programparto por skani Windows LAN origine skribiĝis kaj ĉiesaĵiĝis per " "Felix Kasza.\n" "Uziĝas la liberaj realigoj de 'wcwidth()' kaj 'wcswidth()' de Markus Kuhn.\n" "La origina aŭtoro de la ĉiesaĵa 'query_con_codepage()' estas Rugxulo.\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Tiu ĉi estas libera programo; vi povas ĝin redistribui kaj/aŭ modifi laŭ\n" "la kondiĉoj de la GNU-a Ĝenerala Publika Liberpermeso kiel ĝi publikiĝis\n" "de la 'Free Software Foundation'; aŭ laŭ versio 2 de tiu permesilo, aŭ\n" "(je via elekto) laŭ iu ajn posta versio.\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Tiu ĉi programo distribuiĝas esperante ke ĝi estu utila,\n" "sed SEN IU AJN GARANTIO; sen eĉ implicita garantio pri\n" "VENDEBLECO aŭ TAŬGECO POR IU SPECIFA APLIKO. Vidu la\n" "GNU-an Ĝeneralan Publikan Liberpermeson por pli da detaloj.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Vi devus esti ricevinte kopion de la GNU-a Ĝenerala Publika Liberpermeso\n" "kune kun tiu ĉi programo; se ne, vidu .\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "kreiĝas dosierujo %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Valoro de ĉirkaŭaĵa variablo %s tro longas.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Malsukcesis agordi ĉirkaŭaĵan variablon TERM: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Cirkaŭaĵaj variabloj HOME kaj WCDHOME ne agordiĝis.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "HOME ne havas valoron\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "WCDHOME ne havas valoron\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "WCDSCAN ne havas valoron\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "Grafika moduso nur subtenatas en interfaco kiu baziĝas sur 'curses'.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "Aldoniĝis alinomo %s al dosiero %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Ne eblas legi dosieron %s aŭ %s\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "WCDSCAN-dosierujo {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "esceptiĝas {%s}\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "ekskludiĝas {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "filtriĝas {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Ne troviĝas dosierujo kiu kongruas kun %s\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "Eble necesas reskani la diskon, aŭ la pado esceptiĝis.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Ne eblas ŝanĝi al %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu (\"%s\") raportiĝis por \"%s\".\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "atingo malpermesatas.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Serĉado de komunaj dosierujoj en servilo %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Troviĝis %lu komunajn dosierujojn en servilo %s\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Ne eblas eltrovi nunan labordosierujon: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Ne eblas ŝanĝi al dosierujo %s" #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Ne eblas krei dosierujon %s: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Ne eblas forigi dosierujon %s: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Ne eblas krei dosierujon %s: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Ne eblas eltrovi nunan labordosierujon: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Ne eblas ŝanĝi al dosierujo %s: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Ne eblas forigi dosierujon %s: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Eraro dum analizo de stako\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "**interna programmiso** en maxLength(): list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "**interna programmiso** en maxLengthStack(): s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Perfekta kongruo por %d dosierujoj." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Ĵokera kongruo por %d dosierujoj." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Bonvolu elekti unu ( por ĉesigi): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=supren x=suben ?=helpo Paĝo %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Ekranalto devas esti pli ol 20 por helpo." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w aŭ paĝon supren" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x aŭ z aŭ paĝon malsupren" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", aŭ rulumi 1 pozicion maldekstren" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". or rulumi 1 pozicion dekstren" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< aŭ [ rulumi 10 poziciojn maldekstren" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> aŭ ] rulumi 10 poziciojn dekstren" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "Ctrl-a aŭ rulumi al komenco" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "Ctrl-e aŭ rulumi al fino" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "Ctrl-c aŭ ĉesigi" #: display.c:693 display.c:1186 msgid " abort" msgstr " ĉesigi" #: display.c:694 msgid "Type w or x to quit help." msgstr "Tajpu w aŭ x por eliri de helpo." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Premu iu ajn klavon." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" "Eraro dum malfermo de terminalo; anstataŭe uziĝas ĉefeliguja interfaco.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "ekranalto devas esti pli ol 3 linioj.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "eraro dum kreado de ruluma fenestro.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "eraro dum kreado de eniga fenestro.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: eraro: pado tro longas" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = serĉi antaŭen, ? = serĉi malantaŭen, : = helpo" #: graphics.c:1776 msgid "SEARCH: " msgstr "SERĈI : " #: graphics.c:1779 msgid "Search: " msgstr "Serĉi: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "NAVIGA MODUSO (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h aŭ maldekstren" #: graphics.c:1797 msgid "j or go down" msgstr "j aŭ malsupren" #: graphics.c:1798 msgid "k or go up" msgstr "k aŭ supren" #: graphics.c:1799 msgid "l or go right" msgstr "l aŭ dekstren" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "* aŭ v aŭ antaŭen al dosierujo kun sama nomo" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# aŭ p aŭ malantaŭen al dosierujo kun sama nomo" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ aŭ a al komenco de linio" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ aŭ e al fino de linio" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 al ĉefa dosierujo" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g aŭ G al lasta dosierujo" #: graphics.c:1806 msgid "f go page forward" msgstr "f paĝon antaŭen" #: graphics.c:1807 msgid "b go page backward" msgstr "b paĝon malantaŭen" #: graphics.c:1808 msgid "u go half page up" msgstr "u duonpaĝon supren" #: graphics.c:1809 msgid "d go half page down" msgstr "d duonpaĝon malsupren" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "NAVIGA MODUSO (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A ŝalti alternativan arbonavigadon" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t ŝalti centrigitan moduson" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "T ŝalti inter linioj kaj ASCII-signoj" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m ŝalti inter densa kaj larĝa arbo" #: graphics.c:1821 msgid " or q abort" msgstr " aŭ q ĉesigi" #: graphics.c:1822 msgid "/ search forward" msgstr "/ serĉi antaŭen" #: graphics.c:1823 msgid "? search backward" msgstr "? serĉi malantaŭen" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n ripeti lastan serĉon per / aŭ ?" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " elekti la dosierujon" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "SERĈ-MODUSO kun subteno por ĵokeroj kaj subdosieroj:" #: graphics.c:1833 msgid " go left" msgstr " maldekstren" #: graphics.c:1834 msgid " go down" msgstr " malsupren" #: graphics.c:1835 msgid " go up" msgstr " supren" #: graphics.c:1836 msgid " go right" msgstr " dekstren" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "Ctrl-v antaŭen al dosierujo kun sama nomo" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "Ctrl-p malantaŭen al dosierujo kun sama nomo" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "Ctrl-a al komenco de linio" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "Ctrl-e al fino de linio" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "Ctrl-g al lasta dosierujo" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "Ctrl-f paĝon antaŭen" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "Ctrl-b paĝon malantaŭen" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "Ctrl-u duonpaĝon supren" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "Ctrl-d duonpaĝon malsupren" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " aŭ Ctrl-x ĉesigi SERĈ-MODUSON" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "Ctrl-n ripeti lastan serĉon per / aŭ ?" #: graphics.c:1855 msgid "ZOOMING:" msgstr "ZOMI:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z aŭ i aŭ Ctrl-i zomi" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z aŭ o aŭ Ctrl-o malzomi" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c faldi la nunan nivelon" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C faldi la suban nivelon" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w faldi la nunan kaj subajn nivelojn" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y aŭ Ctrl-y malfaldi la nunan kaj subajn nivelojn" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r aŭ Ctrl-r malfaldi ĉiujn dosierujojn" #: graphics.c:1863 msgid "- fold directory" msgstr "- faldi dosierujon" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ aŭ = malfaldi dosierujon" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l aŭ malfaldi kaj iri dekstren" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "Ekranalto devas esti pli ol 21 por helpo." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "mankas sufiĉa memoro en wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "en '%s', mankas sufiĉas memoro\n" wcd-5.2.5/src/po/de.po0000664000175000017500000010374012345660661014671 0ustar waterlanwaterlan# Deutsche Meldungen für WCD. # Copyright 2010-2013 Erwin Waterlander (msgids). # This file is distributed under the same license as the wcd package. # # Philipp Thomas , 2010, 2011, 2012, 2014. # Lars Wendler 2013. msgid "" msgstr "" "Project-Id-Version: wcd 5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-02-13 11:56+0100\n" "Last-Translator: Philipp Thomas \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "wcd: Fehler: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Die Datei %s konnte nicht gelesen werden: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Die Datei %s konnte nicht gelesen werden: Keine normale Datei.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Die Datei %s konnte nicht geschrieben werden: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Die Datei %s konnte nicht geschlossen werden: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s wurde zu Datei %s hinzugefügt\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Die Datei %s konnte nicht entfernt werden: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "" "finddirs(): Der in Verzeichnis %s enthaltene Pfad kann nicht bestimmt " "werden\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "wahrscheinlich ist der Pfad zu lang.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s ist kein Verzeichnis.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" "Bitte warten Sie. Das Laufwerk wird durchsucht und aus %2$s die Datei mit " "den Dateibaumdaten %1$s erstellt .\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Schreibe Datei \"%s\"\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Der Schreibzugriff auf die Dateibaum-Datei wurde verweigert.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" "Setzen Sie bitte die Umgebungsvariable TEMP wenn dies ein nur lesbares " "Laufwerk ist.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Die SYBOLISCHE Verknüpfung %s wurde entfernt.\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Das Löschen der symbolischen Verknüpfung %s wurde verweigert: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s ist eine symbolische Verknüpfung mit einer Datei.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Rekursives Löschen von %s? Sind Sie sicher? y(ja)/n(nein)" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Verzeichnis %s wurde entfernt\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "die Zeile ist zu lang in %s ( > %d). Die Baumdatei könnte beschädigt sein, " "ansonsten erhöhen sie DD_MAXPATH im Quellcode.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "Datei: %s, Zeile: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " Länge: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Aufruf: wcd [Optionen] [Verzeichnis]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "" "Verzeichnis: Name des Verzeichnisses, in welches gewechselt werden soll.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" " Die Platzhalter *, ? und [SET] werden Unterstützt.\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "Optionen:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a Aktuellen Pfad zur Baumdatei hinzu fügen\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa Aktuellen und alle darüberliegenden Pfade zur\n" " Baumdatei hinzufügen\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A PFAD Dateibaum von PFAD hinzufügen\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b Aktuellen Pfad bannen\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd Direkter CD Modus\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d LAUFWERK Setzt LAUFWERK fúr den Stapel & wechselt zu den\n" " Dateien (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e aktuellen Pfad zu zusätzlicher Baumdatei " "hinzufügen\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee Aktuellen und alle darüber liegenden Pfade zu\n" " zusätzlicher Baumdatei hinzufügen\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E PFAD Dateibaum von PFAD zu zusätzlicher Baumdatei " "hinzufügen\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f DATEI Extra Baumdatei verwenden\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f DATEI Extra Baumdatei hinzufügen\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g Grafik\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd Grafik, Dateibaum ausgeben\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G PFAD setzt PFAD zu Go-Skript\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script Kein Go-skript\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help Diese Hilfe anzeigen\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr "" " -i, --ignore-case Gross-/Kleinschreibung ignorieren " "(Standardeinstellung)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case Gross-/Kleinschreibung beachten\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case Gross-/Kleinschreibung ignorieren\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr "" " +i, --no-ignore-case Gross-/Kleinschreibung beachten " "(Standardeinstellung)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics diakritische Zeichen Ignorieren\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" " +I, --no-ignore-diacritics diakritische Zeichen nicht ignorieren " "(Standardeinstellung)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go Geh-einfach Modus\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths Pfade behalten\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color Farben\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ALIAS ALIAS für aktuelles Verzeichnis anlegen\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license Software-Lizenz ausgeben\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" " -m VERZ. Erzeuge VERZEICHNIS und füge zu Baumdatei hinzu\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M VERZ. Erzeuge VERZEICHNIS und füge zu extra Baumdatei " "hinzu\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr " -n PFAD Verwendet relative Baumdatei in PFAD\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr " +n PFAD Fügt relative Baumdatei in PFAD hinzu\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers Es werden Zahlen verwendet\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o StdOut wird verwendet\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout Übereinstimmungen werden ausgegeben\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet Weniger Ausgaben\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r VERZ. VERZEICHNIS wird entfernt\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree VERZ. VERZEICHNIS wird rekursiv entfernt\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s Platte ab $HOME durchsuchen\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S PFAD Platte ab PFAD durchsuchen\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S PFAD Platte ab PFAD durchsuchen, relative Baumdatei " "erzeugen\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t /tmp_mnt nicht vom Pfadnamen entfernen\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree Den Baum mit ASCII-Zeichen zeichnen\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav Alternative Baumnavigation\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree Zentrierte Baumansicht\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree Baum kompakter machen\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr " -Td, --cjk-width unterstütze veraltete CJK Schriften\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u BENUTZER Verwendet Baumdatei von BENUTZER\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u BENUTZER Fügt die Baumdatei von BENUTZER hinzu\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose WCD wird gesprächig\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version Programmversion ausgeben\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only Nur Übereinstimmung von Platzhaltern\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr "" " -x PFAD PFAD beim Durchsuchen der Platte ignorieren\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf DATEI Die Pfade aus DATEI ignorieren\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes Setze Yes bei allen Anfragen voraus\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z ZAHL Maximale Größe des Stapels festlegen\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr " -[ZAHL] Verzeichnis auf Stapel legen (ZAHL mal)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[ZAHL] Verzeinis vom Stapel nehemn (ZAHL mal)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = Zeige den verzeichnisstapel an\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) - Wherever Change Directory\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Chdir für Dos und Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "DOS 16 bit Version (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "DOS 16 bit version (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "32 Bit DOS Version (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "32 Bit DOS Version (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Win64 Version (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Win64 Version (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Win32 Version (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Win32 Version (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Win32 Version (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Win32 Version (MinGW).\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Dies ist die Version für MSYS und WinZSH.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Dies ist die Version für die Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Diese Version ist für die Windows Eingabeaufforderung (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "OS/2 Version" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Diese Version ist für MSYS.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Cygwin Version.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Dies ist die Version für die DJGPP DOS Bash.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Diese Version ist für die OS/2 Bash.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Schnittstelle: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "ncurses Version %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses version %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "stdout\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Landessprachen werden unterstützt.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Landessprachen werden nicht unterstützt.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "Aktuelle locale verwendet CP%u Encoding.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "Aktuelle locale verwendet %s Encoding.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Mit Unterstützung für Unicode.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Euro-Symbol: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Chinesische Schriftzeichen: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Ohne Unterstützung für Unicode.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Mit Unicode-Normalisierung.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Ohne Unicode-Normalisierung.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "" "Die neuesten Programme und Quellen können heruntergeladen werden von:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Chdir für Dos und Unix.\n" "Copyright © 1997-2014 Erwin Waterlander\n" "Copyright © 1994-2002 Ondrej Popp auf C3PO\n" "Copyright © 1995-1996 DJ Delorie auf _fixpath()\n" "Copyright © 1995-1996 Borja Etxebarria & Olivier Sirol auf Ninux Czo " "Verzeichnis\n" "Copyright © 1994-1996 Jason Mathews auf DOSDIR\n" "Copyright © 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel und Igor Mandrichenko auf recmatch()\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Quellcode zum Durchsuchen von Windows LAN wurde ursprünglich von\n" "Felix Kasza geschrieben und unter Public Domain gestellt.\n" "Markus Kuhn's freie wcwidth() und wcswidth() Implementierung wurden in\n" " verwendet.\n" "Rugxulo ist der ursprüngliche Author von query_con_codepage() (public " "domain).\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Dieses Programm ist freie Software; sie kann unter den Bedingungen\n" "der GNU Public License, wie sie von der Free Software Foundation\n" "veröffentlicht wurde, entweder Version 2 oder auf Wunsch jeder späteren\n" "Version, weiterverteilt oder modifiziert werden.\n" "\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Dieses Programm wird weitergegeben in dwer Hoffnung dass es nützlich ist,\n" "aber OHNE JEDE GARANTIE, mit nicht mal einer implizierten Zusicherung\n" "allgemeiner Gebrauchstauglichkeit oder NUTZBARKEIT FÜR EINEN BSTIMMTEN\n" "ZWECK. Lesen Sie die GNU General Public License für weitere Details.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Sie sollten eine Kopie der GNU General Public License zusammen mit diesem\n" "Programm erhalten haben. Wenn nicht, schreiben Sie bitte an die Free\n" "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" "MA 02110-1301 USA.\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "Verzeichnis %s wird erzeugt\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Der Inhalt der Umgebungsvariable %s ist zu lang.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Konnte Umgebungsvariable TERM nicht entfernen: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Die Umgebungsvariablen HOME oder WCDHOOME sind nicht gesetzt.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "HOME ist nicht definiert\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "WCDHOME ist nicht definiert\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "WCDSCAN ist nicht definiert\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" "Grafikmodus wird nur von wcd mit Curses-basierter Oberfläche\n" " unterstützt.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s wurde zur Aliasdatei %s hinzugefügt\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Die Datei %s konnte nicht gelesen werden: %s\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "WCDSCAN Verzeichnis {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "{%s} wird verbannt\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "{%s} wird ausgeschlossen\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "{%s} wird gefiltert\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Es wurde kein auf %s passendes Verzeichnis gefunden\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "" "Vieleicht müssen Sie die Platte neu durchsuchen oder der Pfad ist verbannt.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Zu %s kann nicht gewechselt werden\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu »%s« wurde von »%s« zurück geliefert.\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "der Zugriff wurde verweigert.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Es wird nach freigegebenen Verzeichnissen auf Server %s gesucht.\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Es wurden %lu freigegebene Verzeichnisse auf Server %s gefunden.\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Das aktuelle Arbeitsverzeichnis konnte nicht abgefragt werden: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Das Wechseln zu Verzeichnis %s war nicht möglich: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Das Verzeicnis %s konnte nicht angelegt werden: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Das Löschen von Verzeichnis %s wurde verweigert: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Das Verzeicnis %s konnte nicht angelegt werden: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Das aktuelle Arbeitsverzeichnis konnte nicht abgefragt werden: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Das Wechseln zu Verzeichnis %s war nicht möglich: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Die Datei %s konnte nicht entfernt werden: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Fehler beim durchsuchen des Verzeichnisstapels\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "interner Fehler in maxLength(), list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "interner Fehler in maxLengthStack(), s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Perfekt passt auf %d Verzeichnisse." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Platzhalter passt auf %d Verzeichnisse." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Bitte wählen Sie eins aus ( bricht ab): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=hoch x=runter ?=Hilfe Seite %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Bildschirmhöhe muss für Hilfe > 20 sein." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w oder Seite hoch" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x,z oder Seite runter" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", oder 1 nach links rollen" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". oder 1 nach rechts rollen" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< oder [ 10 nach links rollen" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> oder ] 10 nach rechtsw rollen" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "Strg-a oder an den Anfang springen" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "Strg-e oder zum Ende springen" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "Strg-c oder Abbruch" #: display.c:693 display.c:1186 msgid " abort" msgstr " Abbruch" #: display.c:694 msgid "Type w or x to quit help." msgstr "Geben Sie „w“ oder „x“ ein, um die Hile zu beenden." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Eine beliebige Taste drücken." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" "Fehler beim Öffnen des Terminals, es wird die\n" "Stdout-Schnittstelle verwendet.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "die Bildschirmhöhe muss mehr als 3 Zeilen sein.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "Fehler beim Erzeugen des rollbaren Fensters.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "Fehler beim Erzeugen des Eingabefensters.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "wcd: Fehler: Pfad zu lang." #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = vorwärts suchen, ? = rückwärts suchen, : = Hilfe" #: graphics.c:1776 msgid "SEARCH: " msgstr "SUCHE: " #: graphics.c:1779 msgid "Search: " msgstr "Suche: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "NAVIGATIONSMODUS (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h oder nach links gehen" #: graphics.c:1797 msgid "j or go down" msgstr "j oder \" nach unten gehen" #: graphics.c:1798 msgid "k or go up" msgstr "k oder nach oben gehen" #: graphics.c:1799 msgid "l or go right" msgstr "l oder nach rechts gehen" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "*q oder v oder vorwärts zu Verzeichnis mit gleichem Namen" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# oder p oder rückwärts zu Verzeichnis mit gleichem Namen" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ oder a gehe an den Anfang der Zeile" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ oder e gehe ans Ende der Zeile" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 zum Wurzelverzeichnis gehen" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g oder G zum letzten Verzeichnis gehen" #: graphics.c:1806 msgid "f go page forward" msgstr "f eine Seite vorwärts" #: graphics.c:1807 msgid "b go page backward" msgstr "b eine Seite zurück" #: graphics.c:1808 msgid "u go half page up" msgstr "u eine halbe Seite nach oben" #: graphics.c:1809 msgid "d go half page down" msgstr "d eine halbe Seite nach unten" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "NAVIGATIONSMODUS (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A Alternative Baumnavigation ein- bzw. ausschalten" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t Zentrieren ein- bzw. ausschalten" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "" "T Wechseln zwischen Sonderzeichen und ASCII für das Zeichnen" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m zwischen kompaktem und breitem Baum umschalten" #: graphics.c:1821 msgid " or q abort" msgstr " oder q Abbruch" #: graphics.c:1822 msgid "/ search forward" msgstr "/ vorwärts suchen" #: graphics.c:1823 msgid "? search backward" msgstr "? rúckwärts suchen" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n letzte / oder ? Suche wiederholen" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " Verzeichnis auswählen" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "SUCHMODUS mit Unterstützung für Platzhalte- und Unterverzeichnisse." #: graphics.c:1833 msgid " go left" msgstr " nach links gehen" #: graphics.c:1834 msgid " go down" msgstr " nach Unten" #: graphics.c:1835 msgid " go up" msgstr " nach oben gehen" #: graphics.c:1836 msgid " go right" msgstr " nach rechts gehen" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "Strg-v vorwärts gehen zu Verzeichnis mit gleichem Namen" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "Strg-p rückwärts gehen zu Verzeichnis mit gleichem Namen" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "Strg-a An den Anfang der Zeile springen" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "Strg-e an das Ende der Zeile springen" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "Strg-g zum letzten Verzeichnis gehen" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "Strg-f eine Seite vorwärts" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "Strg-b eine Seite zurück" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "Strg-u eine halbe Seite nach oben" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "Strg-d eine halbe Seite nach unten" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " oder Strg-x SUCHMODUS abbrechen" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "Strg-n Letzte / oder ? Suche wiederholen" #: graphics.c:1855 msgid "ZOOMING:" msgstr "VERGRÖSSERN:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z oder i oder Strg-i hineinzoomen" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z oder o oder Strg-o rauszoomen" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c verkürzen:: aktuelle Ebene falten" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C verkürzen: Unterverzeichnisebene falten" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w verkürzen: aktuelle Ebene mit Unterebenen falten" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "" "y oder Strg-y dekomprimieren: aktuelle Ebene samt Unterebenen " "auffalten" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r oder Strg-r dekomprimieren: alle Ebenen ausfalten" #: graphics.c:1863 msgid "- fold directory" msgstr "- Verzeichnis einfalten" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ oder = Verzeinis auffalten" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l oder auffalten und nach rechts gehen" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "Bildschirmhöhe muss für die Hilfe > 21 sein." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "Malloc-Fehler in wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "innerhalb von „%s“ konnte kein weiterer Speicher reserviert werden\n" wcd-5.2.5/src/po/uk.po0000664000175000017500000012070012345660661014713 0ustar waterlanwaterlan# Ukrainian translation of wcd # Copyright 2014 Erwin Waterlander (msgids). # This file is distributed under the same license as the wcd package. # # Yuri Chornoivan , 2014. msgid "" msgstr "" "Project-Id-Version: wcd-5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-02-12 19:19+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.5\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: помилка: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Не вдалося прочитати файл %s: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Не вдалося прочитати файл %s: це не звичайний файл.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Не вдалося виконати запис до файла %s: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Не вдалося закрити файл %s: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s додано до файла %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Не вдалося вилучити файл %s: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): не вдалося визначити шлях у каталозі %s\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "ймовірно, шлях є надто довгим.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s не є каталогом.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "Будь ласка, зачекайте. Скануємо диск. Збираємо файл treedata %s з %s\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Записуємо файл «%s»\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Доступ до запису файла ієрархії заборонено.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" "Встановити змінну середовища TEMP, якщо цей диск є придатним лише для " "читання.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Вилучено символічне посилання %s\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Не вдалося вилучити символічне посилання %s: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s є символічним посиланням на файл.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Рекурсивно вилучити %s? Ви впевнені? y (так)/n (ні):" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Вилучено каталог %s\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "надто довгий рядок у %s ( > %d). Можливо, файл ієрархії пошкоджено. Якщо це " "не так, виправити ситуацію можна збільшивши значення DD_MAXPATH у " "початковому коді.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "файл: %s, рядок: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " довжина: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Користування: wcd [параметри] [каталого]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "каталог: назва каталогу, до якого слід внести зміни.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" " Передбачено підтримку символів-замінників: *, ? та [НАБІР].\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "параметри:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a додати поточний файл до файла ієрархії\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa додати поточний і усі батьківські шляхи до файла " "ієрархії\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A ШЛЯХ додати ієрархію зі шляху ШЛЯХ\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b заблокувати поточний шлях\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd безпосередній режим CD\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d ДИСК встановити ДИСК для файлів стосу і переходу (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e додати поточний шлях до додаткового файла " "ієрархії\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee додати поточний і усі батьківські шляхи до " "додаткового файла ієрархії\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E ШЛЯХ додати ієрархію зі шляху ШЛЯХ до додаткового файла " "ієрархії\n" #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f ФАЙЛ використовувати додатковий файл ієрархії\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f ФАЙЛ додати додатковий файл ієрархії\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g графіка\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd графіка, створити дамп ієрархії\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G ШЛЯХ встановити шлях для скрипту переходу\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script без скрипту переходу\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help показати цю довідкову інформацію\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr "" " -i, --ignore-case не брати до уваги регістр символів (типово)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case брати до уваги регістр символів\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case не брати до уваги регістр символів\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr " +i, --no-ignore-case брати до уваги регістр символів (типово)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr "" " -I, --ignore-diacritics не брати до уваги діакритичні позначки\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" " +I, --no-ignore-diacritics брати до уваги діакритичні позначки (типово)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go режим простого переходу\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths зберігати шляхи\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color використовувати розфарбовування\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ПСЕВДОНІМ створити псевдонім для поточного каталогу\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr "" " -L, --license показати ліцензійну угоду щодо програмного " "забезпечення\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" " -m КАТАЛОГ створити каталог, додати його до файла ієрархії\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M КАТАЛОГ створити каталог, додати його до додаткового файла " "ієрархії\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr "" " -n ШЛЯХ використовувати відносний файл ієрархії у каталозі " "ШЛЯХ\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr "" " +n ШЛЯХ додати відносний файл ієрархії у каталозі ШЛЯХ\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers використовувати числа\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o використовувати stdOut\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout показати дамп відповідників\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr "" " -q, --quiet обробка без виведення додаткових повідомлень\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r КАТАЛОГ вилучити КАТАЛОГ\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree КАТАЛОГ вилучити КАТАЛОГ рекурсивно\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s сканувати диск починаючи від $HOME\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S ШЛЯХ сканувати диск починаючи від каталогу ШЛЯХ\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S ШЛЯХ сканувати диск починаючи від каталогу ШЛЯХ, " "створити відносний файл ієрархії\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t не вилучати рядок /tmp_mnt зі шляхів\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr "" " -T, --ascii-tree малювати ієрархію за допомогою символів ASCII\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav альтернативна навігація ієрархією\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree центрований перегляд ієрархії\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree ущільнена ієрархія\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr "" " -Td, --cjk-width використати підтримку застарілих ієрогліфічних " "шрифтів\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr "" " -u КОРИСТУВАЧ використати файл ієрархії вказаного користувача\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u КОРИСТУВАЧ додати файл ієрархії вказаного користувача\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose режим докладних повідомлень\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version вивести дані щодо версії\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only лише неточна відповідність\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr "" " -x ШЛЯХ виключити вказаний шлях під час сканування диска\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf ФАЙЛ виключити шляхи, вказані у файлі ФАЙЛ\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes відповісти «так» на усі питання\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z ЧИСЛО встановити максимальний розмір стека\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr " -[ЧИСЛО] вставити каталог (вказану кількість разів)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[ЧИСЛО] вийняти каталог (вказану кількість разів)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = вивести стек\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) - довільна зміна каталогу (Wherever Change Directory)\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Chdir для Dos та Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "16-бітова версія для DOS (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "16-бітова версія для DOS (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "32-бітова версія для DOS (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "32-бітова версія для DOS (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Версія для Win64 (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Версія для Win64 (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Версія для Win32 (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Версія для Win32 (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Версія для Win32 (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Версія для Win32 (MinGW).\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Цю версію призначено для MSYS та WinZsh.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Цю версію призначено для Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Цю версію призначено для командної оболонки Windows (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "Версія для OS/2" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Цю версію призначено для використання у MSYS.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Версія для Cygwin.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Цю версію призначено для bash у DJGPP DOS.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Цю версію призначено для bash у OS/2.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Інтерфейс:" #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "ncurses, версія %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "збірка PDCurses, %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "stdout\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Передбачено підтримку перекладів різними мовами.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Підтримку перекладів не включено.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "У поточній локалі використовується кодування CP%u.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "У поточній локалі використовується кодування %s.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "З підтримкою Unicode.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Символ євро: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Китайські ієрогліфи: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Без підтримки Unicode.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "З нормалізацією Unicode.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Без нормалізації Unicode.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "" "Найсвіжіші версії виконуваних файлів та початкового коду можна знайти тут:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp на C3PO\n" "Copyright (C) 1995-1996 DJ Delorie на _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria та Olivier Sirol на Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews на DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel та Igor Mandrichenko на recmatch()\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Програмний код для сканування локальної мережі у Windows було написано і\n" "викладено для відкритого використання Felix Kasza.\n" "Використано вільні реалізації wcwidth() та wcswidth() від Markus Kuhn.\n" "Першим автором query_con_codepage() є Rugxulo (відкрите використання).\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Ця програма є вільним програмним забезпеченням; ви можете поширювати та/або\n" "змінювати її за умов дотримання GNU General Public License у тому вигляді,\n" "що оприлюднений Free Software Foundation; версії цієї Ліцензії, або (якщо\n" "забажаєте) будь-якої іншої версії, випущеної пізніше.\n" "\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Ця програма поширюється у сподіванні, що вона буде корисною, але БЕЗ БУДЬ-\n" "ЯКИХ ГАРАНТІЙНИХ ЗОБОВ’ЯЗАНЬ; навіть без очевидної гарантії ПРАЦЕЗДАТНОСТІ\n" "або ПРИДАТНОСТІ ДЛЯ ВИКОРИСТАННЯ З ПЕВНОЮ МЕТОЮ. Докладніше про це можна\n" "дізнатися з GNU General Public License.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Ви маєте отримати копію GNU General Public License разом з цією програмою;\n" "якщо це не так, повідомте про факт за адресою Free Software Foundation,\n" "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "створюємо каталог %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Значення змінної середовища %s є надто довгим.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Не вдалося скасувати визначення змінної середовища TERM: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Змінну середовища HOME або WCDHOME не визначено.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "HOME не визначено\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "WCDHOME не визначено\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "WCDSCAN не визначено\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" "Підтримку графічного режиму передбачено лише у wcd з інтерфейсом на основі " "curses.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s додано до файла псевдонімів %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Не вдалося прочитати файл %s або %s\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "Каталог WCDSCAN {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "блокуємо {%s}\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "виключаємо {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "фільтруємо {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Каталогу, відповідного до %s, не знайдено\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "" "Ймовірно, вам слід виконати повторне сканування диска або відповідний шлях " "заблоковано.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Не вдалося перейти до %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu («%s») повідомлено «%s».\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "доступ заборонено.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Шукаємо каталоги спільного використання на сервері %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "На сервері %2$s виявлено %1$lu каталогів спільного використання\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Не вдалося визначити поточний робочий каталог: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Не вдалося перейти до каталогу %s: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Не вдалося створити каталог %s:" #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Не вдалося вилучити каталог %s: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Не вдалося створити каталог %s: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Не вдалося отримати дані щодо поточного робочого каталогу: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Не вдалося перейти до каталогу %s: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Не вдалося вилучити каталог %s: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Помилка під час обробки стека\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "внутрішня помилка у maxLength(), list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "внутрішня помилка у maxLengthStack(), s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Ідеальна відповідність %d каталогів." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Неточна відповідність %d каталогів." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "" "Будь ласка, виберіть одну з команд (натисніть , щоб перервати): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=вгору x=вниз ?=довідка Сторінка %d з %d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Для перегляду довідки висота екрана має перевищувати 20." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w або <Вгору> на сторінку вгору" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x, z або <Вниз> на сторінку вниз" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", або <Ліворуч> гортати на один символ ліворуч" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". або <Праворуч> гортати на один символ праворуч" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< або [ гортати на 10 символів ліворуч" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> або ] гортати на 10 символів праворуч" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "CTRL-a або гортати на початок" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "CTRL-e або гортати до кінця" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "CTRL-c або перервати" #: display.c:693 display.c:1186 msgid " abort" msgstr " перервати" #: display.c:694 msgid "Type w or x to quit help." msgstr "Натисніть клавішу w або x, щоб вийти з режиму довідки." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Натисніть будь-яку клавішу." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" "Помилка під час спроби відкрити термінал, повертаємося до інтерфейсу " "stdout.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "висота екрана має перевищувати 3 рядки.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "помилка під час створення вікна гортання.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "помилка під час створення вікна введення даних.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: помилка: шлях є надто довгим" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = шукати вперед, ? = шукати назад, : = довідка" #: graphics.c:1776 msgid "SEARCH: " msgstr "ШУКАТИ:" #: graphics.c:1779 msgid "Search: " msgstr "Шукати:" #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "РЕЖИМ НАВІГАЦІЇ (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h або <Ліворуч> перейти ліворуч" #: graphics.c:1797 msgid "j or go down" msgstr "j або <Вниз> перейти нижче" #: graphics.c:1798 msgid "k or go up" msgstr "k або <Вгору> перейти вище" #: graphics.c:1799 msgid "l or go right" msgstr "l або <Праворуч> перейти праворуч" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "*, v або <Пробіл> перейти вперед до каталогу з тією самою назвою" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "#, p або перейти назад до каталогу з тією самою назвою" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ або a перейти на початок рядка" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ або e перейти до кінця рядка" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 перейти до кореневого каталогу" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g або G перейти до останнього каталогу" #: graphics.c:1806 msgid "f go page forward" msgstr "f перейти на сторінку вперед" #: graphics.c:1807 msgid "b go page backward" msgstr "b перейти на сторінку назад" #: graphics.c:1808 msgid "u go half page up" msgstr "u перейти на пів сторінки вгору" #: graphics.c:1809 msgid "d go half page down" msgstr "d перейти на пів сторінки назад" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "РЕЖИМ НАВІГАЦІЇ (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "" "A увімкнути або вимкнути альтернативну навігацію ієрархією" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t увімкнути або вимкнути центрований режим" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "" "T перемкнутися між режимом малювання ліній та режимом " "символів ASCII" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "" "m перемкнутися між ущільненим виглядом та широким виглядом " "ієрархії" #: graphics.c:1821 msgid " or q abort" msgstr " або q перервати" #: graphics.c:1822 msgid "/ search forward" msgstr "/ шукати далі" #: graphics.c:1823 msgid "? search backward" msgstr "? пошук у напрямку назад" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n повторити останній пошук за допомогою / або ?" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " вибрати каталог" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "РЕЖИМ ПОШУКУ з підтримкою символів-замінників та підкаталогів:" #: graphics.c:1833 msgid " go left" msgstr "<Ліворуч> перейти ліворуч" #: graphics.c:1834 msgid " go down" msgstr "<Вниз> перейти вниз" #: graphics.c:1835 msgid " go up" msgstr "<Вгору> перейти вище" #: graphics.c:1836 msgid " go right" msgstr "<Праворуч> перейти праворуч" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "CTRL-v перейти вперед до каталогу з тією самою назвою" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "CTRL-p перейти назад до каталогу з тією самою назвою" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "CTRL-a перейти на початок рядка" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "CTRL-e перейти до кінця рядка" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "CTRL-g перейти до останнього каталогу" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "CTRL-f перейти на сторінку вперед" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "CTRL-b перейти на сторінку назад" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "CTRL-u перейти на пів сторінки вище" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "CTRL-d перейти на пів сторінки нижче" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " або CTRL-x вийти з режиму пошуку" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "CTRL-n повторити останній пошук за допомогою / або ?" #: graphics.c:1855 msgid "ZOOMING:" msgstr "ЗМІНА МАСШТАБУ:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z, i або CTRL-i збільшити" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z, o або CTRL-o зменшити" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c згорнути поточний рівень" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C згорнути рівень підкаталогів" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w згорнути поточний рівень і рівень підкаталогів" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y або CTRL-y розгорнути поточний рівень і рівень підкаталогів" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r або CTRL-r розгорнути усі каталоги" #: graphics.c:1863 msgid "- fold directory" msgstr "- згорнути каталог" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ або = розгорнути каталог" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l або <Праворуч> розгорнути і перейти праворуч" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "Для перегляду довідки висота екрана має перевищувати 21." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "помилка malloc у wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "у «%s», недостатньо пам’яті для розподілу\n" wcd-5.2.5/src/po/nl.po0000664000175000017500000010142112345660661014704 0ustar waterlanwaterlan# Dutch translations for wcd. # Copyright (C) 2014 Erwin Waterlander (msgids) # This file is distributed under the same license as the wcd package. # # Erwin Waterlander , 2008-2014. # Benno Schulenberg , 2014. msgid "" msgstr "" "Project-Id-Version: wcd 5.2.5-b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-05-13 21:51+0200\n" "PO-Revision-Date: 2014-02-11 21:20+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.0\n" #: wcd.c:142 #, c-format msgid "Wcd: error: " msgstr "Wcd: fout: " #: wcd.c:201 wcd.c:221 #, c-format msgid "Unable to read file %s: %s\n" msgstr "Kan bestand %s niet lezen: %s\n" #: wcd.c:210 #, c-format msgid "Unable to read file %s: Not a regular file.\n" msgstr "Kan bestand %s niet lezen: geen regulier bestand.\n" #: wcd.c:223 wcd.c:311 #, c-format msgid "Unable to write file %s: %s\n" msgstr "Kan bestand %s niet schrijven: %s\n" #: wcd.c:313 #, c-format msgid "Unable to close file %s: %s\n" msgstr "Kan bestand %s niet sluiten: %s\n" #: wcd.c:657 wcd.c:671 #, c-format msgid "%s added to file %s\n" msgstr "%s toegevoegd aan bestand %s\n" #: wcd.c:805 wcd.c:870 #, c-format msgid "Unable to remove file %s: %s\n" msgstr "Kan bestand %s niet verwijderen: %s\n" #: wcd.c:958 wcd.c:1027 #, c-format msgid "finddirs(): can't determine path in directory %s\n" msgstr "finddirs(): kan pad in map %s niet achterhalen\n" #: wcd.c:959 wcd.c:1028 msgid "path probably too long.\n" msgstr "pad is waarschijnlijk te lang.\n" #: wcd.c:1140 wcd.c:1473 #, c-format msgid "%s is not a directory.\n" msgstr "%s is geen map.\n" #: wcd.c:1145 #, c-format msgid "Please wait. Scanning disk. Building treedata-file %s from %s\n" msgstr "" "Even geduld, schijf wordt gescand. Boombestand %s wordt opgebouwd vanaf %s\n" #: wcd.c:1206 wcd.c:2415 wcd.c:2438 wcd.c:2517 #, c-format msgid "Writing file \"%s\"\n" msgstr "Schrijven van bestand '%s'\n" #: wcd.c:1211 msgid "Write access to tree-file denied.\n" msgstr "Schrijftoegang tot boombestand is geweigerd.\n" #: wcd.c:1212 msgid "Set TEMP environment variable if this is a read-only disk.\n" msgstr "" "Stel omgevingsvariabele TEMP in wanneer dit een alleen-lezen schijf is.\n" #: wcd.c:1341 #, c-format msgid "Removed symbolic link %s\n" msgstr "Symbolische koppeling %s is verwijderd.\n" #: wcd.c:1347 #, c-format msgid "Unable to remove symbolic link %s: %s\n" msgstr "Kan symbolische koppeling %s niet verwijderen: %s\n" #: wcd.c:1352 #, c-format msgid "%s is a symbolic link to a file.\n" msgstr "%s is een symbolische koppeling naar een bestand.\n" #: wcd.c:1434 #, c-format msgid "Recursively remove %s? Are you sure? y/n :" msgstr "Map %s recursief verwijderen? Weet u het zeker? y(ja)/n(nee) :" #: wcd.c:1456 wcd.c:1466 #, c-format msgid "Removed directory %s\n" msgstr "Map %s is verwijderd.\n" #: wcd.c:1497 wcd.c:1557 wcd.c:1616 #, c-format msgid "" "line too long in %s ( > %d). The treefile could be corrupt, else fix by " "increasing DD_MAXPATH in source code.\n" msgstr "" "Regel in %s is te lang (> %d). Het boombestand kan beschadigd zijn,\n" "of anders is het op te lossen door DD_MAXPATH in broncode te verhogen.\n" #: wcd.c:1498 wcd.c:1558 wcd.c:1617 #, c-format msgid "file: %s, line: %d," msgstr "bestand: %s, regel: %d," #: wcd.c:1505 wcd.c:1565 wcd.c:1624 #, c-format msgid " length: %d\n" msgstr " lengte: %d\n" #: wcd.c:2127 #, c-format msgid "" "Usage: wcd [options] [directory]\n" "\n" msgstr "" "Gebruik: wcd [opties] [MAP]\n" "\n" #: wcd.c:2128 #, c-format msgid "directory: Name of directory to change to.\n" msgstr "MAP is de naam van de map waarnaartoe veranderd moet worden.\n" #: wcd.c:2129 #, c-format msgid "" " Wildcards *, ? and [SET] are supported.\n" "\n" msgstr "" "De jokertekens * en ? worden ondersteund, en ook [SET].\n" "\n" #: wcd.c:2131 #, c-format msgid "options:\n" msgstr "Opties:\n" #: wcd.c:2132 #, c-format msgid " -a Add current path to treefile\n" msgstr " -a huidig pad toevoegen aan boombestand\n" #: wcd.c:2133 #, c-format msgid "" " -aa Add current and all parent paths to treefile\n" msgstr "" " -aa huidig pad en alle hogere paden toevoegen aan " "boombestand\n" #: wcd.c:2134 #, c-format msgid " -A PATH Add tree from PATH\n" msgstr " -A PAD boom vanaf dit pad toevoegen\n" #: wcd.c:2135 #, c-format msgid " -b Ban current path\n" msgstr " -b huidig pad verbannen\n" #: wcd.c:2136 #, c-format msgid " -c, --direct-cd direct CD mode\n" msgstr " -c, --direct-cd direkte CD-modus\n" #: wcd.c:2137 #, c-format msgid " -d DRIVE set DRIVE for stack & go files (DOS)\n" msgstr "" " -d SCHIJF te gebruiken schijf voor stapel- & go-bestanden " "in (DOS)\n" #: wcd.c:2138 #, c-format msgid " -e add current path to Extra treefile\n" msgstr "" " -e huidig pad toevoegen aan extra boombestand\n" #: wcd.c:2139 #, c-format msgid "" " -ee add current and all parent paths to Extra " "treefile\n" msgstr "" " -ee huidig pad en alle hogere paden toevoegen aan " "extra boombestand\n" #: wcd.c:2140 #, c-format msgid " -E PATH add tree from PATH to Extra treefile\n" msgstr "" " -E PAD boom vanaf dit pad toevoegen aan extra " "boombestand\n" # FIXME: s/extra/this/ #: wcd.c:2141 #, c-format msgid " -f FILE use extra treeFile\n" msgstr " -f BESTAND te gebruiken boombestand\n" #: wcd.c:2142 #, c-format msgid " +f FILE add extra treeFile\n" msgstr " +f BESTAND toe te voegen extra boombestand\n" #: wcd.c:2143 #, c-format msgid " -g Graphics\n" msgstr " -g grafisch\n" #: wcd.c:2144 #, c-format msgid " -gd Graphics, dump tree\n" msgstr " -gd grafisch, de boom dumpen\n" #: wcd.c:2145 #, c-format msgid " -G PATH set PATH Go-script\n" msgstr " -G PAD te gebruiken pad voor Go-script\n" #: wcd.c:2146 #, c-format msgid " -GN, --no-go-script No Go-script\n" msgstr " -GN, --no-go-script geen Go-script gebruiken\n" #: wcd.c:2147 #, c-format msgid " -h, --help show this Help\n" msgstr " -h, --help deze hulptekst tonen\n" #: wcd.c:2150 #, c-format msgid " -i, --ignore-case Ignore case (default)\n" msgstr " -i, --ignore-case hoofdletterongevoelig (standaard)\n" #: wcd.c:2151 #, c-format msgid " +i, --no-ignore-case regard case\n" msgstr " +i, --no-ignore-case hoofdlettergevoelig\n" #: wcd.c:2153 #, c-format msgid " -i, --ignore-case Ignore case\n" msgstr " -i, --ignore-case hoofdletterongevoelig\n" #: wcd.c:2154 #, c-format msgid " +i, --no-ignore-case regard case (default)\n" msgstr " +i, --no-ignore-case hoofdlettergevoelig (standaard)\n" #: wcd.c:2157 #, c-format msgid " -I, --ignore-diacritics Ignore diacritics\n" msgstr " -I, --ignore-diacritics diakritische tekens negeren\n" #: wcd.c:2158 #, c-format msgid " +I, --no-ignore-diacritics regard diacritics (default)\n" msgstr "" " +I, --no-ignore-diacritics diakritische tekens achten (standaard)\n" #: wcd.c:2159 #, c-format msgid " -j, --just-go Just go mode\n" msgstr " -j, --just-go ga-nou-maar-modus\n" #: wcd.c:2160 #, c-format msgid " -k, --keep-paths Keep paths\n" msgstr " -k, --keep-paths paden bewaren\n" #: wcd.c:2161 #, c-format msgid " -K, --color colors\n" msgstr " -K, --color kleuren gebruiken\n" #: wcd.c:2162 #, c-format msgid " -l ALIAS aLias current directory\n" msgstr " -l ALIAS alias voor huidige map\n" #: wcd.c:2163 #, c-format msgid " -L, --license show software License\n" msgstr " -L, --license softwarelicentie tonen\n" #: wcd.c:2164 #, c-format msgid " -m DIR Make DIR, add to treefile\n" msgstr "" " -m MAP deze MAP aanmaken, en toevoegen aan boombestand\n" #: wcd.c:2165 #, c-format msgid " -M DIR Make DIR, add to extra treefile\n" msgstr "" " -M MAP deze MAP aanmaken, en toevoegen aan extra " "boombestand\n" #: wcd.c:2166 #, c-format msgid " -n PATH use relative treefile in PATH\n" msgstr " -n PAD relatief boombestand in dit pad gebruiken\n" #: wcd.c:2167 #, c-format msgid " +n PATH add relative treefile in PATH\n" msgstr " +n PAD relatief boombestand in dit pad toevoegen\n" #: wcd.c:2168 #, c-format msgid " -N, --numbers use Numbers\n" msgstr " -N, --numbers nummers gebruiken\n" #: wcd.c:2169 #, c-format msgid " -o use stdOut\n" msgstr " -o standaarduitvoer gebruiken\n" #: wcd.c:2170 #, c-format msgid " -od, --to-stdout dump matches\n" msgstr " -od, --to-stdout treffers dumpen\n" #: wcd.c:2171 #, c-format msgid " -q, --quiet Quieter operation\n" msgstr " -q, --quiet stillere werking\n" #: wcd.c:2172 #, c-format msgid " -r DIR Remove DIR\n" msgstr " -r MAP deze map verwijderen\n" #: wcd.c:2173 #, c-format msgid " -rmtree DIR Remove DIR recursive\n" msgstr " -rmtree MAP deze map recursief verwijderen\n" #: wcd.c:2174 #, c-format msgid " -s Scan disk from $HOME\n" msgstr " -s schijf scannen vanaf $HOME\n" #: wcd.c:2175 #, c-format msgid " -S PATH Scan disk from PATH\n" msgstr " -S PAD schijf scannen vanaf dit pad\n" #: wcd.c:2176 #, c-format msgid "" " +S PATH Scan disk from PATH, create relative treefile\n" msgstr "" " +S PAD schijf scannen vanaf dit pad, en relatief " "boombestand aanmaken\n" #: wcd.c:2177 #, c-format msgid " -t don't strip /tmp_mnt from paths\n" msgstr " -t paden niet van '/tmp_mnt' ontdoen\n" #: wcd.c:2178 #, c-format msgid " -T, --ascii-tree draw tree with ASCII characters\n" msgstr " -T, --ascii-tree boom weergeven via ASCII-tekens\n" #: wcd.c:2179 #, c-format msgid " -Ta, --alt-tree-nav Alternative tree navigation\n" msgstr " -Ta, --alt-tree-nav alternatieve boomnavigatie\n" #: wcd.c:2180 #, c-format msgid " -TC, --center-tree Centered tree view\n" msgstr " -TC, --center-tree gecentreerde boomweergave\n" #: wcd.c:2181 #, c-format msgid " -Tc, --compact-tree Compact tree\n" msgstr " -Tc, --compact-tree compacte boomweergave\n" #: wcd.c:2182 #, c-format msgid " -Td, --cjk-width support legacy CJK fonts\n" msgstr " -Td, --cjk-width oude CJK-lettertypes ondersteunen\n" #: wcd.c:2183 #, c-format msgid " -u USER use USER's treefile\n" msgstr " -u GEBRUIKER boombestand van deze gebruiker gebruiken\n" #: wcd.c:2184 #, c-format msgid " +u USER add USER's treefile\n" msgstr " +u GEBRUIKER boombestand van deze gebruiker toevoegen\n" #: wcd.c:2185 #, c-format msgid " -v, --verbose Verbose operation\n" msgstr " -v, --verbose gedetailleerde uitvoer produceren\n" #: wcd.c:2186 #, c-format msgid " -V, --version show Version info\n" msgstr " -V, --version programmaversie tonen\n" #: wcd.c:2187 #, c-format msgid " -w, --wild-match-only Wild matching only\n" msgstr " -w, --wild-match-only alleen jokervergelijkingen doen\n" #: wcd.c:2188 #, c-format msgid " -x PATH eXclude PATH during disk scan\n" msgstr "" " -x PAD uit te sluiten pad tijdens scannen van schijf\n" #: wcd.c:2189 #, c-format msgid " -xf FILE eXclude paths from FILE\n" msgstr " -xf BESTAND paden uit dit bestand uitsluiten\n" #: wcd.c:2190 #, c-format msgid " -y, --assume-yes assume Yes on all queries\n" msgstr " -y, --assume-yes op alle vragen als antwoord Ja aannemen\n" #: wcd.c:2191 #, c-format msgid " -z NUMBER set max stack siZe\n" msgstr " -z GETAL te gebruiken maximum stapelgrootte\n" #: wcd.c:2192 #, c-format msgid " -[NUMBER] push dir (NUMBER times)\n" msgstr "" " -[GETAL] map aan stapel toevoegen (dit aantal maal)\n" #: wcd.c:2193 #, c-format msgid " +[NUMBER] pop dir (NUMBER times)\n" msgstr " +[GETAL] map van stapel halen (dit aantal maal)\n" #: wcd.c:2194 #, c-format msgid " = show stack\n" msgstr " = stapel tonen\n" #: wcd.c:2203 wcd.c:2332 #, c-format msgid "wcd %s (%s) - Wherever Change Directory\n" msgstr "wcd %s (%s) - Wherever Change Directory\n" #: wcd.c:2204 #, c-format msgid "" "Chdir for Dos and Unix.\n" "\n" msgstr "" "Een slimme 'chdir' voor DOS en Unix.\n" "\n" #: wcd.c:2208 #, c-format msgid "DOS 16 bit version (WATCOMC).\n" msgstr "DOS 16-bits versie (WATCOMC).\n" #: wcd.c:2210 #, c-format msgid "DOS 16 bit version (TURBOC).\n" msgstr "DOS 16-bits versie (TURBOC).\n" #: wcd.c:2212 #, c-format msgid "DOS 32 bit version (DJGPP).\n" msgstr "DOS 32-bits versie (DJGPP).\n" #: wcd.c:2214 #, c-format msgid "DOS 32 bit version (WATCOMC).\n" msgstr "DOS 32-bits versie (WATCOMC).\n" #: wcd.c:2221 #, c-format msgid "Win64 version (MSVC %d).\n" msgstr "Windows 64-bits versie (MSVC %d).\n" #: wcd.c:2223 #, c-format msgid "Win64 version (MinGW-w64).\n" msgstr "Windows 64-bits versie (MinGW-w64).\n" #: wcd.c:2227 #, c-format msgid "Win32 version (WATCOMC).\n" msgstr "Windows 32-bits versie (WATCOMC).\n" #: wcd.c:2229 #, c-format msgid "Win32 version (MSVC %d).\n" msgstr "Windows 32-bits versie (MSVC %d).\n" #: wcd.c:2231 #, c-format msgid "Win32 version (MinGW-w64).\n" msgstr "Windows 32-bits versie (MinGW-w64).\n" #: wcd.c:2233 #, c-format msgid "Win32 version (MinGW).\n" msgstr "Windows 32-bits versie (MinGW)\n" #: wcd.c:2240 #, c-format msgid "This version is for MSYS and WinZsh.\n" msgstr "Deze versie is voor MSYS en WinZsh.\n" #: wcd.c:2242 #, c-format msgid "This version is for Windows PowerShell.\n" msgstr "Deze versie is voor Windows PowerShell.\n" #: wcd.c:2244 #, c-format msgid "This version is for Windows Command Prompt (cmd.exe).\n" msgstr "Deze versie is voor Windows Opdrachtprompt (cmd.exe).\n" #: wcd.c:2249 #, c-format msgid "OS/2 version" msgstr "OS/2-versie" #: wcd.c:2260 #, c-format msgid "This version is for native MSYS.\n" msgstr "Deze versie is voor MSYS.\n" #: wcd.c:2263 #, c-format msgid "Cygwin version.\n" msgstr "Cygwin-versie.\n" #: wcd.c:2266 #, c-format msgid "This version is for DJGPP DOS bash.\n" msgstr "Deze versie is voor DJGPP DOS bash.\n" #: wcd.c:2269 #, c-format msgid "This version is for OS/2 bash.\n" msgstr "Deze versie is voor OS/2 bash.\n" #: wcd.c:2272 #, c-format msgid "Interface: " msgstr "Interface: " #: wcd.c:2278 #, c-format msgid "ncurses version %s.%d\n" msgstr "ncurses-versie %s.%d\n" #: wcd.c:2281 #, c-format msgid "PDCurses build %d\n" msgstr "PDCurses-versie %d\n" #: wcd.c:2283 #, c-format msgid "curses\n" msgstr "curses\n" #: wcd.c:2292 #, c-format msgid "stdout\n" msgstr "standaarduitvoer\n" #: wcd.c:2296 #, c-format msgid "Native language support included.\n" msgstr "Met ondersteuning voor taalregio's.\n" #: wcd.c:2297 #, c-format msgid "LOCALEDIR=%s\n" msgstr "LOCALEDIR=%s\n" #: wcd.c:2299 #, c-format msgid "No native language support included.\n" msgstr "Zonder ondersteuning voor taalregio's.\n" #: wcd.c:2302 #, c-format msgid "Current locale uses CP%u encoding.\n" msgstr "Huidige taalregio gebruikt CP%u-codering.\n" #: wcd.c:2304 #, c-format msgid "Current locale uses %s encoding.\n" msgstr "Huidige taalregio gebruikt %s-codering.\n" #: wcd.c:2307 #, c-format msgid "With Unicode support.\n" msgstr "Met ondersteuning voor Unicode.\n" #: wcd.c:2312 #, c-format msgid " Euro symbol: " msgstr " Euro-symbool: " #: wcd.c:2314 #, c-format msgid " Chinese characters: " msgstr " Chinese karakters: " #: wcd.c:2318 #, c-format msgid "Without Unicode support.\n" msgstr "Zonder ondersteuning voor Unicode.\n" #: wcd.c:2321 #, c-format msgid "With Unicode normalization.\n" msgstr "Met Unicode-normalisatie.\n" #: wcd.c:2323 #, c-format msgid "Without Unicode normalization.\n" msgstr "Zonder Unicode-normalisatie.\n" #: wcd.c:2326 #, c-format msgid "Download the latest executables and sources from:\n" msgstr "Download de nieuwste versie en/of de broncode van:\n" #: wcd.c:2333 #, c-format msgid "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp on C3PO\n" "Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo " "Directory\n" "Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n" msgstr "" "Copyright (C) 1997-2014 Erwin Waterlander\n" "Copyright (C) 1994-2002 Ondrej Popp [op C3PO]\n" "Copyright (C) 1995-1996 DJ Delorie [on _fixpath()]\n" "Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol [op Ninux Czo " "Directory]\n" "Copyright (C) 1994-1996 Jason Mathews [op DOSDIR]\n" "Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n" "Kai Uwe Rommel en Igor Mandrichenko [op recmatch()]\n" #: wcd.c:2341 #, c-format msgid "" "Source code to scan Windows LAN was originally written and placed\n" "in the public domain by Felix Kasza.\n" "Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n" "Rugxulo is the original author of query_con_codepage() (public domain).\n" "\n" msgstr "" "Het programmadeel om een Windows-LAN te scannen werd oorspronkelijk\n" "geschreven en in het publieke domein geplaatst door Felix Kasza.\n" "Markus Kuhns vrije implementaties van wcwidth() en wcswidth() worden " "gebruikt.\n" "Rugxulo is de oorspronkelijke auteur van query_con_codepage() (publiek " "domein).\n" "\n" #: wcd.c:2347 #, c-format msgid "" "This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License\n" "as published by the Free Software Foundation; either version 2\n" "of the License, or (at your option) any later version.\n" "\n" msgstr "" "Dit programma is vrije software: u mag het vrijelijk wijzigen en/of verder\n" "verspreiden onder de voorwaarden van de GNU General Public License (versie " "2\n" "of nieuwer) zoals die gepubliceerd is door de Free Software Foundation.\n" "Zie voor de volledige (Engelse) tekst.\n" "\n" #: wcd.c:2353 #, c-format msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" msgstr "" "Dit programma wordt uitgegeven in de hoop dat het nuttig is,\n" "maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie\n" "van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n" "Zie de GNU General Public License voor meer details.\n" "\n" #: wcd.c:2359 #, c-format msgid "" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 " "USA.\n" msgstr "" "Bij dit programma hoort u een kopie van de GNU General Public License\n" "ontvangen te hebben; is dit niet het geval, dan kunt u deze licentie\n" "ook vinden op http://www.gnu.org/licenses/\n" #: wcd.c:2395 #, c-format msgid "creating directory %s\n" msgstr "aanmaken van map %s\n" #: wcd.c:2722 wcd.c:2762 wcd.c:2777 wcd.c:2845 wcd.c:2914 wcd.c:3396 #: wcd.c:3415 #, c-format msgid "Value of environment variable %s is too long.\n" msgstr "Waarde van omgevingsvariabele %s is te lang.\n" #: wcd.c:2751 #, c-format msgid "Failed to unset environment variable TERM: %s\n" msgstr "Verwijderen van omgevingsvariabele TERM is mislukt: %s\n" #: wcd.c:2809 wcd.c:2838 msgid "Environment variable HOME or WCDHOME is not set.\n" msgstr "Omgevingsvariabelen HOME en WCDHOME zijn niet ingesteld.\n" #: wcd.c:3023 msgid "HOME is not defined\n" msgstr "HOME is niet gedefinieerd.\n" #: wcd.c:3027 msgid "WCDHOME is not defined\n" msgstr "WCDHOME is niet gedefinieerd.\n" #: wcd.c:3031 msgid "WCDSCAN is not defined\n" msgstr "WCDSCAN is niet gedefinieerd.\n" #: wcd.c:3056 msgid "Graphics mode only supported in wcd with curses-based interface.\n" msgstr "" "Grafische modus wordt alleen ondersteund met een op 'curses' gebaseerde " "interface.\n" #: wcd.c:3329 #, c-format msgid "%s added to aliasfile %s\n" msgstr "%s is toegevoegd aan aliasbestand %s\n" #: wcd.c:3428 #, c-format msgid "Unable to read file %s or %s\n" msgstr "Kan bestand %s of %s niet lezen.\n" #: wcd.c:3578 #, c-format msgid "WCDSCAN directory {%s}\n" msgstr "WCDSCAN-map {%s}\n" #: wcd.c:3580 #, c-format msgid "banning {%s}\n" msgstr "verbannen van {%s}\n" #: wcd.c:3582 #, c-format msgid "excluding {%s}\n" msgstr "uitsluiten van {%s}\n" #: wcd.c:3584 #, c-format msgid "filtering {%s}\n" msgstr "filteren van {%s}\n" #: wcd.c:3852 #, c-format msgid "No directory found matching %s\n" msgstr "Geen map gevonden die overeenkomt met %s\n" #: wcd.c:3853 msgid "Perhaps you need to rescan the disk or path is banned.\n" msgstr "Misschien moet u de schijf opnieuw scannen of is het pad verbannen.\n" #: wcd.c:4020 #, c-format msgid "Cannot change to %s\n" msgstr "Kan niet veranderen naar %s\n" #: wcddir.c:104 #, c-format msgid "%lu (\"%s\") reported by \"%s\".\n" msgstr "%lu (\"%s\") gerapporteerd door \"%s\".\n" #: wcddir.c:127 msgid "access denied.\n" msgstr "toegang is geweigerd.\n" #: wcddir.c:208 #, c-format msgid "Searching for shared directories on server %s\n" msgstr "Zoeken naar gedeelde mappen op server %s\n" #: wcddir.c:220 #, c-format msgid "Found %lu shared directories on server %s\n" msgstr "Er zijn %lu gedeelde mappen gevonden op server %s\n" #: wcddir.c:346 msgid "Unable to get current working directory: " msgstr "Kan huidige werkmap niet verkrijgen: " #: wcddir.c:375 #, c-format msgid "Unable to change to directory %s: " msgstr "Kan niet veranderen naar map %s: " #: wcddir.c:407 #, c-format msgid "Unable to create directory %s: " msgstr "Kan map %s niet aanmaken: " #: wcddir.c:437 #, c-format msgid "Unable to remove directory %s: " msgstr "Kan map %s niet verwijderen: " #: wcddir.c:567 wcddir.c:584 #, c-format msgid "Unable to create directory %s: %s\n" msgstr "Kan map %s niet aanmaken: %s\n" #: wcddir.c:709 #, c-format msgid "Unable to get current working directory: %s\n" msgstr "Kan huidige werkmap niet verkrijgen: %s\n" #: wcddir.c:728 #, c-format msgid "Unable to change to directory %s: %s\n" msgstr "Kan niet veranderen naar map %s: %s\n" #: wcddir.c:743 #, c-format msgid "Unable to remove directory %s: %s\n" msgstr "Kan bestand %s niet verwijderen: %s\n" #: stack.c:101 msgid "Error parsing stack\n" msgstr "Fout bij verwerken van stapel\n" #: display.c:259 msgid "internal error in maxLength(), list == NULL\n" msgstr "**interne programmafout** in maxLength(): list == NULL\n" #: display.c:279 msgid "internal error in maxLengthStack(), s == NULL\n" msgstr "**interne programmafout** in maxLengthStack(): s == NULL\n" #: display.c:519 display.c:1144 display.c:1519 #, c-format msgid "Perfect match for %d directories." msgstr "Perfecte overeenkomst voor %d mappen." #: display.c:521 display.c:1146 display.c:1521 #, c-format msgid "Wild match for %d directories." msgstr "Jokerovereenkomst voor %d mappen." #: display.c:525 display.c:1158 display.c:1523 display.c:1566 #, c-format msgid "Please choose one ( to abort): " msgstr "Maak een keuze ( om af te breken): " #: display.c:527 display.c:603 display.c:635 display.c:1151 #, c-format msgid " w=up x=down ?=help Page %d/%d " msgstr " w=omhoog x=omlaag ?=help Pagina %d/%d " #: display.c:679 display.c:1174 msgid "Screenheight must be > 20 for help." msgstr "Schermhoogte moet groter zijn dan 20 voor hulp." #: display.c:684 display.c:1177 msgid "w or page up" msgstr "w of pagina omhoog" #: display.c:685 display.c:1178 msgid "x or z or page down" msgstr "x of z of pagina omlaag" #: display.c:686 display.c:1179 msgid ", or scroll 1 left" msgstr ", of scroll 1 naar links" #: display.c:687 display.c:1180 msgid ". or scroll 1 right" msgstr ". of scroll 1 naar rechts" #: display.c:688 display.c:1181 msgid "< or [ scroll 10 left" msgstr "< of [ scroll 10 naar links" #: display.c:689 display.c:1182 msgid "> or ] scroll 10 right" msgstr "> of ] scroll 10 naar rechts" #: display.c:690 display.c:1183 msgid "CTRL-a or scroll to beginning" msgstr "Ctrl-a of scroll naar begin" #: display.c:691 display.c:1184 msgid "CTRL-e or scroll to end" msgstr "Ctrl-e of scroll naar einde" #: display.c:692 display.c:1185 msgid "CTRL-c or abort" msgstr "Ctrl-c of afbreken" #: display.c:693 display.c:1186 msgid " abort" msgstr " afbreken" #: display.c:694 msgid "Type w or x to quit help." msgstr "Typ w of x om hulp te verlaten." #: display.c:1187 graphics.c:1810 graphics.c:1826 graphics.c:1849 #: graphics.c:1866 msgid "Press any key." msgstr "Druk op een toets." #: display.c:1252 graphics.c:2116 msgid "Error opening terminal, falling back to stdout interface.\n" msgstr "" "Fout tijdens openen van terminal, teruggevallen op standaarduitvoer-" "interface.\n" #: display.c:1273 msgid "screen height must be larger than 3 lines.\n" msgstr "Schermhoogte moet groter zijn dan 3 regels.\n" #: display.c:1307 graphics.c:2149 msgid "error creating scroll window.\n" msgstr "fout bij aanmaken van scroll-venster.\n" #: display.c:1326 msgid "error creating input window.\n" msgstr "fout bij aanmaken van invoervenster.\n" #: graphics.c:279 #, c-format msgid "Wcd: error: path too long" msgstr "Wcd: fout: pad is te lang" #: graphics.c:1771 msgid "/ = search forward, ? = search backward, : = help" msgstr "/ = vooruit zoeken, ? = achteruit zoeken, : = hulp" #: graphics.c:1776 msgid "SEARCH: " msgstr "ZOEK: " #: graphics.c:1779 msgid "Search: " msgstr "Zoek: " #: graphics.c:1795 msgid "NAVIGATION MODE (1/2):" msgstr "NAVIGATIEMODUS (1/2):" #: graphics.c:1796 msgid "h or go left" msgstr "h of naar links" #: graphics.c:1797 msgid "j or go down" msgstr "j of omlaag" #: graphics.c:1798 msgid "k or go up" msgstr "k of omhoog" #: graphics.c:1799 msgid "l or go right" msgstr "l of naar rechts" #: graphics.c:1800 msgid "* or v or go forward to dir with same name" msgstr "* of v of vooruit naar map met dezelfde naam" #: graphics.c:1801 msgid "# or p or go backward to dir with same name" msgstr "# of p of achteruit naar map met dezelfde naam" #: graphics.c:1802 msgid "^ or a go to beginning of line" msgstr "^ of a naar begin van regel" #: graphics.c:1803 msgid "$ or e go to end of line" msgstr "$ of e naar einde van regel" #: graphics.c:1804 msgid "1 go to root dir" msgstr "1 naar eerste map" #: graphics.c:1805 msgid "g or G go to last dir" msgstr "g of G naar laatste map" #: graphics.c:1806 msgid "f go page forward" msgstr "f pagina vooruit" #: graphics.c:1807 msgid "b go page backward" msgstr "b pagina achteruit" #: graphics.c:1808 msgid "u go half page up" msgstr "u halve pagina omhoog" #: graphics.c:1809 msgid "d go half page down" msgstr "d halve pagina omlaag" #: graphics.c:1816 msgid "NAVIGATION MODE (2/2):" msgstr "NAVIGATIEMODUS (2/2):" #: graphics.c:1817 msgid "A switch alternative tree navigation on/off" msgstr "A alternatieve boomnavigatie in- of uitschakelen" #: graphics.c:1818 msgid "t switch centered mode on/off" msgstr "t gecentreerde modus in- of uitschakelen" #: graphics.c:1819 msgid "T toggle between line drawing and ASCII characters" msgstr "T schakelen tussen lijnen en ASCII-tekens" #: graphics.c:1820 msgid "m toggle between compact and wide tree" msgstr "m schakelen tussen compacte boom en brede boom" #: graphics.c:1821 msgid " or q abort" msgstr " of q afbreken" #: graphics.c:1822 msgid "/ search forward" msgstr "/ voorwaarts zoeken" #: graphics.c:1823 msgid "? search backward" msgstr "? achterwaarts zoeken" #: graphics.c:1824 msgid "n repeat last / or ? search" msgstr "n laatste zoekopdracht met / of ? herhalen" #: graphics.c:1825 graphics.c:1848 msgid " select directory" msgstr " de map kiezen" #: graphics.c:1832 msgid "SEARCH MODE with wildcard and subdir support:" msgstr "ZOEKMODUS met ondersteuning voor jokertekens en submappen:" #: graphics.c:1833 msgid " go left" msgstr " naar links" #: graphics.c:1834 msgid " go down" msgstr " omlaag" #: graphics.c:1835 msgid " go up" msgstr " omhoog" #: graphics.c:1836 msgid " go right" msgstr " naar rechts" #: graphics.c:1837 msgid "CTRL-v go forward to dir with same name" msgstr "Ctrl-v vooruit naar map met dezelfde naam" #: graphics.c:1838 msgid "CTRL-p go backward to dir with same name" msgstr "Ctrl-p achteruit naar map met dezelfde naam" #: graphics.c:1839 msgid "CTRL-a go to beginning of line" msgstr "Ctrl-a naar begin van regel" #: graphics.c:1840 msgid "CTRL-e go to end of line" msgstr "Ctrl-e naar einde van regel" #: graphics.c:1841 msgid "CTRL-g go to last dir" msgstr "Ctrl-g naar laatste map" #: graphics.c:1842 msgid "CTRL-f go page forward" msgstr "Ctrl-f pagina vooruit" #: graphics.c:1843 msgid "CTRL-b go page backward" msgstr "Ctrl-b pagina achteruit" #: graphics.c:1844 msgid "CTRL-u go half page up" msgstr "Ctrl-u halve pagina omhoog" #: graphics.c:1845 msgid "CTRL-d go half page down" msgstr "Ctrl-d halve pagina omlaag" #: graphics.c:1846 msgid " or CTRL-x abort SEARCH MODE" msgstr " of Ctrl-x ZOEKMODUS afbreken" #: graphics.c:1847 msgid "CTRL-n repeat last / or ? search" msgstr "Ctrl-n laatste zoekopdracht met / of ? herhalen" #: graphics.c:1855 msgid "ZOOMING:" msgstr "ZOOMEN:" #: graphics.c:1856 msgid "z or i or CTRL-i zoom in" msgstr "z of i of Ctrl-i inzoomen" #: graphics.c:1857 msgid "Z or o or CTRL-o zoom out" msgstr "Z of o of Ctrl-o uitzoomen" #: graphics.c:1858 msgid "c condense: fold current level" msgstr "c huidig niveau opvouwen" #: graphics.c:1859 msgid "C condense: fold subdir level" msgstr "C submapniveau opvouwen" #: graphics.c:1860 msgid "w condense: fold current and subdir levels" msgstr "w huidige niveau en subniveaus opvouwen" #: graphics.c:1861 msgid "y or CTRL-y uncondense: unfold current and subdir levels" msgstr "y of Ctrl-y huidige niveau en subniveaus uitvouwen" #: graphics.c:1862 msgid "r or CTRL-r uncondense: unfold all directories" msgstr "r of Ctrl-r alle mappen uitvouwen" #: graphics.c:1863 msgid "- fold directory" msgstr "- map opvouwen" #: graphics.c:1864 msgid "+ or = unfold directory" msgstr "+ of = map uitvouwen" #: graphics.c:1865 msgid "l or unfold and go right" msgstr "l of uitvouwen en naar rechts gaan" #: graphics.c:1869 msgid "Screenheight must be > 21 for help." msgstr "Schermhoogte moet groter zijn dan 21 voor hulp." #: wfixpath.c:65 msgid "malloc error in wcd_fixpath()\n" msgstr "onvoldoende geheugen beschikbaar in wcd_fixpath()\n" #: c3po/Error.c:41 #, c-format msgid "in '%s', insufficient memory for allocation\n" msgstr "in '%s', onvoldoende geheugen beschikbaar voor reservering\n" wcd-5.2.5/src/watcom.mif0000775000175000017500000001135012337225051015277 0ustar waterlanwaterlan# Common parts of the Watcom C makefiles. DEBUG = 0 CFLAGS += -dDEBUG=$(DEBUG) !ifdef ASCII_TREE CFLAGS += -dASCII_TREE !endif !ifeq UCS 1 CFLAGS += -dWCD_UNICODE -za99 !endif stack.obj : $(SRCDIR)\stack.c $(CC) $(CFLAGS) $(SRCDIR)\stack.c match.obj : $(SRCDIR)\match.c $(CC) $(CFLAGS) $(SRCDIR)\match.c matchl.obj : $(SRCDIR)\matchl.c $(CC) $(CFLAGS) $(SRCDIR)\matchl.c matchw.obj : $(SRCDIR)\matchw.c $(CC) $(CFLAGS) $(SRCDIR)\matchw.c querycp.obj : $(SRCDIR)\querycp.c $(CC) $(CFLAGS) $(SRCDIR)\querycp.c wcwidth.obj : $(SRCDIR)\wcwidth.c $(CC) $(CFLAGS) $(SRCDIR)\wcwidth.c wfixpath.obj : $(SRCDIR)\wfixpath.c $(CC) $(CFLAGS) $(SRCDIR)\wfixpath.c dosdir.obj : $(SRCDIR)\dosdir.c $(CC) $(CFLAGS) $(SRCDIR)\dosdir.c display.obj : $(SRCDIR)\display.c $(CC) $(CFLAGS) $(SRCDIR)\display.c colors.obj : $(SRCDIR)\colors.c $(CC) $(CFLAGS) $(SRCDIR)\colors.c graphics.obj : $(SRCDIR)\graphics.c $(CC) $(CFLAGS) $(SRCDIR)\graphics.c wcd.obj : $(SRCDIR)\wcd.c $(CC) $(CFLAGS) $(CFLAGS_VERSION) $(SRCDIR)\wcd.c wcddir.obj : $(SRCDIR)\wcddir.c $(CC) $(CFLAGS) $(SRCDIR)\wcddir.c WcdStack.obj : $(SRCDIR)\c3po\WcdStack.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\WcdStack.c Text.obj : $(SRCDIR)\c3po\Text.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\Text.c nameset.obj : $(SRCDIR)\c3po\nameset.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\nameset.c Error.obj : $(SRCDIR)\c3po\Error.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\Error.c intset.obj : $(SRCDIR)\c3po\intset.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\intset.c command.obj : $(SRCDIR)\c3po\command.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\command.c dirnode.obj : $(SRCDIR)\c3po\dirnode.c $(CC) $(CFLAGS) $(SRCDIR)\c3po\dirnode.c PACKAGE = wcd exec_prefix = $(prefix) bindir = $(exec_prefix)\bin datarootdir = $(prefix)\share datadir = $(datarootdir) !ifndef docsubdir docsubdir = $(PACKAGE)-$(VERSION) !endif docdir = $(datarootdir)\doc\$(docsubdir) status: .SYMBOLIC @echo CFLAGS = $(CFLAGS) $(prefix): .EXISTSONLY mkdir $@ $(bindir): $(prefix) .EXISTSONLY mkdir $@ $(datarootdir): $(prefix) .EXISTSONLY mkdir $@ $(datarootdir)\doc: $(datarootdir) .EXISTSONLY mkdir $@ $(docdir): $(datarootdir)\doc .EXISTSONLY mkdir $@ install: $(PROGRAM) $(DOCFILES) $(bindir) $(docdir) .SYMBOLIC copy $(PROGRAM) $(bindir) !ifeq PROGRAM wcdwin32.exe copy ..\wcd.bat $(bindir) copy ..\wcd_win95.bat $(bindir) !endif !ifeq PROGRAM wcdos2.exe copy ..\wcd.cmd $(bindir) !endif $(MAKE) install-doc $(SRCDIR)\man\man1\wcd.txt : $(SRCDIR)\man\man1\wcd.pod pod2text $< > $@ $(SRCDIR)\man\man1\wcd.$(HTMLEXT) : $(SRCDIR)\man\man1\wcd.pod pod2html --title="$(PACKAGE) $(VERSION) - Wherever Change Directory" $< > $@ txt: $(SRCDIR)\man\man1\wcd.txt .SYMBOLIC html: $(SRCDIR)\man\man1\wcd.$(HTMLEXT) .SYMBOLIC doc : $(DOCFILES) .SYMBOLIC install-doc: $(docdir) $(DOCFILES) .SYMBOLIC copy $(SRCDIR)\..\doc\faq.txt $(docdir) copy $(SRCDIR)\..\doc\whatsnew.txt $(docdir) copy $(SRCDIR)\..\doc\README.txt $(docdir) copy $(SRCDIR)\..\doc\problems.txt $(docdir) copy $(SRCDIR)\..\doc\todo.txt $(docdir) copy $(SRCDIR)\..\doc\INSTALL.txt $(docdir) copy $(SRCDIR)\..\doc\INST_DOS.txt $(docdir) copy $(SRCDIR)\..\doc\copying.txt $(docdir) copy $(SRCDIR)\man\man1\$(PACKAGE).txt $(docdir) copy $(SRCDIR)\man\man1\$(PACKAGE).$(HTMLEXT) $(docdir) uninstall: .SYMBOLIC -del $(bindir)\$(PROGRAM) !ifeq PROGRAM wcdwin32.exe -del $(bindir)\wcd.bat -del $(bindir)\wcd_win95.bat !endif !ifeq PROGRAM wcdos2.exe -del $(bindir)\wcd.cmd !endif -rmdir /s /q $(docdir) !ifndef VERSIONSUFFIX VERSIONSUFFIX = -bin !endif !ifndef ZIPFILE ZIPFILE = $(PACKAGE)$(VERSION)$(VERSIONSUFFIX).zip !endif !ifndef ZIPFILEDIR ZIPFILEDIR = ..\..\.. !endif ZIPOBJ = bin\$(PROGRAM) share\doc\$(docsubdir) $(ZIPOBJ_EXTRA) CURDISK = $+ $(%cdrive): $- CURDIR = $+ $(%cwd) $- !ifdef __OS2__ DISTCMD = dist.cmd !else DISTCMD = dist.bat !endif dist : .SYMBOLIC @%create $(DISTCMD) @%append $(DISTCMD) set PREFIX=$(prefix) @%append $(DISTCMD) set PREFIXDISK=%PREFIX:~0,2% @%append $(DISTCMD) %PREFIXDISK% @%append $(DISTCMD) cd $(prefix) @%append $(DISTCMD) unix2dos -k share\doc\$(docsubdir)\*.txt @%append $(DISTCMD) unix2dos -k share\doc\$(docsubdir)\*.$(HTMLEXT) @%append $(DISTCMD) zip -r $(ZIPFILE) $(ZIPOBJ) @%append $(DISTCMD) $(CURDISK) @%append $(DISTCMD) cd $(CURDIR) @%append $(DISTCMD) move $(prefix)\$(ZIPFILE) $(ZIPFILEDIR) .\$(DISTCMD) mostlyclean: .SYMBOLIC -del *~ -del *.bak -del *.obj -del *.ilk -del *.map -del *.err -del *.sym -del *.exe -del *.tmp -del $(DISTCMD) clean: mostlyclean .SYMBOLIC maintainer-clean: clean .SYMBOLIC -del $(DOCFILES) wcd-5.2.5/src/wcwidth.h0000664000175000017500000000213012151203455015121 0ustar waterlanwaterlan/* Copyright (C) 2013 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WCWIDTH_H #define _WCWIDTH_H #include int mk_wcwidth(wchar_t ucs); int mk_wcswidth(const wchar_t *pwcs, size_t n); int mk_wcwidth_cjk(wchar_t ucs); int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n); #if defined (_WIN32) && !defined(__CYGWIN__) int wcwidth(wchar_t ucs); int wcswidth(const wchar_t *pwcs, size_t n); #endif #endif wcd-5.2.5/src/Makefile0000664000175000017500000004025412321041154014743 0ustar waterlanwaterlan# # Copyright information # # Copyright (C) 2009-2014 Erwin Waterlander # Copyright (C) 2009 Jari Aalto # # License # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details at # Visit . # # Description # # This is a GNU Makefile that uses GNU compilers, linkers and cpp. The # platform specific issues are determined by the various OS teets that # rely on the uname(1) command and directory locations. # # Developer notes # # In order to clean generated POD files and manuals: # # make maintainer-clean # # Set additional flags for the build with variables CFLAGS_USER, # DEFS_USER and LDFLAGS_USER. ifneq (,) This makefile requires GNU Make. endif include version.mk .PHONY: status uninstall install install-doc dist dist-zip dist-tgz .PHONY: man txt html ps pdf mofiles tags merge .PRECIOUS: %.1 %.pod CC ?= gcc STATIC = STRIP = strip ENABLE_NLS = 1 PACKAGE = wcd EXT = .exe PROGRAM = $(PACKAGE)$(EXT) BIN = $(PROGRAM) PREFIX = /usr prefix = $(PREFIX) exec_prefix = $(prefix) bindir = $(exec_prefix)/bin datarootdir = $(prefix)/share datadir = $(datarootdir) docsubdir = $(PACKAGE)-$(VERSION) docdir = $(datarootdir)/doc/$(docsubdir) localedir = $(datarootdir)/locale sysconfdir = /etc # 1 = regular, 5 = conf, 6 = games, 8 = daemons mandir = $(datarootdir)/man man1dir = $(mandir)/man1 # On some systems (e.g. FreeBSD 4.10) GNU install is installed as `ginstall'. INSTALL = install # On some systems (e.g. GNU Win32) GNU mkdir is installed as `gmkdir'. MKDIR = mkdir INSTALL_BIN = $(INSTALL) -m 755 INSTALL_DATA = $(INSTALL) -m 644 INSTALL_SUID = $(INSTALL) -m 4755 INSTALL_OBJS_BIN = $(BIN) INSTALL_OBJS_MAN1 = man/man1/wcd.1 HTMLEXT = htm INSTALL_OBJS_DOC_INSTALL = \ ../doc/INSTALL.txt \ ../doc/UNIX.txt \ ../doc/RPM.txt INSTALL_OBJS_DOC_COPYING = \ ../doc/copying.txt # Documents for end users, not for developers: INSTALL_OBJS_DOC = \ ../doc/faq.txt \ ../doc/whatsnew.txt \ ../doc/README.txt \ ../doc/problems.txt \ ../doc/todo.txt \ $(INSTALL_OBJS_DOC_INSTALL) \ $(INSTALL_OBJS_DOC_COPYING) \ man/man1/$(PACKAGE).txt \ man/man1/$(PACKAGE).$(HTMLEXT) ifdef ENABLE_NLS POT = po/$(PACKAGE).pot POFILES = $(wildcard po/*.po) MOFILES = $(patsubst %.po,%.mo,$(POFILES)) NLSSUFFIX = -nls endif DOCFILES = man/man1/$(PACKAGE).txt man/man1/$(PACKAGE).$(HTMLEXT) MANPOTFILE = man/man1/wcd-man.pot MANPOFILES = $(wildcard man/*/man1/wcd.po) PODFILES = $(patsubst %.po,%.pod,$(MANPOFILES)) PODFILES_ALL = man/man1/wcd.pod $(PODFILES) MANFILES = $(patsubst %.pod,%.1,$(PODFILES)) TXTFILES = $(patsubst %.pod,%.txt,$(PODFILES_ALL)) HTMLFILES = $(patsubst %.pod,%.$(HTMLEXT),$(PODFILES_ALL)) PSFILES = $(patsubst %.pod,%.ps,$(PODFILES_ALL)) PDFFILES = $(patsubst %.pod,%.pdf,$(PODFILES_ALL)) CPP = cpp CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" DEF_UNIX = -DUNIX EXTRA_DEFS = VERSIONSUFFIX = -bin # Large File Support (LFS) LFS = 1 DEBUG = 0 # Enble Unicode for Cygwin ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) UCS = 1 UNINORM = 1 endif ZIPOBJ = bin/$(BIN) \ share/man/man1/$(PACKAGE).1 \ share/doc/$(docsubdir) \ $(ZIPOBJ_EXTRA) INSTALL_TARGETS = install-bin install-man install-doc ifdef ENABLE_NLS INSTALL_TARGETS += install-mo ZIPOBJ += share/locale/*/LC_MESSAGES/$(PACKAGE).mo endif # .......................................................... unicode ... ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UCS CFLAGS_UCS = -std=gnu99 WDEFS = -DWCD_UNICODE endif ifdef UNINORM UCS = 1 CFLAGS_UCS = -std=gnu99 WDEFS = -DWCD_UNICODE -DWCD_UNINORM LIB_UNISTRING = -lunistring endif ifdef UCS UCSSUFFIX = -ucs EXTRA_OBJ += matchw.o endif ZIPFILE = $(PACKAGE)-$(VERSION)$(VERSIONSUFFIX)$(NLSSUFFIX)$(UCSSUFFIX).zip TGZFILE = $(PACKAGE)-$(VERSION)$(VERSIONSUFFIX)$(NLSSUFFIX)$(UCSSUFFIX).tar.gz ifdef ENABLE_NLS NLSDEFS = -DENABLE_NLS -DLOCALEDIR=\"$(localedir)\" -DPACKAGE=\"$(PACKAGE)\" endif # ........................................................... curses ... # possible values: ncurses, curses, pdcurses, pdcursesw or ifdef UCS CURSES = ncursesw else CURSES = ncurses endif ifdef CURSES ifdef UCS EXTRA_OBJ += wcwidth.o endif endif ifneq (,$(CURSES)) DEFS_CURSES = -DWCD_USECURSES LIB_CURSES = -l$(CURSES) endif INCPREFIX=/usr ifeq ($(findstring MINGW,$(shell uname)),MINGW) ifeq ($(shell gcc -dumpmachine),i686-w64-mingw32) INCPREFIX=/mingw32 CFLAGS_COMPILER = -DWCD_COMPILER=MINGW32_W64 else ifeq ($(shell gcc -dumpmachine),x86_64-w64-mingw32) INCPREFIX=/mingw64 else INCPREFIX=/mingw endif endif endif # Each ncurses variant has its own include directory # ncurses (normal)/ncursesw (wide char)/ncursest (threads) ifeq ($(findstring ncurses,$(CURSES)),ncurses) ifneq ($(wildcard $(INCPREFIX)/include/$(CURSES)/curses.h),) INCFLAGS = -I$(INCPREFIX)/include/$(CURSES) -I$(INCPREFIX)/include endif ifeq ($(NCURSES_DEBUG), 1) LIB_CURSES = -l$(CURSES)_g endif else INCFLAGS = -I$(INCPREFIX)/include endif ifeq ($(CURSES),ncursesw) EXTRA_DEFS += -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED endif ifeq ($(CURSES),pdcursesw) EXTRA_DEFS += -DPDC_STATIC_BUILD -DPDC_WIDE endif # Local installation prefix of ncurses. #LOCAL_NCURSES = $(HOME) # #ifneq (, $(wildcard $(LOCAL_NCURSES)/include/ncurses.h)) # NCFLAG = -I$(LOCAL_NCURSES)/include # NLFLAG = -L$(LOCAL_NCURSES)/lib #endif # ......................................................... OS flags ... OS = ifndef OS ifeq (Linux, $(shell uname -s)) OS = linux endif endif ifndef OS ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) OS = cygwin endif endif ifeq (cygwin,$(OS)) ifdef ENABLE_NLS LIBS_EXTRA = -lintl -liconv -lmpr else LIBS_EXTRA = -lmpr endif LDFLAGS_EXTRA = -Wl,--enable-auto-import INSTALL_TARGETS += install-profile docsubdir = $(PACKAGE) VERSIONSUFFIX = -cygwin endif ifndef OS ifneq ($(DJGPP),) DEF_UNIX = OS = msdos endif endif ifndef OS ifeq ($(shell uname),OS/2) DEF_UNIX = OS = os/2 endif endif ifndef OS ifeq ($(findstring MINGW32,$(shell uname)),MINGW32) CC = gcc DEF_UNIX = OS = mingw32 endif endif ifndef OS ifeq ($(findstring MSYS,$(shell uname)),MSYS) CC = gcc DEF_UNIX = OS = msys PROGRAM = wcdmsys.exe LIBS_EXTRA = -lkernel32 -luser32 -lmpr VERSIONSUFFIX = -msys ifdef ENABLE_NLS LIBS_EXTRA += -lintl endif endif endif ifndef OS ifeq (FreeBSD, $(shell uname -s)) OS = freebsd endif endif ifeq (freebsd,$(OS)) # Running under FreeBSD ifdef ENABLE_NLS CFLAGS_OS = -I/usr/local/include LDFLAGS_EXTRA = -L/usr/local/lib LIBS_EXTRA = -lintl endif endif ifeq (Darwin, $(shell uname -s)) OS = Darwin ifdef ENABLE_NLS CFLAGS_OS = -I/usr/local/include LDFLAGS_EXTRA = -L/usr/local/lib LIBS_EXTRA = -lintl endif endif ifndef OS ifneq (, $(wildcard /opt/csw)) OS = sun endif endif ifeq (sun,$(OS)) # Running under SunOS/Solaris LIBS_EXTRA = -lintl endif ifndef OS ifeq (HP-UX, $(shell uname -s)) OS = hpux endif endif ifeq (hpux,$(OS)) # Running under HP-UX EXTRA_DEFS += -Dhpux -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED # These flags were for native HP compiler # CFLAGS_OS = -O -Aa endif ifndef OS OS = $(shell uname -s) endif # ............................................................ flags ... # Statically linking of a specific library can be done by linking # to a lib*.a library file instead a lib*.s* library file. # To link ncurses statically (if your system links by default # dynamically) comment the LDFLAGS line and add the 'libncurses.a' file # (often found as /usr/lib/libncurses.a) to the OBJS1 list. CFLAGS_USER = CFLAGS ?= -O2 CFLAGS += -Wall -Wextra -Wno-unused-parameter -Wconversion $(RPM_OPT_FLAGS) $(CPPFLAGS) $(CFLAGS_USER) EXTRA_CFLAGS = -Ic3po \ $(CFLAGS_VERSION) \ $(CFLAGS_OS) \ $(CFLAGS_UCS) \ $(CFLAGS_COMPILER) \ $(WDEFS) \ $(NLSDEFS) \ $(NCFLAG) \ $(INCFLAGS) \ -DDEBUG=$(DEBUG) ifeq ($(DEBUG), 1) EXTRA_CFLAGS += -g endif ifdef STATIC LDFLAG_STATIC = -static endif ifdef LFS EXTRA_CFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 endif ifdef ASCII_TREE EXTRA_CFLAGS += -DASCII_TREE endif LDFLAGS_USER = LDFLAGS = $(RPM_OPT_FLAGS) \ $(LDFLAGS_EXTRA) \ $(NLFLAG) \ $(LDFLAG_STATIC) \ $(LDFLAGS_USER) LIBS = $(LIB_CURSES) \ $(LIB_UNISTRING) \ $(LIBS_EXTRA) DEFS_USER = DEFS = $(DEF_UNIX) $(DEFS_CURSES) $(EXTRA_DEFS) $(DEFS_USER) # .......................................................... targets ... OBJS1 = \ wcd.o \ match.o \ stack.o \ nameset.o \ intset.o \ Error.o \ Text.o \ WcdStack.o \ dirnode.o \ display.o \ dosdir.o \ wfixpath.o \ wcddir.o \ matchl.o \ querycp.o \ $(EXTRA_OBJ) ifneq (,$(CURSES)) OBJS1 += colors.o \ graphics.o endif all: $(BIN) $(DOCFILES) $(MOFILES) $(INSTALL_OBJS_MAN1) $(MANFILES) $(MANPOTFILE) status: @echo "-- $(PACKAGE) Makefile settings begin --" @echo "OS = $(OS)" @echo "prefix = $(prefix)" @echo "EXT = $(EXT)" @echo "UNINORM = $(UNINORM)" @echo "STATIC = $(STATIC)" @echo "UCS = $(UCS)" @echo "ENABLE_NLS = $(ENABLE_NLS)" @echo "CURSES = $(CURSES)" @echo "DEFS = $(DEFS)" @echo "DEFS_CURSES = $(DEFS_CURSES)" @echo "EXTRA_DEFS = $(EXTRA_DEFS)" @echo "LDFLAGS = $(LDFLAGS)" @echo "LDFLAGS_EXTRA = $(LDFLAGS_EXTRA)" @echo "LIBS = $(LIBS)" @echo "CFLAGS = $(CFLAGS)" @echo "CFLAGS_OS = $(CFLAGS_OS)" @echo "EXTRA_CFLAGS = $(EXTRA_CFLAGS)" @echo "DEBUG = $(DEBUG)" @echo "-- $(PACKAGE) Makefile settings end --" $(BIN): $(OBJS1) $(MAKE) status $(CC) $(OBJS1) $(LDFLAGS) $(LIBS) -o $@ %.o: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEFS) -c $< -o $@ %.o: c3po/%.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(DEFS) -c $< -o $@ %.pdf: %.ps ps2pdf $< $@ $(MANPOTFILE) : man/man1/wcd.pod $(MAKE) -C man/man1 $(notdir $@) # WARNING: Backward-incompatibility since GNU make 3.82. # The pattern-specific variables and pattern rules are now applied in the # shortest stem first order instead of the definition order (variables # and rules with the same stem length are still applied in the definition # order). # In order to stay compatible with GNU make < 3.82 we put the rule with # the shortest stem first. po/%.po : $(POT) msgmerge -U $@ $(POT) --backup=numbered # change timestamp in case .po file was not updated. touch $@ %.po : man/man1/wcd.pod $(MAKE) -C man/man1 $(subst man/,../,$@) %.pod : %.po $(MAKE) -C man/man1 $(subst man/,../,$@) # Empty recipe to break circular dependency. man/man1/wcd.pod : ; %.1 : %.pod $(MAKE) -C man/man1 $(subst man/,../,$@) %.txt : %.pod pod2text $< > $@ %.ps : %.1 groff -man $< -T ps > $@ %.$(HTMLEXT) : %.pod pod2html --title="$(PACKAGE) $(VERSION) - Wherever Change Directory" $< > $@ man: man/man1/wcd.1 $(MANFILES) $(MANPOTFILE) html: $(HTMLFILES) txt: $(TXTFILES) ps: $(PSFILES) pdf: $(PDFFILES) mofiles: $(MOFILES) doc: $(DOCFILES) tags: $(POT) merge: $(POFILES) # Get new po files from the Translation Project. getpo: rsync -Lrtvz translationproject.org::tp/latest/wcd/ po/incoming/ getpoman: rsync -Lrtvz translationproject.org::tp/latest/wcd-man/ man/incoming/ %.mo : %.po msgfmt -c $< -o $@ $(POT) : wcd.c wcddir.c stack.c display.c graphics.c wfixpath.c c3po/Error.c xgettext -C --keyword=_ $+ -o $(POT) dist-zip: rm -f $(prefix)/$(ZIPFILE) cd $(prefix) ; zip -r $(ZIPFILE) $(ZIPOBJ) mv -f $(prefix)/$(ZIPFILE) ../.. dist-tgz: cd $(prefix) ; tar cvzf $(TGZFILE) $(ZIPOBJ) mv -f $(prefix)/$(TGZFILE) ../.. dist: dist-tgz strip: @echo "-- target: strip" $(STRIP) $(BIN) mostlyclean: @echo "-- target: mostlyclean" -rm -f \ $(BIN) \ *.exe \ *.o \ *.tmp \ */*.o \ po/*.mo \ ../*/*.bck \ ../*/*.bak \ ../*/*[#~] \ *.\#* \ */*.bak \ */*.bck \ */*~ \ */*/*.bak \ */*/*~ \ */*/*/*.bak \ */*/*/*~ \ *.stackdump clean: mostlyclean @echo "-- target: clean" rm -f man/man1/*.ps rm -f man/man1/*.pdf rm -f man/*/man1/*.ps rm -f man/*/man1/*.pdf distclean: clean @echo "-- target: distclean" maintainer-clean: distclean @echo "-- target: maintainer-clean:" rm -f man/man1/*.1 rm -f man/man1/*.txt rm -f man/man1/*.$(HTMLEXT) rm -f man/man1/dos2unix-man.pot rm -f man/*/man1/*.1 rm -f man/*/man1/*.txt rm -f man/*/man1/*.pod rm -f man/*/man1/*.$(HTMLEXT) # 'maintainer-clean' was 'realclean' in old GNU standards. realclean: maintainer-clean # Install shell function (sh) and alias (csh). # If DOTWCD=1, the shell scripts define WCDHOME=$HOME/.wcd install-profile: @echo "-- target: install-profile" mkdir -p $(DESTDIR)$(sysconfdir)/profile.d ifdef DOTWCD sed -e "s#BINDIR#$(bindir)#" -e "s/PROGRAM/$(BIN)/" -e 's/##//' etc/profile.d/wcd.sh > $(DESTDIR)$(sysconfdir)/profile.d/wcd.sh sed -e "s#BINDIR#$(bindir)#" -e "s/PROGRAM/$(BIN)/" -e 's/##//' etc/profile.d/wcd.csh > $(DESTDIR)$(sysconfdir)/profile.d/wcd.csh else sed -e "s#BINDIR#$(bindir)#" -e "s/PROGRAM/$(BIN)/" etc/profile.d/wcd.sh > $(DESTDIR)$(sysconfdir)/profile.d/wcd.sh sed -e "s#BINDIR#$(bindir)#" -e "s/PROGRAM/$(BIN)/" etc/profile.d/wcd.csh > $(DESTDIR)$(sysconfdir)/profile.d/wcd.csh endif # Old versions of install(1) don't support option -D. Use # mkdir instead. Was seen on HP-UX 11 and DOS DJGPP. install-mo: $(MOFILES) @echo "-- target: install-mo" $(foreach mofile, $(MOFILES), $(MKDIR) -p -m 755 $(DESTDIR)$(localedir)/$(basename $(notdir $(mofile)))/LC_MESSAGES ;) $(foreach mofile, $(MOFILES), $(INSTALL) -m 644 $(mofile) $(DESTDIR)$(localedir)/$(basename $(notdir $(mofile)))/LC_MESSAGES/$(PACKAGE).mo ;) install-doc: $(DOCFILES) @echo "-- target: install-doc" $(MKDIR) -p -m 755 $(DESTDIR)$(docdir) $(INSTALL_DATA) $(INSTALL_OBJS_DOC) $(DESTDIR)$(docdir) # Install translated manuals when they have been generated. $(foreach txtfile, $(wildcard man/*/man1/*.txt), $(MKDIR) -p -m 755 $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(txtfile),)) ;) $(foreach txtfile, $(wildcard man/*/man1/*.txt), $(INSTALL) -m 644 $(txtfile) $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(txtfile),)) ;) $(foreach htmlfile, $(wildcard man/*/man1/*.$(HTMLEXT)), $(MKDIR) -p -m 755 $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(htmlfile),)) ;) $(foreach htmlfile, $(wildcard man/*/man1/*.$(HTMLEXT)), $(INSTALL) -m 644 $(htmlfile) $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(htmlfile),)) ;) $(foreach pdffile, $(wildcard man/*/man1/*.pdf), $(MKDIR) -p -m 755 $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(pdffile),)) ;) $(foreach pdffile, $(wildcard man/*/man1/*.pdf), $(INSTALL) -m 644 $(pdffile) $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(pdffile),)) ;) $(foreach pdffile, $(wildcard man/man1/*.pdf), $(INSTALL) -m 644 $(pdffile) $(DESTDIR)$(docdir) ;) $(foreach psfile, $(wildcard man/*/man1/*.ps), $(MKDIR) -p -m 755 $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(psfile),)) ;) $(foreach psfile, $(wildcard man/*/man1/*.ps), $(INSTALL) -m 644 $(psfile) $(DESTDIR)$(docdir)/$(word 2,$(subst /, ,$(psfile),)) ;) $(foreach psfile, $(wildcard man/man1/*.ps), $(INSTALL) -m 644 $(psfile) $(DESTDIR)$(docdir) ;) install-man: $(INSTALL_OBJS_MAN1) $(MANFILES) $(MANPOTFILE) @echo "-- target: install-man" $(MKDIR) -p -m 755 $(DESTDIR)$(man1dir) $(INSTALL_DATA) $(INSTALL_OBJS_MAN1) $(DESTDIR)$(man1dir) $(foreach manfile, $(MANFILES), $(MKDIR) -p -m 755 $(DESTDIR)$(datarootdir)/$(dir $(manfile)) ;) $(foreach manfile, $(MANFILES), $(INSTALL_DATA) -m 644 $(manfile) $(DESTDIR)$(datarootdir)/$(dir $(manfile)) ;) install-bin: $(BIN) @echo "-- target: install-bin" $(MKDIR) -p -m 755 $(DESTDIR)$(bindir) $(INSTALL_BIN) $(INSTALL_OBJS_BIN) $(DESTDIR)$(bindir) install: $(INSTALL_TARGETS) uninstall: @echo "-- target: uninstall" -rm -f $(DESTDIR)$(bindir)/$(BIN) ifdef ENABLE_NLS $(foreach mofile, $(MOFILES), rm -f $(DESTDIR)$(localedir)/$(basename $(notdir $(mofile)))/LC_MESSAGES/$(PACKAGE).mo ;) endif -rm -f $(DESTDIR)$(mandir)/man1/$(PACKAGE).1 -rm -rf $(DESTDIR)$(docdir) # End of file wcd-5.2.5/src/match.h0000664000175000017500000000201411640707270014553 0ustar waterlanwaterlan/* match.h Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, Kai Uwe Rommel and Igor Mandrichenko. This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, see the file COPYING. */ #ifndef _MATCH_H #define _MATCH_H /* Set up portability */ #include "tailor.h" /* stat() bug for Borland, Watcom, and Atari ST MiNT on * TOS filesystems: returns 0 for wildcards! (returns 0xffffffff on Minix * filesystem or U: drive under Atari MiNT) */ #define WILD_STAT_BUG /**************/ /* Typedefs */ /**************/ typedef unsigned char uch; /* code assumes unsigned bytes; these type- */ typedef unsigned short ush; /* defs replace byte/UWORD/ULONG (which are */ typedef unsigned long ulg; /* predefined on some systems) & match zip */ #ifdef __cplusplus extern "C" { #endif int dd_match(const char *string, const char *pattern, int ignore_case); int dd_iswild(const char *p); #ifdef __cplusplus } #endif #endif /* _MATCH_H */ wcd-5.2.5/src/graphics.h0000664000175000017500000000343612106261435015264 0ustar waterlanwaterlan/* Copyright (C) 2000-2013 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _WCD_GRAPHICS_H #define _WCD_GRAPHICS_H dirnode createRootNode(void); void buildTreeFromFile(char *filename, dirnode d); void buildTreeFromNameset(nameset set, dirnode d); void setXYTree(dirnode d, const int *graphics_mode); void dumpTree(dirnode d, const int *graphics_mode); char *selectANode(dirnode tree, int *use_HOME, int ignore_case, int graphics_mode,int ignore_diacritics); void setFold(dirnode n, c3po_bool f, int *ymax); #define WCD_GRAPH_NO 0 /* no graphics */ #define WCD_GRAPH_NORMAL 1 /* graphics mode */ #define WCD_GRAPH_DUMP 2 /* dump graphics */ #define WCD_GRAPH_ALT 4 /* alternative navigating */ #define WCD_GRAPH_COLOR 8 /* colors */ #define WCD_GRAPH_CENTER 16 /* center current directory */ #define WCD_GRAPH_ASCII 32 /* draw tree with ASCII characters */ #define WCD_GRAPH_COMPACT 64 /* draw compact tree */ #define WCD_GRAPH_CJK 128 /* East-Asian CJK font with double width line drawing symbols */ #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) int wcd_wcwidth(wchar_t c); int wcd_wcswidth(const wchar_t *pwcs, size_t n); #endif #endif wcd-5.2.5/src/colors.c0000664000175000017500000000454712066325113014763 0ustar waterlanwaterlan/*------------------------------------------------------------------*\ | This source code is copied from PDCurses 3.1 demos\tui.c and tui.h | | | | Author : P.J. Kunst | | Date : 25-02-93 | | colors.c is in the public domain | | | | | | Billy Chen 12:49 Monday, 4 June, 2007 | \*------------------------------------------------------------------*/ #ifdef WCD_USECURSES #include /* MOUSE_MOVED in PDCurses' curses.h conflicts with MOUSE_MOVED in wincon.h */ #ifdef MOUSE_MOVED # undef MOUSE_MOVED #endif #include "colors.h" void initcolor(void) { #ifdef A_COLOR if (has_colors()) start_color(); /* foreground, background */ #if 1 init_pair((short)(MENU_COLOR & ~A_ATTR), (short)COLOR_WHITE, (short)COLOR_BLUE); init_pair((short)(BODY_COLOR & ~A_ATTR), (short)COLOR_WHITE, (short)COLOR_RED); #else init_pair((short)(MENU_COLOR & ~A_ATTR), (short)COLOR_WHITE, (short)COLOR_RED); init_pair((short)(BODY_COLOR & ~A_ATTR), (short)COLOR_CYAN, (short)COLOR_BLUE); #endif #endif } void setcolor(WINDOW *win, chtype color) { chtype attr = color & A_ATTR; /* extract Bold, Reverse, Blink bits */ #ifdef A_COLOR attr &= ~A_REVERSE; /* ignore reverse, use colors instead! */ wattrset(win, COLOR_PAIR(color & A_CHARTEXT) | attr); #else attr &= ~A_BOLD; /* ignore bold, gives messy display on HP-UX */ wattrset(win, attr); #endif } void colorbox(WINDOW *win, chtype color, int hasbox) { int maxy; #ifndef PDCURSES int maxx; #endif chtype attr = color & A_ATTR; /* extract Bold, Reverse, Blink bits */ setcolor(win, color); #ifdef A_COLOR if (has_colors()) wbkgd(win, COLOR_PAIR(color & A_CHARTEXT) | (attr & ~A_REVERSE)); else #endif wbkgd(win, color); werase(win); #ifdef PDCURSES maxy = getmaxy(win); #else getmaxyx(win, maxy, maxx); #endif if (hasbox && (maxy > 2)) box(win, (chtype)0, (chtype)0); touchwin(win); wrefresh(win); } #endif /* WCD_USECURSES */ wcd-5.2.5/src/stack.h0000664000175000017500000000211011273517352014563 0ustar waterlanwaterlan/* Copyright (C) 1997-1998 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _STACK_H #define _STACK_H #define WCD_STACK_SIZE 10 int stack_read(WcdStack ws,char *stackfilename); int stack_print(WcdStack ws, int use_numbers, int use_stdout); int stack_write(WcdStack ws,char *stackfilename); int stack_add(WcdStack ws, char *dir); char* stack_push(WcdStack ws, int push_ntimes); char* stack_pop(WcdStack ws, int pop_ntimes); #endif wcd-5.2.5/src/querycp.h0000664000175000017500000000012212066325113015140 0ustar waterlanwaterlan/* querycp.h is in the public domain */ unsigned short query_con_codepage(void); wcd-5.2.5/src/matchl.c0000664000175000017500000005762212035632042014732 0ustar waterlanwaterlan/*--------------------------------------------------------------------------- match.c The match() routine recursively compares a string to a "pattern" (regular expression), returning TRUE if a match is found or FALSE if not. This version is specifically for use with unzip.c: as did the previous match() routines from SEA and J. Kercheval, it leaves the case (upper, lower, or mixed) of the string alone, but converts any uppercase characters in the pattern to lowercase if indicated by the global var pInfo->lcflag (which is to say, string is assumed to have been converted to lowercase already, if such was necessary). GRR: reversed order of text, pattern in matche() (now same as match()); added ignore_case/ic flags, Case() macro. PK: replaced matche() with recmatch() from Zip, modified to have an ignore_case argument; replaced test frame with simpler one. --------------------------------------------------------------------------- matchl.c : A modified version of match.c. EW: * Option to ignore diacritics. --------------------------------------------------------------------------- Copyright on recmatch() from Zip's util.c (although recmatch() was almost certainly written by Mark Adler...ask me how I can tell :-) ): Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly, Kai Uwe Rommel and Igor Mandrichenko. Copyright (C) 2011 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA --------------------------------------------------------------------------- Info-ZIP's home WWW site is listed on Yahoo and is at: http://www.cdrom.com/pub/infozip/ e-mail : Zip-Bugs@lists.wku.edu --------------------------------------------------------------------------- Match the pattern (wildcard) against the string (fixed): match(string, pattern, ignore_case); returns TRUE if string matches pattern, FALSE otherwise. In the pattern: `*' matches any sequence of characters (zero or more) `?' matches any character [SET] matches any character in the specified set, [!SET] or [^SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like ``character hyphen character'' (as in 0-9 or A-Z). [0-9a-zA-Z_] is the minimal set of characters allowed in the [..] pattern construct. Other characters are allowed (ie. 8 bit characters) if your system will support them. To suppress the special syntactic significance of any of ``[]*?!^-\'', in- side or outside a [..] construct and match the character exactly, precede it with a ``\'' (backslash). Note that "*.*" and "*." are treated specially under MS-DOS if DOSWILD is defined. See the DOSWILD section below for an explanation. ---------------------------------------------------------------------------*/ #include #include #include "querycp.h" #include "matchl.h" /* define ToLower() in here (for Unix, define ToLower * to be macro (using isupper()); otherwise just use * tolower() */ #define Case(x) (ic? tolower(x) : (int)(x)) static uch match_C[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; static uch match_CP437[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x43, 0x75, 0x65, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x41, 0x41, 0x45, 0x91, 0x92, 0x6f, 0x6f, 0x6f, 0x75, 0x75, 0x79, 0x47, 0x55, 0x63, 0x9c, 0x9d, 0x9e, 0x9f, 0x61, 0x69, 0x6f, 0x75, 0x6e, 0x4e, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; static uch match_CP850[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x43, 0x75, 0x65, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x41, 0x41, 0x45, 0x91, 0x92, 0x6f, 0x6f, 0x6f, 0x75, 0x75, 0x79, 0x4f, 0x55, 0x6f, 0x9c, 0x4f, 0x9e, 0x9f, 0x61, 0x69, 0x6f, 0x75, 0x6e, 0x4e, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0x41, 0x41, 0x41, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x61, 0x41, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0x45, 0x45, 0x45, 0x69, 0x49, 0x49, 0x49, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x49, 0xdf, 0x4f, 0xe1, 0x4f, 0x4f, 0x6f, 0x4f, 0xe6, 0xe7, 0xe8, 0x55, 0x55, 0x55, 0x79, 0x59, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; static uch match_CP852[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x43, 0x75, 0x65, 0x61, 0x61, 0x75, 0x63, 0x63, 0x88, 0x65, 0x4f, 0x6f, 0x69, 0x5a, 0x41, 0x43, 0x45, 0x4c, 0x6c, 0x6f, 0x6f, 0x4c, 0x6c, 0x53, 0x73, 0x4f, 0x55, 0x54, 0x74, 0x9d, 0x9e, 0x63, 0x61, 0x69, 0x6f, 0x75, 0x41, 0x61, 0x5a, 0x7a, 0x45, 0x65, 0xaa, 0x7a, 0x43, 0x73, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0x41, 0x41, 0x45, 0x53, 0xb9, 0xba, 0xbb, 0xbc, 0x5a, 0x7a, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x41, 0x61, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0x64, 0x44, 0x44, 0x45, 0x64, 0x4e, 0x49, 0x49, 0x65, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x55, 0xdf, 0x4f, 0xe1, 0x4f, 0x4e, 0x6e, 0x6e, 0x53, 0x73, 0x52, 0x55, 0x72, 0x55, 0x79, 0x59, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x75, 0x52, 0x72, 0xfe, 0xff }; static uch match_CP1250[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x53, 0x8b, 0x53, 0x54, 0x5a, 0x5a, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x73, 0x9b, 0x73, 0x74, 0x7a, 0x7a, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0x41, 0xa6, 0xa7, 0xa8, 0xa9, 0x53, 0xab, 0xac, 0xad, 0xae, 0x5a, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0x61, 0x73, 0xbb, 0x4c, 0xbd, 0x6c, 0x7a, 0x52, 0x41, 0x41, 0x41, 0x41, 0x4c, 0x43, 0x43, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x44, 0x44, 0x4e, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x52, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x72, 0x61, 0x61, 0x61, 0x61, 0x6c, 0x63, 0x63, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x64, 0x64, 0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x72, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0xff }; static uch match_CP1252[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x53, 0x8b, 0x8c, 0x8d, 0x5a, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x73, 0x9b, 0x9c, 0x9d, 0x7a, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xc6, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe6, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0xf0, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79 }; static uch match_CP28591[256] = /* ISO-8859-1 */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xc6, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe6, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0xf0, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79 }; static uch match_CP28592[256] = /* ISO-8859-2 */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x41, 0xa2, 0xa3, 0xa4, 0x4c, 0x53, 0xa7, 0xa8, 0x53, 0x53, 0x54, 0x5a, 0xad, 0x5a, 0x5a, 0xb0, 0x61, 0xb2, 0xb3, 0xb4, 0x6c, 0x73, 0xb7, 0xb8, 0x73, 0x73, 0x74, 0x7a, 0xbd, 0x7a, 0x7a, 0x52, 0x41, 0x41, 0x41, 0x41, 0x4c, 0x43, 0x43, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x44, 0x44, 0x4e, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x52, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x72, 0x61, 0x61, 0x61, 0x61, 0x6c, 0x63, 0x63, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x64, 0x64, 0x6e, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x72, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0xff }; /* dd_matchl() is a shell to recmatch() to return only Boolean values. */ static int recmatchl(uch *pattern, uch *string, int ignore_case, uch *CPTable); int dd_matchl(const char *string,const char *pattern,int ignore_case, int ignore_diacritics) { #if (defined(__MSDOS__) && defined(DOSWILD)) char *dospattern; int j = strlen(pattern); #endif int code_page; uch *CPTable; if (ignore_diacritics == 0) { CPTable = match_C; } else { code_page = (int)query_con_codepage(); switch (code_page) { case 437: /* DOS Latin-US (United States) */ CPTable = match_CP437; break; case 850: /* DOS Latin-1 (Western European) */ CPTable = match_CP850; break; case 852: /* DOS Latin-2 (Eastern European) */ CPTable = match_CP852; break; case 1250: /* Windows Latin-2 (Eastern European) */ CPTable = match_CP1250; break; case 1252: /* Windows Latin-1 (Western European) */ CPTable = match_CP1252; break; case 28591: /* ISO Latin-1 (Western European) */ CPTable = match_CP28591; break; case 28592: /* ISO Latin-2 (Eastern European) */ CPTable = match_CP28592; break; default: /* C */ CPTable = match_C; } } #if (defined(__MSDOS__) && defined(DOSWILD)) /*--------------------------------------------------------------------------- Optional MS-DOS preprocessing section: compare last three chars of the wildcard to "*.*" and translate to "*" if found; else compare the last two characters to "*." and, if found, scan the non-wild string for dots. If in the latter case a dot is found, return failure; else translate the "*." to "*". In either case, continue with the normal (Unix-like) match procedure after translation. (If not enough memory, default to normal match.) This causes "a*.*" and "a*." to behave as MS-DOS users expect. ---------------------------------------------------------------------------*/ if ((dospattern = (char *)malloc(j+1)) != NULL) { strcpy(dospattern, pattern); if (!strcmp(dospattern+j-3, "*.*")) { dospattern[j-2] = '\0'; /* nuke the ".*" */ } else if (!strcmp(dospattern+j-2, "*.")) { char *p = strchr(string, '.'); if (p) { /* found a dot: match fails */ free(dospattern); return 0; } dospattern[j-1] = '\0'; /* nuke the end "." */ } j = recmatchl((uch *)dospattern, (uch *)string, ignore_case, CPTable); free(dospattern); return j == 1; } else #endif /* __MSDOS__ && DOSWILD */ return recmatchl((uch *)pattern, (uch *)string, ignore_case, CPTable) == 1; } static int recmatchl(uch *p,uch *s,int ic, uch *CPTable) /* uch *p; sh pattern to match */ /* uch *s; string to which to match it */ /* int ic; true for case insensitivity */ /* Recursively compare the sh pattern p with the string s and return 1 if * they match, and 0 or 2 if they don't or if there is a syntax error in the * pattern. This routine recurses on itself no more deeply than the number * of characters in the pattern. */ { int c; /* pattern char or start of range in [-] loop */ /* Get first character, the pattern for new recmatch calls follows */ c = *p++; /* If that was the end of the pattern, match if string empty too */ if (c == 0) return *s == 0; /* '?' (or '%') matches any character (but not an empty string) */ #ifdef VMS if (c == '%') /* GRR: make this conditional, too? */ #else /* !VMS */ if (c == '?') #endif /* ?VMS */ return *s ? recmatchl(p, s + 1, ic, CPTable) : 0; /* '*' matches any number of characters, including zero */ #ifdef AMIGA if (c == '#' && *p == '?') /* "#?" is Amiga-ese for "*" */ c = '*', p++; #endif /* AMIGA */ if (c == '*') { if (*p == 0) return 1; for (; *s; s++) if ((c = recmatchl(p, s, ic, CPTable)) != 0) return (int)c; return 2; /* 2 means give up--match will return false */ } #ifndef VMS /* No bracket matching in VMS */ /* Parse and process the list of characters and ranges in brackets */ if (c == '[') { int e; /* flag true if next char to be taken literally */ uch *q; /* pointer to end of [-] group */ int r; /* flag true to match anything but the range */ if (*s == 0) /* need a character to match */ return 0; p += (r = (*p == '!' || *p == '^')); /* see if reverse */ for (q = p, e = 0; *q; q++) /* find closing bracket */ if (e) e = 0; else if (*q == '\\') /* GRR: change to ^ for MS-DOS, OS/2? */ e = 1; else if (*q == ']') break; if (*q != ']') /* nothing matches if bad syntax */ return 0; for (c = 0, e = *p == '-'; p < q; p++) { /* go through the list */ if (e == 0 && *p == '\\') /* set escape flag if \ */ e = 1; else if (e == 0 && *p == '-') /* set start of range if - */ c = *(p-1); else { int cc = Case(*s); if (*(p+1) != '-') for (c = c ? c : *p; c <= *p; c++) /* compare range */ if (Case(CPTable[c]) == CPTable[cc]) return r ? 0 : recmatchl(q + 1, s + 1, ic, CPTable); c = e = 0; /* clear range, escape flags */ } } return r ? recmatchl(q + 1, s + 1, ic, CPTable) : 0; /* bracket match failed */ } #endif /* !VMS */ /* if escape ('\'), just compare next character */ if (c == '\\' && (c = *p++) == 0) /* if \ at end, then syntax error */ return 0; /* just a character--compare it */ return Case(CPTable[c]) == Case(CPTable[*s]) ? recmatchl(p, ++s, ic, CPTable) : 0; } /* end function recmatch() */ #ifdef WILD_STAT_BUG /* Turbo/Borland C, Watcom C, VAX C, Atari MiNT libs */ int dd_iswildl(const char *p) { for (; *p; ++p) if (*p == '\\' && *(p+1)) ++p; #ifdef VMS else if (*p == '%' || *p == '*') #else /* !VMS */ #ifdef AMIGA else if (*p == '?' || *p == '*' || (*p=='#' && p[1]=='?') || *p == '[') #else /* !AMIGA */ else if (*p == '?' || *p == '*' || *p == '[') #endif /* ?AMIGA */ #endif /* ?VMS */ return 1; return 0; } /* end function dd_iswild() */ #endif /* WILD_STAT_BUG */ #ifdef TEST_MATCH /* replaced gets() with fgets(). gets() can be dangerous, has known to give security problems, because it does not check for bufferoverflow. Erwin Waterlander, Jul 22 1998 */ #define put(s) { fputs(s, stdout); fflush(stdout); } void main(void) { char pat[256], str[256]; for (;;) { put("Pattern (return to exit): "); fgets(pat,100,stdin); if (!pat[0]) break; for (;;) { put("String (return for new pattern): "); fgets(str,100,stdin); if (!str[0]) break; printf("Case sensitive: %s insensitive: %s\n", dd_matchl(str, pat, 0) ? "YES" : "NO", dd_matchl(str, pat, 1) ? "YES" : "NO"); } } exit(0); } #endif /* TEST_MATCH */ wcd-5.2.5/src/man/0000775000175000017500000000000012345660655014074 5ustar waterlanwaterlanwcd-5.2.5/src/man/man1/0000775000175000017500000000000012345660660014724 5ustar waterlanwaterlanwcd-5.2.5/src/man/man1/wcd.10000664000175000017500000015101212345660656015570 0ustar waterlanwaterlan.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.20) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "wcd 1" .TH wcd 1 "2014-05-27" "wcd" "2014-06-10" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" wcd \- Wherever Change Directory .PP chdir for DOS and Unix .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& wcd [options] [directory] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SS "Overview" .IX Subsection "Overview" Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search. .PP Wcd was modeled after Norton Change Directory (\s-1NCD\s0). \s-1NCD\s0 appeared first in \&\fIThe Norton Utilities, Release 4\fR, for \s-1DOS\s0 in 1987, published by Peter Norton. .PP Wcd has been ported to different command-line shells: \s-1DOS\s0 command.com, Windows cmd.exe and PowerShell, \s-1OS/2\s0 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system. .PP Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section \s-1LOCALIZATION.\s0 .PP See section \s-1INSTALLATION\s0 how to setup wcd for personal use. .SS "Basic use" .IX Subsection "Basic use" By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name. .PP For instance this command will change to directory to the current user's \&\f(CW\*(C`/home/user/Desktop\*(C'\fR: .PP .Vb 1 \& wcd Desk .Ve .PP When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one). .SS "Wildcards" .IX Subsection "Wildcards" Wcd supports following wildcards: .PP .Vb 4 \& * matches any sequence of characters (zero or more) \& ? matches any character \& [SET] matches any character in the specified set, \& [!SET] or [^SET] matches any character not in the specified set. .Ve .PP A set is composed of characters or ranges; a range looks like \&\fIcharacter hyphen character\fR as in \f(CW\*(C`0\-9\*(C'\fR or \f(CW\*(C`A\-Z\*(C'\fR. The \&\f(CW\*(C`[0\-9a\-zA\-Z_]\*(C'\fR is the minimal set of characters allowed in the \&\f(CW\*(C`[..]\*(C'\fR pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of \f(CW\*(C`[]*?!^\-\e\*(C'\fR inside or outside a \f(CW\*(C`[..]\*(C'\fR construct and match the character exactly, precede the character with a backslash (\f(CW\*(C`\e\*(C'\fR) marker. .PP Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with \*(L"top\*(R": .PP .Vb 1 \& wcd *top .Ve .PP Match directories that have \*(L"top\*(R" anywhere in the name: .PP .Vb 1 \& wcd *top* .Ve .PP Match any directory name that begins with \*(L"a\*(R", \*(L"b\*(R" or \*(L"c\*(R": .PP .Vb 1 \& wcd [a\-c]* .Ve .PP It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with \*(L"Desk\*(R" and which path matches \fI*me/Desk*\fR. .PP .Vb 1 \& wcd me/Desk .Ve .PP It is allowed to type any kind of expression with slashes and wildcards. E.g.: .PP .Vb 1 \& wcd src*/*1?/a*2 .Ve .SS "Other uses" .IX Subsection "Other uses" If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the \fB\-w\fR option. .PP The interactive directory tree browser can be started by using option \fB\-g\fR. .PP .Vb 1 \& wcd \-g .Ve .PP Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network. .PP Wcd can also change to directories that are not in the treedata file. E.g.: .PP .Vb 1 \& wcd .. .Ve .PP If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option \fB\-k\fR. .PP Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options \fB\-z\fR, \fB\-\fR, \fB+\fR and \&\fB=\fR. .PP In multi-user environments option \fB\-u\fR can be used to change to directories of other users. .PP On \s-1DOS\s0 and Windows systems it does not matter if you use a slash \*(L"/\*(R" or a backslash \*(L"\e\*(R" as a directory separator. .PP It is possible on \s-1DOS\s0 and Windows systems to change drive and directory in one go by preceding the directory name with the drive name. .PP .Vb 1 \& wcd d:games .Ve .SS "Windows \s-1UNC\s0 paths" .IX Subsection "Windows UNC paths" The Windows versions (Command Prompt, PowerShell, \s-1MSYS,\s0 zsh, cygwin) support Windows \s-1SMB LAN UNC\s0 paths without drive letter such as \&\f(CW\*(C`\e\eservername\esharename\*(C'\fR. Wcd for Windows Command Prompt makes use of the \*(L"pushd\*(R" command to automatically map a \s-1UNC\s0 path to a drive letter. In Windows PowerShell, \s-1MSYS,\s0 zsh and Cygwin \s-1UNC\s0 paths are fully supported. The current working directory can be a \s-1UNC\s0 path. .SS "Interfaces" .IX Subsection "Interfaces" Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time. .PP The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by . This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable. .PP The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the \&\fB\-N\fR option. .PP The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a \fIvim\fR\|(1) like navigation and search method. It can be activated with option \fB\-g\fR. .PP By using the \fB\-o\fR option one can always fall back to the stdin/stdout interface. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-a\fR" 4 .IX Item "-a" Add current path to the default treedata file. .Sp Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases. .IP "\fB\-aa\fR" 4 .IX Item "-aa" Add current and all parent paths to the default treedata file. .IP "\fB\-A \s-1PATH\s0\fR" 4 .IX Item "-A PATH" Scan directory tree from \fI\s-1PATH\s0\fR and append to the default treedata file. Examples: .Sp .Vb 3 \& wcd \-A . \& wcd \-A /home \-A /etc \& wcd \-A d: \-A e: \-A \e\eserver\eshare .Ve .Sp On Windows one can scan all shared directories of a Windows \s-1LAN\s0 server by typing something like: \f(CW\*(C`wcd \-A \e\eservername\*(C'\fR. .Sp See also option \fB\-S\fR and \fB\-s\fR and \fB\-E\fR. .IP "\fB\-b\fR" 4 .IX Item "-b" Ban current path. .Sp Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories. .Sp The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path. .Sp Banned paths are not excluded from scanning the disk. To do that use option \&\fB\-xf\fR. .IP "\fB\-c, \-\-direct\-cd\fR" 4 .IX Item "-c, --direct-cd" Direct \s-1CD\s0 mode. By default wcd works as follows: .Sp .Vb 2 \& 1. Try to find a match in the treedata file(s) \& 2. If no match, try to open the directory you typed. .Ve .Sp In direct \s-1CD\s0 mode wcd works in reversed order. .Sp .Vb 2 \& 1. Try to open the directory you typed. \& 2. If not, try to find a match in the treedata file(s). .Ve .IP "\fB\-d \s-1DRIVE\s0\fR" 4 .IX Item "-d DRIVE" Set drive for stack and go file (\s-1DOS\s0 only). .Sp The stack file and the go-script are by default stored on drive C: if environment variable \fI\s-1HOME\s0\fR is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options \fB\-\fR, \&\fB+\fR and \fB=\fR. .IP "\fB\-e\fR" 4 .IX Item "-e" Add current path to the extra treedata file. .Sp Use this option to quickly add the current path to the extra treedata file. .IP "\fB\-ee\fR" 4 .IX Item "-ee" Add current and all parent paths to extra treedata file. .IP "\fB\-E \s-1PATH\s0\fR" 4 .IX Item "-E PATH" Scan directory tree from \fI\s-1PATH\s0\fR and append to Extra treedata file. See also options \fB\-A\fR and \fB\-S\fR. .IP "\fB\-f \s-1FILE\s0\fR" 4 .IX Item "-f FILE" Read treedata file \fI\s-1FILE\s0\fR. Do not read the default treedata file. .IP "\fB+f \s-1FILE\s0\fR" 4 .IX Item "+f FILE" Read treedata file \fI\s-1FILE\s0\fR in addition to the default treedata file. .IP "\fB\-g\fR" 4 .IX Item "-g" Graphical interface (only in version with curses interface). .Sp Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a \fIvim\fR\|(1) like navigation and search method. .Sp If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files. .Sp If a search string is given the match list is presented as a directory tree. .Sp The default tree layout is similar to the tree layout of the original \s-1NCD\s0 on \&\s-1DOS.\s0 The difference in layout is that in \s-1NCD\s0 all directories of a same depth level were vertically aligned over the whole tree. This was possible in \s-1NCD,\s0 because the maximum width of a directory name in \s-1DOS\s0 was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch. .Sp The navigation behaviour in Wcd is exactly the same as in the original \s-1NCD.\s0 For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree. .Sp See options \fB\-Ta\fR, \fB\-TC\fR, and \fB\-Tc\fR to change the navigation behaviour. .IP "\fB\-gd\fR" 4 .IX Item "-gd" Dump the treedata files as a tree to stdout. .IP "\fB\-G \s-1PATH\s0\fR" 4 .IX Item "-G PATH" Write go-script in directory \fI\s-1PATH\s0\fR. For instance on Unix, \f(CW\*(C`wcd \-G PATH\*(C'\fR will write a go-script \fBPATH/wcd.go\fR. .IP "\fB\-GN, \-\-no\-go\-script\fR" 4 .IX Item "-GN, --no-go-script" Do not create go-script. This option can be used in combination with the option \fB\-j\fR if one does not want wcd to create a go-script. .IP "\fB\-h, \-\-help\fR" 4 .IX Item "-h, --help" Show help and exit. .IP "\fB\-i, \-\-ignore\-case\fR" 4 .IX Item "-i, --ignore-case" Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default. .IP "\fB+i, \-\-no\-ignore\-case\fR" 4 .IX Item "+i, --no-ignore-case" Regard case. See also option \fB\-i\fR. .IP "\fB\-I, \-\-ignore\-diacritics\fR" 4 .IX Item "-I, --ignore-diacritics" Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: \&\s-1CP437, CP850, CP852, CP1250, CP1252, ISO\-8859\-1, ISO\-8859\-2,\s0 and Unicode Latin\-1, Latin Extended-A, and Latin Extended-B. See also .IP "\fB+I, \-\-no\-ignore\-diacritics\fR" 4 .IX Item "+I, --no-ignore-diacritics" Regard diacritics (default). See also option \fB\-I\fR. .IP "\fB\-j, \-\-just\-go\fR" 4 .IX Item "-j, --just-go" Just go mode. .Sp In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on. .Sp Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a \s-1POSIX\s0 compatible shell: .Sp .Vb 4 \& wcd () \& { \& cd "$($HOME/bin/wcd.exe \-j $@)" \& } .Ve .Sp When you are using an old shell that doesn't support \*(L"$()\*(R" command substitution you have to use old style command substitution with back-quotes. .Sp .Vb 4 \& wcd () \& { \& cd "\`$HOME/bin/wcd.exe \-j $@\`" \& } .Ve .Sp On Windows systems, if one is running 4NT shell, one could make the following alias: .Sp .Vb 1 \& alias wcd \`cd %@execstr[wcdwin32.exe \-z 0 \-j %1]\` .Ve .Sp This method eliminates the need of the go-script, so one can use option \fB\-GN\fR in combination with \fB\-j\fR. .IP "\fB\-k, \-\-keep\-paths\fR" 4 .IX Item "-k, --keep-paths" Keep paths. .Sp Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off. .IP "\fB\-K, \-\-color\fR" 4 .IX Item "-K, --color" Use colors in graphical mode. .IP "\fB\-l \s-1ALIAS\s0\fR" 4 .IX Item "-l ALIAS" Name the current path with \fI\s-1ALIAS\s0\fR. Wcd places the current path with alias \&\fI\s-1ALIAS\s0\fR in the alias file. Aliases are case sensitive. .IP "\fB\-m \s-1DIR\s0\fR" 4 .IX Item "-m DIR" Make directory and add to treedata file. .IP "\fB\-L, \-\-license\fR" 4 .IX Item "-L, --license" Print the distribution license. .IP "\fB\-M \s-1DIR\s0\fR" 4 .IX Item "-M DIR" Make directory and add to extra treedata file. .IP "\fB\-n \s-1PATH\s0\fR" 4 .IX Item "-n PATH" Read relative treedata file from \fI\s-1PATH\s0\fR. .Sp Do not read the default treedata file. The relative treedata file should already have been created using the wcd \fB+S\fR option. \&\fI\s-1PATH\s0\fR may also point to a file directly. .Sp An example. Suppose another system has been mounted to mount point \&\f(CW\*(C`/mnt/network\*(C'\fR: .Sp .Vb 1 \& wcd \-n /mnt/network src .Ve .Sp Wcd opens the relative treedata file in \f(CW\*(C`/mnt/network/\*(C'\fR. The file contains the paths relative from that point. .IP "\fB+n \s-1PATH\s0\fR" 4 .IX Item "+n PATH" Read relative treedata file in addition to the default treedata file. See option \fB\-n\fR. .IP "\fB\-N, \-\-numbers\fR" 4 .IX Item "-N, --numbers" Use numbers instead of letters. .Sp Wcd with a conio or curses based interface (see section \s-1INTERFACE\s0) presents a match list by default numbered with letters. When the \fB\-N\fR option is used the match list is numbered with numbers. Regardless of the \fB\-N\fR option one can type a letter or numbers to make a selection from the list of matches. .IP "\fB\-o\fR" 4 .IX Item "-o" Use stdin/stdout interface. .Sp When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the \&\fB\-o\fR option. .IP "\fB\-od, \-\-to\-stdout\fR" 4 .IX Item "-od, --to-stdout" Dump all matches to stdout. .IP "\fB\-q, \-\-quiet\fR" 4 .IX Item "-q, --quiet" Quieter operation. Printing of the final match is suppressed. .IP "\fB\-r \s-1DIR\s0\fR" 4 .IX Item "-r DIR" Remove directory and remove from the treedata file. .Sp If the directory is empty, wcd will remove it, and try to remove it from the treedata file. .IP "\fB\-rmtree \s-1DIR\s0\fR" 4 .IX Item "-rmtree DIR" Recursively remove directory and remove from the treedata file. .Sp Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file. .IP "\fB\-s\fR" 4 .IX Item "-s" (re)Scan disk from \f(CW$HOME\fR directory. If \fI\s-1HOME\s0\fR is not defined the disk is scanned from root directory /. .Sp The existing default treedata file is overwritten. .Sp The default scan directory can be overruled with environment variable \&\f(CW\*(C`WCDSCAN\*(C'\fR. See section \s-1ENVIRONMENT VARIABLES.\s0 .IP "\fB\-S \s-1PATH\s0\fR" 4 .IX Item "-S PATH" Scan directory tree from \fI\s-1PATH\s0\fR and overwrite the default treedata file. See also options \fB\-A\fR, \fB\-s\fR and \fB\-E\fR. E.g. with option \fB\-A\fR you can create a default treedata file of your choice. Examples: .Sp Unix: .Sp .Vb 2 \& wcd \-S / \& wcd \-S /home \-A /etc \-A /usr .Ve .Sp DOS/Windows: .Sp .Vb 2 \& wcd \-S c:/ \& wcd \-S c: \-A d: \-A \e\eserver\eshare .Ve .Sp With the Windows versions one can scan all shared directories of a Windows \&\s-1LAN\s0 server by typing something like: \f(CW\*(C`wcd \-S \e\eservername\*(C'\fR. .IP "\fB+S \s-1PATH\s0\fR" 4 .IX Item "+S PATH" Scan disk from \fI\s-1PATH\s0\fR and place relative paths in a relative treedata file. This file is used by the \fB\-n\fR and \fB+n\fR options of wcd. E.g. \f(CW\*(C`wcd \-n PATH src\*(C'\fR. .IP "\fB\-t\fR" 4 .IX Item "-t" Do not strip tmp mount dir \f(CW\*(C`/tmp_mnt\*(C'\fR (Unix only) .Sp Wcd strips by default \f(CW\*(C`/tmp_mnt/\*(C'\fR from the match. Directory \&\f(CW\*(C`/tmp_mnt\*(C'\fR is used by the auto-mounter. This behaviour can be turned off with the \fB\-t\fR option. .IP "\fB\-T, \-\-ascii\-tree\fR" 4 .IX Item "-T, --ascii-tree" Draw tree with \s-1ASCII\s0 characters. Use this option if line drawing characters are not displayed properly in your terminal. .IP "\fB\-Ta, \-\-alt\-tree\-nav\fR" 4 .IX Item "-Ta, --alt-tree-nav" Alternative way of navigation in the graphical tree. .Sp In the default \s-1NCD\s0 style tree layout the \fB\-Ta\fR option disables jumping to unrelated directories. .Sp In compact tree mode the alternative mode makes navigation similar to navigation in \s-1GUI\s0 file managers such as Windows Explorer or Linux \s-1KDE\s0 Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left. .Sp You can switch on-the-fly between default and alternative navigation by pressing . .Sp When alternative navigation mode is on, you will see an \*(L"A\*(R" in the lower right corner. .IP "\fB\-TC, \-\-center\-tree\fR" 4 .IX Item "-TC, --center-tree" Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key in the graphical tree. .Sp The standard non-centered behaviour, which minimises tree movement, is the same as in the original \s-1NCD.\s0 .IP "\fB\-Tc, \-\-compact\-tree\fR" 4 .IX Item "-Tc, --compact-tree" By default the 'graphical' tree is drawn the same way as the original \s-1NCD\s0 on \&\s-1DOS\s0 did it. On \s-1DOS\s0 a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most \s-1GUI\s0 file managers, with only one folder per line. Use option \fB\-Tc\fR or switch on-the-fly with the key. .IP "\fB\-Td, \-\-cjk\-width\fR" 4 .IX Item "-Td, --cjk-width" Legacy East-Asian \s-1CJK \s0(Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese \s-1CP936\s0 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy \s-1CJK\s0 font is used. .Sp When \s-1CJK\s0 mode is on, you will see a \*(L"C\*(R" in the lower right corner. .IP "\fB\-u \s-1USER\s0\fR" 4 .IX Item "-u USER" Scan treedata file of another user based on \fI\s-1USER\s0\fR, do not scan your own default treedata file. See also section \s-1ENVIRONMENT VARIABLES\s0 for \fI\s-1WCDUSERSHOME\s0\fR. .Sp On Unix/Cygwin the base directory for user home directories is assumed to be \f(CW\*(C`/home\*(C'\fR. Wcd will look for \&\f(CW\*(C`/home/USER/.treedata.wcd\*(C'\fR and \f(CW\*(C`/home/USER/.wcd/.treedata.wcd\*(C'\fR, in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be \f(CW\*(C`\e\eusers\*(C'\fR, so wcd tries to read \&\f(CW\*(C`\e\eusers\eUSER\etreedata.wcd\*(C'\fR and \f(CW\*(C`\e\eusers\eUSER\e.wcd\etreedata.wcd\*(C'\fR. .IP "\fB+u \s-1USER\s0\fR" 4 .IX Item "+u USER" Read default treedata file of \s-1USER\s0 in addition to your own treedata file. .IP "\fB\-v, \-\-verbose\fR" 4 .IX Item "-v, --verbose" Display verbose messages. With this option wcd prints all filters, bans and excludes. .IP "\fB\-V, \-\-version\fR" 4 .IX Item "-V, --version" Print version information and exit. .IP "\fB\-w, \-\-wild\-match\-only\fR" 4 .IX Item "-w, --wild-match-only" Wild matching only. Treat all matches as wild matches. .IP "\fB\-x \s-1PATH\s0\fR" 4 .IX Item "-x PATH" Exclude \fI\s-1PATH\s0\fR from scanning. .Sp When this option is used wcd will exclude \fI\s-1PATH\s0\fR and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option \fB\-x\fR can be used multiple times. .Sp .Vb 1 \& wcd \-x \-x \-s .Ve .Sp Option \fB\-x\fR must be used in front of any scan option (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \&\fB\-A\fR, \fB\-E\fR). .Sp On DOS/Windows systems one must specify the drive letter depending on if environment variable \fI\s-1HOME\s0\fR or \fI\s-1WCDHOME\s0\fR is set. If \fI\s-1HOME\s0\fR or \fI\s-1WCDHOME\s0\fR is set one needs to specify the drive letter. An example: .Sp .Vb 1 \& wcd \-x c:/temp \-S c: .Ve .Sp Otherwise do not specify drive letter. .Sp .Vb 1 \& wcd \-x /temp \-s .Ve .IP "\fB\-xf \s-1FILE\s0\fR" 4 .IX Item "-xf FILE" Exclude all paths listed in \fI\s-1FILE\s0\fR from scanning. .Sp When this option is used wcd will exclude all paths listed in \fI\s-1FILE\s0\fR and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option \fB\-xf\fR can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix): .Sp .Vb 1 \& wcd \-xf ~/.ban.wcd \-s .Ve .Sp Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with \f(CW\*(C`*/.svn\*(C'\fR. .Sp Option \fB\-xf\fR must be used in front of any scan option (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \&\fB\-A\fR, \fB\-E\fR). .IP "\fB\-y, \-\-assume\-yes\fR" 4 .IX Item "-y, --assume-yes" Assume Yes on all queries. .Sp Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option \&\fB\-rmtree\fR. This option must be used in front of options that can lead to yes/no questions. .IP "\fB\-z \s-1NUMBER\s0\fR" 4 .IX Item "-z NUMBER" Set maximum stack size to \s-1NUMBER.\s0 .Sp The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (\fB\-\fR,\fB+\fR,\fB=\fR). Otherwise the size of the stack will be set back to the default 10. .Sp A correct command is: .Sp .Vb 1 \& wcd \-z 50 \- .Ve .Sp The new stack size will be 50, wcd will go one directory back. A wrong command is: .Sp .Vb 1 \& wcd \- \-z 50 .Ve .Sp Wcd goes one directory back, the stack gets the default size 10. The \fB\-z 50\fR is ignored. .Sp Add this option as the first option to your wcd alias or function. E.g. for the a \s-1POSIX\s0 compatible shell this would be: .Sp .Vb 5 \& wcd () \& { \& wcd.exe \-z 50 "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .IP "\fB\-[\s-1NUMBER\s0]\fR" 4 .IX Item "-[NUMBER]" Push dir \s-1NUMBER\s0 of times. Default is one. .Sp Go back a directory. Command \f(CW\*(C`wcd \-\*(C'\fR goes one directory back. To go more directories back add a number to it. E.g. command \f(CW\*(C`wcd \-3\*(C'\fR. The stack is cyclic. .IP "\fB+[\s-1NUMBER\s0]\fR" 4 .IX Item "+[NUMBER]" Pop dir \s-1NUMBER\s0 of times. Default is one. .Sp Go forward a directory. Command \f(CW\*(C`wcd +\*(C'\fR goes one directory forward. To go more directories forward add a number to it. E.g. command \f(CW\*(C`wcd +2\*(C'\fR. The stack is cyclic. .IP "\fB=\fR" 4 .IX Item "=" Show stack. .Sp Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk \f(CW\*(C`*\*(C'\fR. .SH "INSTALLATION" .IX Header "INSTALLATION" The current working directory of a Unix shell can only be changed by the builtin \fIcd\fR\|(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined. .PP Another important influence on your installation is the definition of environment variables \fI\s-1HOME\s0\fR and \fI\s-1WCDHOME\s0\fR. See section \s-1ENVIRONMENT VARIABLES.\s0 .SS "Install for \s-1POSIX\s0 type shells" .IX Subsection "Install for POSIX type shells" For a \s-1POSIX\s0 shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native \s-1MSYS\s0 add the following function to the shell startup file (e.g. Bash uses \&\f(CW\*(C`$HOME/.bashrc\*(C'\fR): .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .PP Replace \fI\s-1PATH\s0\fR with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell. .PP The location of the go-script \f(CW\*(C`wcd.go\*(C'\fR differs per shell. .PP Wcd for \s-1DJGPP DOS\s0 bash requires a different function. The go script is not written in a directory \f(CW\*(C`bin\*(C'\fR, and if \fI\s-1WCDHOME\s0\fR and \fI\s-1HOME\s0\fR are both not defined the go-script is written on c:/. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME:\-"c:"}}/wcd.go \& } .Ve .PP The WinZsh version of wcd is also a bit different. No \f(CW\*(C`bin\*(C'\fR directory. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/wcd.go \& } .Ve .PP See section \s-1FILES\s0 for more information. .SS "Install for C\-alike shells (csh, tcsh)" .IX Subsection "Install for C-alike shells (csh, tcsh)" Add the following alias to the shell startup file \f(CW\*(C`$HOME/.cshrc\*(C'\fR or \&\f(CW\*(C`$HOME/.tcshrc\*(C'\fR : .PP .Vb 5 \& if ( ${?WCDHOME} ) then \& alias wcd "/wcd.exe \e!* ; source $WCDHOME/bin/wcd.go" \& else \& alias wcd "/wcd.exe \e!* ; source $HOME/bin/wcd.go" \& endif .Ve .PP Replace \fI\s-1PATH\s0\fR with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell. .SS "Windows Command Prompt version" .IX Subsection "Windows Command Prompt version" Unpack the zip file and add directory \f(CW\*(C`bin\*(C'\fR to your environment variable \fI\s-1PATH\s0\fR. .PP In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip \f(CW\*(C`wcd.bat\*(C'\fR runs the wcd program which generates a new batch script \f(CW\*(C`wcdgo.bat\*(C'\fR. Then \f(CW\*(C`wcd.bat\*(C'\fR runs \f(CW\*(C`wcdgo.bat\*(C'\fR which actually changes the directory. .SS "Windows \s-1VISTA\s0 and higher" .IX Subsection "Windows VISTA and higher" In a Windows \s-1VISTA\s0 and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select \fIRun as administrator\fR. .SS "Windows PowerShell version" .IX Subsection "Windows PowerShell version" Add the following function to your PowerShell user profile. The location of this profile is stored in the \f(CW$profile\fR variable. It is required that one of the environment variables \fI\s-1HOME\s0\fR or \fI\s-1WCDHOME\s0\fR is defined. .PP .Vb 5 \& function wcd \& { \& \ewcdwin32psh.exe $args \& & $env:HOME\ewcdgo.ps1 \& } .Ve .PP Replace \fI\s-1PATH\s0\fR with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers. .SS "\s-1OS/2\s0 Command Prompt version" .IX Subsection "OS/2 Command Prompt version" In an \s-1OS/2\s0 Command Prompt (cmd.exe) an OS/2\-program can't change the current work directory. That is why wcd generates a command script \f(CW\*(C`wcdgo.cmd\*(C'\fR which must be executed in the current shell. The script \f(CW\*(C`wcd.cmd\*(C'\fR first executes \&\f(CW\*(C`wcdos2.exe\*(C'\fR, which creates the \f(CW\*(C`wcdgo.cmd\*(C'\fR script. Then \f(CW\*(C`wcd.cmd\*(C'\fR executes the \f(CW\*(C`wcdgo.cmd\*(C'\fR script. .SH "LOCALIZATION" .IX Header "LOCALIZATION" .IP "\fB\s-1LANG\s0\fR" 4 .IX Item "LANG" The primary language is selected with the environment variable \fI\s-1LANG\s0\fR. The \&\fI\s-1LANG\s0\fR variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for \s-1POSIX\s0 standard type shells: .Sp .Vb 6 \& export LANG=nl Dutch \& export LANG=nl_NL Dutch, The Netherlands \& export LANG=nl_BE Dutch, Belgium \& export LANG=es_ES Spanish, Spain \& export LANG=es_MX Spanish, Mexico \& export LANG=en_US.iso88591 English, USA, Latin\-1 encoding .Ve .Sp For a complete list of language and country codes see the \fIgettext\fR\|(1) manual: On Unix systems you can use to command \fIlocale\fR\|(1) to get locale specific information. .IP "\fB\s-1LANGUAGE\s0\fR" 4 .IX Item "LANGUAGE" With the \fI\s-1LANGUAGE\s0\fR environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to \fI\s-1LANGUAGE\s0\fR over \&\fI\s-1LANG\s0\fR. For instance, first Dutch and then German: \f(CW\*(C`LANGUAGE=nl:de\*(C'\fR. You have to first enable localization, by setting \fI\s-1LANG\s0\fR or \fI\s-1LC_ALL\s0\fR to a value other than \fIC\fR, before you can use a language priority list through the \fI\s-1LANGUAGE\s0\fR variable. See also the \fIgettext\fR\|(1) manual: .Sp If you select a language which is not available you will get the standard English messages. .IP "\fB\s-1WCDLOCALEDIR\s0\fR" 4 .IX Item "WCDLOCALEDIR" With the environment variable \fI\s-1WCDLOCALEDIR\s0\fR the \fI\s-1LOCALEDIR\s0\fR used during compilation and installation of wcd can be overruled. \fI\s-1LOCALEDIR\s0\fR is used by wcd with native language support to find the language files. The \s-1GNU\s0 default value is \f(CW\*(C`/usr/local/share/locale\*(C'\fR. By typing \f(CW\*(C`wcd \-V\*(C'\fR wcd will print the \fI\s-1LOCALEDIR\s0\fR that is used. .Sp If you have installed wcd in a different directory than the default directory you may need to set the environment variable \fI\s-1WCDLOCALEDIR\s0\fR to point to the locale directory. .Sp An example for Windows cmd: .Sp .Vb 1 \& set WCDLOCALEDIR=c:/my_prefix/share/locale .Ve .Sp An example for a \s-1POSIX\s0 shell: .Sp .Vb 1 \& export WCDLOCALEDIR=$HOME/share/locale .Ve .IP "\fB\s-1LC_COLLATE\s0\fR" 4 .IX Item "LC_COLLATE" When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment \fI\s-1LANG\s0\fR has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored. .Sp The sorting gives preference to environment variable \fI\s-1LC_COLLATE\s0\fR over \fI\s-1LANG\s0\fR. If you make \fI\s-1LC_COLLATE\s0\fR equal to \f(CW\*(C`C\*(C'\fR or \f(CW\*(C`POSIX\*(C'\fR, locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this: .Sp .Vb 2 \& export LANG=nl_NL \& export LC_COLLATE=C .Ve .IP "\fB\s-1LC_CTYPE\s0\fR" 4 .IX Item "LC_CTYPE" With regard to character encoding Wcd will give preference to variable \&\fI\s-1LC_CTYPE\s0\fR over \fI\s-1LANG\s0\fR. For instance to set character encoding to \&\s-1UTF\-8\s0 the following environment setting can be done. .Sp .Vb 1 \& export LC_CTYPE=en_US.UTF\-8 .Ve .IP "\fB\s-1LC_ALL\s0\fR" 4 .IX Item "LC_ALL" All locale environment variables that start with \fI\s-1LC_\s0\fR are overruled by the environment variable \fI\s-1LC_ALL\s0\fR if it is defined. Wcd gives preference to \&\fI\s-1LC_ALL\s0\fR over \fI\s-1LC_COLLATE\s0\fR and \fI\s-1LC_CTYPE\s0\fR. .SS "\s-1WINDOWS CODE PAGES\s0" .IX Subsection "WINDOWS CODE PAGES" There are two groups of code pages: \s-1DOS\s0 code pages (\s-1OEM\s0) and Windows code pages (\s-1ANSI\s0). The default encoding for Windows, when configured with Western regional settings, is \s-1ANSI CP1252.\s0 Windows programs, for instance notepad, use this default system \s-1ANSI\s0 code page. The Windows console uses by default an \s-1OEM\s0 code page (\s-1CP437\s0 or \s-1CP850\s0) for compatibility with \s-1DOS\s0 programs. If you use a \s-1DOS\s0 version of wcd in a Windows console it will work, because of the \s-1DOS\s0 code page. But the \s-1DOS\s0 version of wcd lacks support for long directory names and network drives on Windows. .PP The Windows version of wcd is a native Windows program and will use the Windows system \s-1ANSI\s0 code page. So on a Western regional Windows it will use code page \&\s-1CP1252\s0 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate \s-1ANSI\s0 output to Unicode output in the Command Prompt and PowerShell. .PP The console raster font only supports the original \s-1OEM\s0 code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and \s-1ANSI\s0) letters appear correctly. .PP Non-Unicode versions of Wcd \fIprior to version 5.2.0\fR use plain \s-1ANSI\s0 output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol. .PP The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the \f(CW\*(C`chcp\*(C'\fR command. .PP When you type \f(CW\*(C`wcd \-V\*(C'\fR, the actual character encoding used by wcd is shown. Type the command \f(CW\*(C`chcp\*(C'\fR to display the active code page of the Windows console. .SS "\s-1UNICODE\s0" .IX Subsection "UNICODE" Wcd has optional support for Unicode. To see if wcd was built with Unicode support type \f(CW\*(C`wcd \-V\*(C'\fR. If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: \&\*(L"Chinese\*(R"). .PP Wcd has been \fIsoft\fR converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no \s-1UTF\-8\s0 specific code. See also .PP Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type \f(CW\*(C`wcd \-V\*(C'\fR. Wcd with Unicode normalization support will match Unicode names based on \fIcompatible\fR equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also .PP \fI\s-1UTF\-8\s0 on Unix/Linux\fR .IX Subsection "UTF-8 on Unix/Linux" .PP In order to view \s-1UTF\-8\s0 characters your console/terminal also needs to support \s-1UTF\-8.\s0 The xterm version that comes with XFree86 4.0 or higher includes \s-1UTF\-8\s0 support. To activate it, start \fIxterm\fR\|(1) in a \s-1UTF\-8\s0 locale and use a font with iso10646\-1 encoding, for instance with .PP .Vb 1 \& LC_CTYPE=en_GB.UTF\-8 xterm \-u8 \-fn \*(Aq\-Misc\-Fixed\-Medium\-R\-SemiCondensed\-\-13\-120\-75\-75\-C\-60\-ISO10646\-1\*(Aq .Ve .PP Modern distributions of GNU/Linux support \s-1UTF\-8\s0 by default. Other multi-byte character encodings should also work, but that has not been tested. .PP Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files. .PP \fI\s-1UTF\-16\s0 on Windows\fR .IX Subsection "UTF-16 on Windows" .PP On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or \s-1TCC/LE\s0 made by \s-1JP\s0 Software, which can be used on older Windows versions (XP/Vista). .PP On Windows all the directory names on disk are encoded in \s-1UTF\-16\s0 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default \s-1ANSI\s0 code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead. .PP Wcd with Unicode support will read the \s-1UTF\-16\s0 encoded directory names and converts them internally to \s-1UTF\-8.\s0 All treedata files are encoded in \s-1UTF\-8\s0 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in \s-1UTF\-8.\s0 .PP All versions of Windows PowerShell are able to run scripts encoded in \s-1UTF\-8,\s0 provided there is an \s-1UTF\-8 BOM\s0 in the script. .PP Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in \s-1UTF\-8,\s0 and the batch script must \fInot\fR have a \s-1BOM.\s0 The active code page of the Command Prompt needs to be set to 65001 (\s-1UTF\-8\s0) prior to the cd command. Wcd for Command Prompt will create such a go script \f(CW\*(C`wcdgo.bat\*(C'\fR. It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page. .PP You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly. .PP The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (\s-1BOM\s0) in the file (see ), but it can't change to directories with Unicode letters in the name that are not part of the default system \s-1ANSI\s0 code page. The Unicode Windows version of wcd writes a \s-1BOM\s0 in the \s-1UTF\-8\s0 encoded treedata files since version 5.2.0, which makes them also readable by notepad. .PP \fI\s-1UTF\-8\s0 on Cygwin\fR .IX Subsection "UTF-8 on Cygwin" .PP Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows \s-1UTF\-16\s0 Unicode names are converted to \s-1UTF\-8.\s0 So programs, like wcd, do not need to be aware of this and can operate using \s-1UTF\-8\s0 encoding as on Unix/Linux. Set character encoding to \s-1UTF\-8\s0 with the \fI\s-1LANG\s0\fR or \fI\s-1LC_CTYPE\s0\fR environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console. .PP The Cygwin version behaves exactly as the Unix version of wcd. There is no \s-1BOM\s0 written in the treedata files, and it is assumed they are encoded in the \fBCygwin\fR locale character encoding. .SH "FILES" .IX Header "FILES" If the environment variable \fI\s-1WCDHOME\s0\fR is set wcd will use \fI\s-1WCDHOME\s0\fR instead of \fI\s-1HOME\s0\fR. All \f(CW\*(C`*.wcd\*(C'\fR files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the \s-1DOS\s0 version. The Cygwin version of wcd behaves as the Unix version. .IP "\fBwcd.exe\fR" 4 .IX Item "wcd.exe" The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section \&\s-1INSTALLATION.\s0 .IP "\fBdefault treedata file\fR" 4 .IX Item "default treedata file" This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one. .Sp .Vb 2 \& DOS: \etreedata.wcd or %HOME%\etreedata.wcd \& Unix: $HOME/.treedata.wcd .Ve .IP "\fBextra treedata file\fR" 4 .IX Item "extra treedata file" An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also. .Sp .Vb 2 \& DOS: \eextra.wcd or %HOME%\eextra.wcd \& Unix: $HOME/.extra.wcd .Ve .IP "\fBban file\fR" 4 .IX Item "ban file" In this optional file wcd places banned paths. See option \fB\-b\fR. Wildcards are supported. .Sp .Vb 2 \& DOS: \eban.wcd or %HOME%\eban.wcd \& Unix: $HOME/.ban.wcd .Ve .IP "\fBalias file\fR" 4 .IX Item "alias file" Optional file with wcd aliases. See option \fB\-l\fR. .Sp .Vb 2 \& DOS: \ealias.wcd or %HOME%\ealias.wcd \& Unix: $HOME/.alias.wcd .Ve .IP "\fBstack file\fR" 4 .IX Item "stack file" In this file wcd stores its stack. The drive letter can be changed with the \fB\-d\fR option. .Sp .Vb 2 \& DOS: c:\estack.wcd or %HOME%\estack.wcd \& Unix: $HOME/.stack.wcd .Ve .Sp The name of the stack file can be changed with environment variable \fI\s-1WCDSTACKFILE\s0\fR. See section \s-1ENVIRONMENT VARIABLES.\s0 .IP "\fBgo-script\fR" 4 .IX Item "go-script" This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the \fB\-d\fR option. For history reasons it is placed by default in \f(CW\*(C`$HOME/bin\*(C'\fR on Unix systems. The directory of this file can be changed with the option \fB\-G\fR. .Sp .Vb 7 \& DOS bash: c:/wcd.go or $HOME/wcd.go \& Windows Command Prompt: c:\ewcdgo.bat or %HOME%\ewcdgo.bat \& Windows PowerShell: $env:HOME\ewcdgo.ps1 \& WinZsh: $HOME/wcd.go \& Cygwin/MSYS: $HOME/bin/wcd.go \& OS/2 Command Prompt: c:\ewcdgo.cmd or %HOME%\ewcdgo.cmd \& Unix: $HOME/bin/wcd.go .Ve .IP "\fBrelative treedata file\fR" 4 .IX Item "relative treedata file" Text file with relative paths from \fI\s-1DIR\s0\fR. See options \fB+S\fR, \fB\-n\fR and \&\fB+n\fR. .Sp .Vb 2 \& DOS: \ertdata.wcd \& Unix: /.rtdata.wcd .Ve .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" .IP "\fB\s-1HOME\s0\fR" 4 .IX Item "HOME" Wcd uses by default environment variable \fI\s-1HOME\s0\fR to determine where to store its files. See also section \s-1FILES.\s0 This can be overruled with environment variable \fI\s-1WCDHOME\s0\fR. .Sp \&\fI\s-1HOME\s0\fR also defines where to start scanning the disk when option \fB\-s\fR is used. This can be overruled with the environment variable \fI\s-1WCDSCAN\s0\fR. .Sp For the Unix, Cygwin, Windows PowerShell, WinZsh and \s-1MSYS\s0 version it is required that \fI\s-1HOME\s0\fR or \fI\s-1WCDHOME\s0\fR is set. For the other versions of wcd the use of these variables is optional. .Sp If \fI\s-1HOME\s0\fR is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory \&\fI\s-1HOME\s0\fR. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from \fI\s-1HOME\s0\fR. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.: .Sp .Vb 1 \& wcd \-S c: \-A d: \-A e: .Ve .Sp Matching of directories is now global over all scanned drives. .IP "\fB\s-1WCDHOME\s0\fR" 4 .IX Item "WCDHOME" Environment variable \fI\s-1WCDHOME\s0\fR can be used to change the location of wcd's files. If both \fI\s-1HOME\s0\fR and \fI\s-1WCDHOME\s0\fR are set, \fI\s-1WCDHOME\s0\fR will be used instead of \fI\s-1HOME\s0\fR. .Sp In wcd versions prior to 5.1.5 \fI\s-1WCDHOME\s0\fR also changed the default scan directory. This has changed. Since version 5.1.5 \fI\s-1WCDHOME\s0\fR does not change the default scan directory. See option \fB\-s\fR. From version 5.1.5, use environment \fI\s-1WCDSCAN\s0\fR to overrule the default scan directory. .Sp Example for \s-1DOS,\s0 Windows, \s-1OS/2\s0 Command Prompt: .Sp .Vb 1 \& set WCDHOME=C:\eUsers\eerwin\ewcd .Ve .Sp An example for \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDHOME="$HOME/.wcd" .Ve .Sp An example for Csh type shells: .Sp .Vb 1 \& setenv WCDHOME "$HOME/.wcd" .Ve .IP "\fB\s-1WCDSCAN\s0\fR" 4 .IX Item "WCDSCAN" Use environment variable \fI\s-1WCDSCAN\s0\fR to overrule the default scan directory \fI\s-1HOME\s0\fR. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated. .Sp Examples for \s-1DOS,\s0 Windows, \s-1OS/2\s0 Command Prompt: .Sp .Vb 1 \& set WCDSCAN=C:\eUsers\eerwin;D:\edata \& \& set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\e\eprojectdrive\eprojectX .Ve .Sp An example for \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDSCAN="$HOME:/projectdisk/projectX" .Ve .Sp An example for Csh type shells: .Sp .Vb 1 \& setenv WCDSCAN "$HOME:/projectdisk/projectX" .Ve .IP "\fB\s-1WCDFILTER\s0\fR" 4 .IX Item "WCDFILTER" Specify filters with environment variable \fI\s-1WCDFILTER\s0\fR. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the \fI\s-1PATH\s0\fR variable. The case sensitivity is mandated by the Operating system. .Sp An example for \s-1DOS,\s0 Windows, \s-1OS/2\s0 Command Prompt: .Sp .Vb 1 \& set WCDFILTER=projects;doc .Ve .Sp An example for \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDFILTER="projects:doc" .Ve .Sp An example for Csh type shells: .Sp .Vb 1 \& setenv WCDFILTER "projects:doc" .Ve .IP "\fB\s-1WCDBAN\s0\fR" 4 .IX Item "WCDBAN" The paths specified with environment \fI\s-1WCDBAN\s0\fR will be banned by wcd. See also option \fB\-b\fR. Specify a list of paths separated by shell \&\fI\s-1PATH\s0\fR separator. .IP "\fB\s-1WCDEXCLUDE\s0\fR" 4 .IX Item "WCDEXCLUDE" The paths specified with environment \fI\s-1WCDEXCLUDE\s0\fR will be excluded by wcd. See also options \fB\-x\fR and \fB\-xf\fR. Specify a list of paths separated by shell \fI\s-1PATH\s0\fR separator. .Sp An example for \s-1DOS,\s0 Windows, \s-1OS/2\s0 Command Prompt: .Sp .Vb 1 \& set WCDEXCLUDE=*/windows;*/temp;*CVS .Ve .Sp An example for \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDEXCLUDE="/dev:/tmp:*CVS" .Ve .Sp An example for Csh type shells: .Sp .Vb 1 \& setenv WCDEXCLUDE "/dev:/tmp:*CVS" .Ve .IP "\fB\s-1WCDUSERSHOME\s0\fR" 4 .IX Item "WCDUSERSHOME" Set the base of user's home directories. On DOS/Windows the default value is \f(CW\*(C`\e\eusers\*(C'\fR. On Unix/Cygwin the default value is \f(CW\*(C`/home\*(C'\fR. This variable is used to scan treedata files of other users. See also options \fB\-u\fR and \fB+u\fR. In verbose mode wcd will print all filters, bans and excludes. See option \fB\-v\fR. .IP "\fB\s-1WCDSTACKFILE\s0\fR" 4 .IX Item "WCDSTACKFILE" Wcd gives preference to \fI\s-1WCDSTACKFILE\s0\fR over the default stack file name (see section \s-1FILES\s0). With this variable each shell (or used terminal emulator) can have its private stack of used directories. .Sp To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell. .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d\-%H%M%S) .Ve .Sp For a stack per \fIxterm\fR\|(1), use the xterm \fI\s-1WINDOWID\s0\fR environment variable: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID .Ve .Sp For \s-1GNU\s0 \fIscreen\fR\|(1), to use stack per screen: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW .Ve .IP "\fB\s-1TERMINFO\s0\fR" 4 .IX Item "TERMINFO" If the environment variable \fI\s-1TERMINFO\s0\fR is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are \f(CW\*(C`/usr/lib/terminfo\*(C'\fR and \f(CW\*(C`/usr/share/terminfo\*(C'\fR. .IP "\fB\s-1PDC_RESTORE_SCREEN\s0\fR" 4 .IX Item "PDC_RESTORE_SCREEN" Wcd with PDCurses interface recognizes the environment variable \&\fI\s-1PDC_RESTORE_SCREEN\s0\fR. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt: .Sp .Vb 1 \& set PDC_RESTORE_SCREEN=1 .Ve .Sp Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width. .IP "\fB\s-1SHELL\s0\fR" 4 .IX Item "SHELL" Printing of \f(CW\*(C`#!$SHELL\*(C'\fR on the first line of the go-script for \s-1POSIX\s0 type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable \fI\s-1SHELL\s0\fR must be set in environment using the \f(CW\*(C`export\*(C'\fR command, otherwise wcd can't read the variable. .IP "\fB\s-1BASH\s0\fR" 4 .IX Item "BASH" Wcd for \s-1DOS\s0 bash uses \f(CW$BASH\fR instead of \f(CW$SHELL\fR, because \f(CW$SHELL\fR points to the \s-1DOS\s0 command shell. One may need to define \f(CW$BASH\fR with an \f(CW\*(C`export\*(C'\fR command, otherwise wcd can't read the variable. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsh\fR\|(1), \&\fIbash\fR\|(1), \&\fIcsh\fR\|(1), \&\fIksh\fR\|(1), \&\fIzsh\fR\|(1), \&\fIlocale\fR\|(1), \&\fIncurses\fR\|(1), .SH "AUTHORS" .IX Header "AUTHORS" Wcd was written by Erwin Waterlander .PP Project homepage: .PP SourceForge: .PP Freecode: .PP The manual page formatting was provided by Jari Aalto . .PP \&\s-1NCD\s0 was originally written by Brad Kingsbury for Peter Norton's \&\*(L"Norton Utilities\*(R" around 1987. See also wcd-5.2.5/src/man/man1/wcd.pod0000664000175000017500000012672312341176520016211 0ustar waterlanwaterlan# Copyright and License # # Copyright (C) 1997-2014 Erwin Waterlander # Copyright (C) 2009 Jari Aalto # # License # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # Visit # # Description # # To learn what TOP LEVEL section to use in manual pages, # see POSIX/Susv standard and "Utility Description Defaults" at # http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap01.html#tag_01_11 # # This is manual page in Perl POD format. Read more at # http://perldoc.perl.org/perlpod.html or run command: # # perldoc perlpod | less # # To check the syntax: # # podchecker *.pod # # Create manual page with command: # # pod2man PAGE.N.pod > PAGE.N =pod =encoding UTF-8 =head1 NAME wcd - Wherever Change Directory chdir for DOS and Unix =head1 SYNOPSIS wcd [options] [directory] =head1 DESCRIPTION =head2 Overview Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search. Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in I, for DOS in 1987, published by Peter Norton. Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system. Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section LOCALIZATION. See section INSTALLATION how to setup wcd for personal use. =head2 Basic use By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name. For instance this command will change to directory to the current user's C: wcd Desk When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one). =head2 Wildcards Wcd supports following wildcards: * matches any sequence of characters (zero or more) ? matches any character [SET] matches any character in the specified set, [!SET] or [^SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like I as in C<0-9> or C. The C<[0-9a-zA-Z_]> is the minimal set of characters allowed in the C<[..]> pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of C<[]*?!^-\> inside or outside a C<[..]> construct and match the character exactly, precede the character with a backslash (C<\>) marker. Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with "top": wcd *top Match directories that have "top" anywhere in the name: wcd *top* Match any directory name that begins with "a", "b" or "c": wcd [a-c]* It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with "Desk" and which path matches I<*me/Desk*>. wcd me/Desk It is allowed to type any kind of expression with slashes and wildcards. E.g.: wcd src*/*1?/a*2 =head2 Other uses If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the B<-w> option. The interactive directory tree browser can be started by using option B<-g>. wcd -g Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network. Wcd can also change to directories that are not in the treedata file. E.g.: wcd .. If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option B<-k>. Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options B<-z>, B<->, B<+> and B<=>. In multi-user environments option B<-u> can be used to change to directories of other users. On DOS and Windows systems it does not matter if you use a slash "/" or a backslash "\" as a directory separator. It is possible on DOS and Windows systems to change drive and directory in one go by preceding the directory name with the drive name. wcd d:games =head2 Windows UNC paths The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB LAN UNC paths without drive letter such as C<\\servername\sharename>. Wcd for Windows Command Prompt makes use of the "pushd" command to automatically map a UNC path to a drive letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current working directory can be a UNC path. =head2 Interfaces Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time. The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by . This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable. The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the B<-N> option. The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a vim(1) like navigation and search method. It can be activated with option B<-g>. By using the B<-o> option one can always fall back to the stdin/stdout interface. =head1 OPTIONS =over 4 =item B<-a> Add current path to the default treedata file. Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases. =item B<-aa> Add current and all parent paths to the default treedata file. =item B<-A PATH> Scan directory tree from I and append to the default treedata file. Examples: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share On Windows one can scan all shared directories of a Windows LAN server by typing something like: C. See also option B<-S> and B<-s> and B<-E>. =item B<-b> Ban current path. Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories. The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path. Banned paths are not excluded from scanning the disk. To do that use option B<-xf>. =item B<-c, --direct-cd> Direct CD mode. By default wcd works as follows: 1. Try to find a match in the treedata file(s) 2. If no match, try to open the directory you typed. In direct CD mode wcd works in reversed order. 1. Try to open the directory you typed. 2. If not, try to find a match in the treedata file(s). =item B<-d DRIVE> Set drive for stack and go file (DOS only). The stack file and the go-script are by default stored on drive C: if environment variable I is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options B<->, B<+> and B<=>. =item B<-e> Add current path to the extra treedata file. Use this option to quickly add the current path to the extra treedata file. =item B<-ee> Add current and all parent paths to extra treedata file. =item B<-E PATH> Scan directory tree from I and append to Extra treedata file. See also options B<-A> and B<-S>. =item B<-f FILE> Read treedata file I. Do not read the default treedata file. =item B<+f FILE> Read treedata file I in addition to the default treedata file. =item B<-g> Graphical interface (only in version with curses interface). Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a vim(1) like navigation and search method. If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files. If a search string is given the match list is presented as a directory tree. The default tree layout is similar to the tree layout of the original NCD on DOS. The difference in layout is that in NCD all directories of a same depth level were vertically aligned over the whole tree. This was possible in NCD, because the maximum width of a directory name in DOS was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch. The navigation behaviour in Wcd is exactly the same as in the original NCD. For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree. See options B<-Ta>, B<-TC>, and B<-Tc> to change the navigation behaviour. =item B<-gd> Dump the treedata files as a tree to stdout. =item B<-G PATH> Write go-script in directory I. For instance on Unix, C will write a go-script B. =item B<-GN, --no-go-script> Do not create go-script. This option can be used in combination with the option B<-j> if one does not want wcd to create a go-script. =item B<-h, --help> Show help and exit. =item B<-i, --ignore-case> Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default. =item B<+i, --no-ignore-case> Regard case. See also option B<-i>. =item B<-I, --ignore-diacritics> Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. See also L =item B<+I, --no-ignore-diacritics> Regard diacritics (default). See also option B<-I>. =item B<-j, --just-go> Just go mode. In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on. Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a POSIX compatible shell: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } When you are using an old shell that doesn't support "$()" command substitution you have to use old style command substitution with back-quotes. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } On Windows systems, if one is running 4NT shell, one could make the following alias: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` This method eliminates the need of the go-script, so one can use option B<-GN> in combination with B<-j>. =item B<-k, --keep-paths> Keep paths. Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off. =item B<-K, --color> Use colors in graphical mode. =item B<-l ALIAS> Name the current path with I. Wcd places the current path with alias I in the alias file. Aliases are case sensitive. =item B<-m DIR> Make directory and add to treedata file. =item B<-L, --license> Print the distribution license. =item B<-M DIR> Make directory and add to extra treedata file. =item B<-n PATH> Read relative treedata file from I. Do not read the default treedata file. The relative treedata file should already have been created using the wcd B<+S> option. I may also point to a file directly. An example. Suppose another system has been mounted to mount point C: wcd -n /mnt/network src Wcd opens the relative treedata file in C. The file contains the paths relative from that point. =item B<+n PATH> Read relative treedata file in addition to the default treedata file. See option B<-n>. =item B<-N, --numbers> Use numbers instead of letters. Wcd with a conio or curses based interface (see section INTERFACE) presents a match list by default numbered with letters. When the B<-N> option is used the match list is numbered with numbers. Regardless of the B<-N> option one can type a letter or numbers to make a selection from the list of matches. =item B<-o> Use stdin/stdout interface. When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the B<-o> option. =item B<-od, --to-stdout> Dump all matches to stdout. =item B<-q, --quiet> Quieter operation. Printing of the final match is suppressed. =item B<-r DIR> Remove directory and remove from the treedata file. If the directory is empty, wcd will remove it, and try to remove it from the treedata file. =item B<-rmtree DIR> Recursively remove directory and remove from the treedata file. Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file. =item B<-s> (re)Scan disk from C<$HOME> directory. If I is not defined the disk is scanned from root directory /. The existing default treedata file is overwritten. The default scan directory can be overruled with environment variable C. See section ENVIRONMENT VARIABLES. =item B<-S PATH> Scan directory tree from I and overwrite the default treedata file. See also options B<-A>, B<-s> and B<-E>. E.g. with option B<-A> you can create a default treedata file of your choice. Examples: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share With the Windows versions one can scan all shared directories of a Windows LAN server by typing something like: C. =item B<+S PATH> Scan disk from I and place relative paths in a relative treedata file. This file is used by the B<-n> and B<+n> options of wcd. E.g. C. =item B<-t> Do not strip tmp mount dir C (Unix only) Wcd strips by default C from the match. Directory C is used by the auto-mounter. This behaviour can be turned off with the B<-t> option. =item B<-T, --ascii-tree> Draw tree with ASCII characters. Use this option if line drawing characters are not displayed properly in your terminal. =item B<-Ta, --alt-tree-nav> Alternative way of navigation in the graphical tree. In the default NCD style tree layout the B<-Ta> option disables jumping to unrelated directories. In compact tree mode the alternative mode makes navigation similar to navigation in GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left. You can switch on-the-fly between default and alternative navigation by pressing . When alternative navigation mode is on, you will see an "A" in the lower right corner. =item B<-TC, --center-tree> Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key in the graphical tree. The standard non-centered behaviour, which minimises tree movement, is the same as in the original NCD. =item B<-Tc, --compact-tree> By default the 'graphical' tree is drawn the same way as the original NCD on DOS did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use option B<-Tc> or switch on-the-fly with the key. =item B<-Td, --cjk-width> Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese CP936 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy CJK font is used. When CJK mode is on, you will see a "C" in the lower right corner. =item B<-u USER> Scan treedata file of another user based on I, do not scan your own default treedata file. See also section ENVIRONMENT VARIABLES for I. On Unix/Cygwin the base directory for user home directories is assumed to be C. Wcd will look for C and C, in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be C<\\users>, so wcd tries to read C<\\users\USER\treedata.wcd> and C<\\users\USER\.wcd\treedata.wcd>. =item B<+u USER> Read default treedata file of USER in addition to your own treedata file. =item B<-v, --verbose> Display verbose messages. With this option wcd prints all filters, bans and excludes. =item B<-V, --version> Print version information and exit. =item B<-w, --wild-match-only> Wild matching only. Treat all matches as wild matches. =item B<-x PATH> Exclude I from scanning. When this option is used wcd will exclude I and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option B<-x> can be used multiple times. wcd -x -x -s Option B<-x> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). On DOS/Windows systems one must specify the drive letter depending on if environment variable I or I is set. If I or I is set one needs to specify the drive letter. An example: wcd -x c:/temp -S c: Otherwise do not specify drive letter. wcd -x /temp -s =item B<-xf FILE> Exclude all paths listed in I from scanning. When this option is used wcd will exclude all paths listed in I and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option B<-xf> can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix): wcd -xf ~/.ban.wcd -s Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with C<*/.svn>. Option B<-xf> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). =item B<-y, --assume-yes> Assume Yes on all queries. Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option B<-rmtree>. This option must be used in front of options that can lead to yes/no questions. =item B<-z NUMBER> Set maximum stack size to NUMBER. The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (B<->,B<+>,B<=>). Otherwise the size of the stack will be set back to the default 10. A correct command is: wcd -z 50 - The new stack size will be 50, wcd will go one directory back. A wrong command is: wcd - -z 50 Wcd goes one directory back, the stack gets the default size 10. The B<-z 50> is ignored. Add this option as the first option to your wcd alias or function. E.g. for the a POSIX compatible shell this would be: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } =item B<-[NUMBER]> Push dir NUMBER of times. Default is one. Go back a directory. Command C goes one directory back. To go more directories back add a number to it. E.g. command C. The stack is cyclic. =item B<+[NUMBER]> Pop dir NUMBER of times. Default is one. Go forward a directory. Command C goes one directory forward. To go more directories forward add a number to it. E.g. command C. The stack is cyclic. =item B<=> Show stack. Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk C<*>. =back =head1 INSTALLATION The current working directory of a Unix shell can only be changed by the builtin cd(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined. Another important influence on your installation is the definition of environment variables I and I. See section ENVIRONMENT VARIABLES. =head2 Install for POSIX type shells For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the following function to the shell startup file (e.g. Bash uses C<$HOME/.bashrc>): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell. The location of the go-script C differs per shell. Wcd for DJGPP DOS bash requires a different function. The go script is not written in a directory C, and if I and I are both not defined the go-script is written on c:/. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } The WinZsh version of wcd is also a bit different. No C directory. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } See section FILES for more information. =head2 Install for C-alike shells (csh, tcsh) Add the following alias to the shell startup file C<$HOME/.cshrc> or C<$HOME/.tcshrc> : if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell. =head2 Windows Command Prompt version Unpack the zip file and add directory C to your environment variable I. In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip C runs the wcd program which generates a new batch script C. Then C runs C which actually changes the directory. =head2 Windows VISTA and higher In a Windows VISTA and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select I. =head2 Windows PowerShell version Add the following function to your PowerShell user profile. The location of this profile is stored in the $profile variable. It is required that one of the environment variables I or I is defined. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Replace I with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers. =head2 OS/2 Command Prompt version In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work directory. That is why wcd generates a command script C which must be executed in the current shell. The script C first executes C, which creates the C script. Then C executes the C script. =head1 LOCALIZATION =over 4 =item B The primary language is selected with the environment variable I. The I variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells: export LANG=nl Dutch export LANG=nl_NL Dutch, The Netherlands export LANG=nl_BE Dutch, Belgium export LANG=es_ES Spanish, Spain export LANG=es_MX Spanish, Mexico export LANG=en_US.iso88591 English, USA, Latin-1 encoding For a complete list of language and country codes see the gettext(1) manual: L On Unix systems you can use to command locale(1) to get locale specific information. =item B With the I environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to I over I. For instance, first Dutch and then German: C. You have to first enable localization, by setting I or I to a value other than I, before you can use a language priority list through the I variable. See also the gettext(1) manual: L If you select a language which is not available you will get the standard English messages. =item B With the environment variable I the I used during compilation and installation of wcd can be overruled. I is used by wcd with native language support to find the language files. The GNU default value is C. By typing C wcd will print the I that is used. If you have installed wcd in a different directory than the default directory you may need to set the environment variable I to point to the locale directory. An example for Windows cmd: set WCDLOCALEDIR=c:/my_prefix/share/locale An example for a POSIX shell: export WCDLOCALEDIR=$HOME/share/locale =item B When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment I has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored. The sorting gives preference to environment variable I over I. If you make I equal to C or C, locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this: export LANG=nl_NL export LC_COLLATE=C =item B With regard to character encoding Wcd will give preference to variable I over I. For instance to set character encoding to UTF-8 the following environment setting can be done. export LC_CTYPE=en_US.UTF-8 =item B All locale environment variables that start with I are overruled by the environment variable I if it is defined. Wcd gives preference to I over I and I. =back =head2 WINDOWS CODE PAGES There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI). The default encoding for Windows, when configured with Western regional settings, is ANSI CP1252. Windows programs, for instance notepad, use this default system ANSI code page. The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility with DOS programs. If you use a DOS version of wcd in a Windows console it will work, because of the DOS code page. But the DOS version of wcd lacks support for long directory names and network drives on Windows. The Windows version of wcd is a native Windows program and will use the Windows system ANSI code page. So on a Western regional Windows it will use code page CP1252 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate ANSI output to Unicode output in the Command Prompt and PowerShell. The console raster font only supports the original OEM code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and ANSI) letters appear correctly. Non-Unicode versions of Wcd I use plain ANSI output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol. The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the C command. When you type C, the actual character encoding used by wcd is shown. Type the command C to display the active code page of the Windows console. =head2 UNICODE Wcd has optional support for Unicode. To see if wcd was built with Unicode support type C. If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: "Chinese"). Wcd has been I converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also L Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type C. Wcd with Unicode normalization support will match Unicode names based on I equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also L =head3 UTF-8 on Unix/Linux In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance with LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character encodings should also work, but that has not been tested. Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files. =head3 UTF-16 on Windows On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP Software, which can be used on older Windows versions (XP/Vista). On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default ANSI code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead. Wcd with Unicode support will read the UTF-16 encoded directory names and converts them internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8. All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided there is an UTF-8 BOM in the script. Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in UTF-8, and the batch script must I have a BOM. The active code page of the Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will create such a go script C. It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page. You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly. The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see L), but it can't change to directories with Unicode letters in the name that are not part of the default system ANSI code page. The Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes them also readable by notepad. =head3 UTF-8 on Cygwin Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character encoding to UTF-8 with the I or I environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console. The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in the treedata files, and it is assumed they are encoded in the B locale character encoding. =head1 FILES If the environment variable I is set wcd will use I instead of I. All C<*.wcd> files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the DOS version. The Cygwin version of wcd behaves as the Unix version. =over 4 =item B The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section INSTALLATION. =item B This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one. DOS: \treedata.wcd or %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd =item B An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also. DOS: \extra.wcd or %HOME%\extra.wcd Unix: $HOME/.extra.wcd =item B In this optional file wcd places banned paths. See option B<-b>. Wildcards are supported. DOS: \ban.wcd or %HOME%\ban.wcd Unix: $HOME/.ban.wcd =item B Optional file with wcd aliases. See option B<-l>. DOS: \alias.wcd or %HOME%\alias.wcd Unix: $HOME/.alias.wcd =item B In this file wcd stores its stack. The drive letter can be changed with the B<-d> option. DOS: c:\stack.wcd or %HOME%\stack.wcd Unix: $HOME/.stack.wcd The name of the stack file can be changed with environment variable I. See section ENVIRONMENT VARIABLES. =item B This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the B<-d> option. For history reasons it is placed by default in C<$HOME/bin> on Unix systems. The directory of this file can be changed with the option B<-G>. DOS bash: c:/wcd.go or $HOME/wcd.go Windows Command Prompt: c:\wcdgo.bat or %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2 Command Prompt: c:\wcdgo.cmd or %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go =item B Text file with relative paths from I. See options B<+S>, B<-n> and B<+n>. DOS: \rtdata.wcd Unix: /.rtdata.wcd =back =head1 ENVIRONMENT VARIABLES =over 4 =item B Wcd uses by default environment variable I to determine where to store its files. See also section FILES. This can be overruled with environment variable I. I also defines where to start scanning the disk when option B<-s> is used. This can be overruled with the environment variable I. For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is required that I or I is set. For the other versions of wcd the use of these variables is optional. If I is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory I. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from I. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.: wcd -S c: -A d: -A e: Matching of directories is now global over all scanned drives. =item B Environment variable I can be used to change the location of wcd's files. If both I and I are set, I will be used instead of I. In wcd versions prior to 5.1.5 I also changed the default scan directory. This has changed. Since version 5.1.5 I does not change the default scan directory. See option B<-s>. From version 5.1.5, use environment I to overrule the default scan directory. Example for DOS, Windows, OS/2 Command Prompt: set WCDHOME=C:\Users\erwin\wcd An example for POSIX type shells: export WCDHOME="$HOME/.wcd" An example for Csh type shells: setenv WCDHOME "$HOME/.wcd" =item B Use environment variable I to overrule the default scan directory I. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated. Examples for DOS, Windows, OS/2 Command Prompt: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX An example for POSIX type shells: export WCDSCAN="$HOME:/projectdisk/projectX" An example for Csh type shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" =item B Specify filters with environment variable I. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the I variable. The case sensitivity is mandated by the Operating system. An example for DOS, Windows, OS/2 Command Prompt: set WCDFILTER=projects;doc An example for POSIX type shells: export WCDFILTER="projects:doc" An example for Csh type shells: setenv WCDFILTER "projects:doc" =item B The paths specified with environment I will be banned by wcd. See also option B<-b>. Specify a list of paths separated by shell I separator. =item B The paths specified with environment I will be excluded by wcd. See also options B<-x> and B<-xf>. Specify a list of paths separated by shell I separator. An example for DOS, Windows, OS/2 Command Prompt: set WCDEXCLUDE=*/windows;*/temp;*CVS An example for POSIX type shells: export WCDEXCLUDE="/dev:/tmp:*CVS" An example for Csh type shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" =item B Set the base of user's home directories. On DOS/Windows the default value is C<\\users>. On Unix/Cygwin the default value is C. This variable is used to scan treedata files of other users. See also options B<-u> and B<+u>. In verbose mode wcd will print all filters, bans and excludes. See option B<-v>. =item B Wcd gives preference to I over the default stack file name (see section FILES). With this variable each shell (or used terminal emulator) can have its private stack of used directories. To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell. export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) For a stack per xterm(1), use the xterm I environment variable: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID For GNU screen(1), to use stack per screen: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW =item B If the environment variable I is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are C and C. =item B Wcd with PDCurses interface recognizes the environment variable I. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt: set PDC_RESTORE_SCREEN=1 Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width. =item B Printing of C<#!$SHELL> on the first line of the go-script for POSIX type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable I must be set in environment using the C command, otherwise wcd can't read the variable. =item B Wcd for DOS bash uses C<$BASH> instead of C<$SHELL>, because C<$SHELL> points to the DOS command shell. One may need to define C<$BASH> with an C command, otherwise wcd can't read the variable. =back =head1 SEE ALSO sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), =head1 AUTHORS Wcd was written by Erwin Waterlander Project homepage: L SourceForge: L Freecode: L The manual page formatting was provided by Jari Aalto . NCD was originally written by Brad Kingsbury for Peter Norton's "Norton Utilities" around 1987. See also L =cut wcd-5.2.5/src/man/man1/Makefile0000664000175000017500000000424012326004051016345 0ustar waterlanwaterlan# pod2man.mk -- Makefile portion to convert *.pod files to manual pages # # Copyright information # # Copyright (C) 2008-2009 Jari Aalto # Copyright (C) 2010-2014 Erwin Waterlander # # License # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details at # Visit . # # Description # # Convert *.pod files to manual pages. ifneq (,) This makefile requires GNU Make. endif .PRECIOUS: %.pod # This variable *must* be set when calling PACKAGE ?= wcd # Optional variables to set MANSECT ?= 1 PODCENTER ?= $$(date "+%Y-%m-%d") # Directories MANSRC = MANDEST = $(MANSRC) MANPOD = $(MANSRC)$(PACKAGE).pod MANPAGE = $(MANDEST)$(PACKAGE).$(MANSECT) POD2MAN = pod2man POD2MAN_FLAGS = POFILES = $(wildcard ../*/man1/wcd.po) PODFILES = $(patsubst %.po,%.pod,$(POFILES)) MAN_OBJECTS = wcd.1 $(patsubst %.pod,%.1,$(PODFILES)) all: $(MAN_OBJECTS) wcd-man.pot wcd-man.pot : wcd.pod po4a-updatepo -f pod -m $< -p $@ %.po : wcd.pod po4a-updatepo -f pod -m $< -p $@ --msgmerge-opt --backup=numbered # Create pod files from po. # Fix problem that =encoding is before =pod command. %.pod : %.po po4a-translate -f pod -m wcd.pod -p $< > $@ -k 30 perl -ni.bak -e 'print unless /=encoding UTF-8/' $@ perl -pli.bak -e 's/=pod/=pod\n\n=encoding UTF-8/' $@ # An empty recipe for wcd.pod to break circular dependency. wcd.pod : ; %.1 : %.pod # make target - create manual page from a *.pod page podchecker $< $(POD2MAN) $(POD2MAN_FLAGS) \ --utf8 \ --center="$(PODCENTER)" \ --name="$(PACKAGE)" \ --section="$(MANSECT)" \ $< \ | perl -p -e 's/[Pp]erl v[0-9.]+/$(PACKAGE)/;' \ > $@ && \ rm -f pod*.tmp clean: rm -f $(MAN_OBJECTS) rm -f wcd-man.pot rm -f $(PODFILES) # End of of Makefile part wcd-5.2.5/src/man/man1/wcd.txt0000664000175000017500000013353012345660660016247 0ustar waterlanwaterlanNAME wcd - Wherever Change Directory chdir for DOS and Unix SYNOPSIS wcd [options] [directory] DESCRIPTION Overview Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search. Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in *The Norton Utilities, Release 4*, for DOS in 1987, published by Peter Norton. Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system. Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section LOCALIZATION. See section INSTALLATION how to setup wcd for personal use. Basic use By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name. For instance this command will change to directory to the current user's "/home/user/Desktop": wcd Desk When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one). Wildcards Wcd supports following wildcards: * matches any sequence of characters (zero or more) ? matches any character [SET] matches any character in the specified set, [!SET] or [^SET] matches any character not in the specified set. A set is composed of characters or ranges; a range looks like *character hyphen character* as in "0-9" or "A-Z". The "[0-9a-zA-Z_]" is the minimal set of characters allowed in the "[..]" pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of "[]*?!^-\" inside or outside a "[..]" construct and match the character exactly, precede the character with a backslash ("\") marker. Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with "top": wcd *top Match directories that have "top" anywhere in the name: wcd *top* Match any directory name that begins with "a", "b" or "c": wcd [a-c]* It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with "Desk" and which path matches **me/Desk**. wcd me/Desk It is allowed to type any kind of expression with slashes and wildcards. E.g.: wcd src*/*1?/a*2 Other uses If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the -w option. The interactive directory tree browser can be started by using option -g. wcd -g Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network. Wcd can also change to directories that are not in the treedata file. E.g.: wcd .. If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option -k. Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options -z, -, + and =. In multi-user environments option -u can be used to change to directories of other users. On DOS and Windows systems it does not matter if you use a slash "/" or a backslash "\" as a directory separator. It is possible on DOS and Windows systems to change drive and directory in one go by preceding the directory name with the drive name. wcd d:games Windows UNC paths The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB LAN UNC paths without drive letter such as "\\servername\sharename". Wcd for Windows Command Prompt makes use of the "pushd" command to automatically map a UNC path to a drive letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current working directory can be a UNC path. Interfaces Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time. The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by . This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable. The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the -N option. The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a vim(1) like navigation and search method. It can be activated with option -g. By using the -o option one can always fall back to the stdin/stdout interface. OPTIONS -a Add current path to the default treedata file. Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases. -aa Add current and all parent paths to the default treedata file. -A PATH Scan directory tree from *PATH* and append to the default treedata file. Examples: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share On Windows one can scan all shared directories of a Windows LAN server by typing something like: "wcd -A \\servername". See also option -S and -s and -E. -b Ban current path. Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories. The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path. Banned paths are not excluded from scanning the disk. To do that use option -xf. -c, --direct-cd Direct CD mode. By default wcd works as follows: 1. Try to find a match in the treedata file(s) 2. If no match, try to open the directory you typed. In direct CD mode wcd works in reversed order. 1. Try to open the directory you typed. 2. If not, try to find a match in the treedata file(s). -d DRIVE Set drive for stack and go file (DOS only). The stack file and the go-script are by default stored on drive C: if environment variable *HOME* is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options -, + and =. -e Add current path to the extra treedata file. Use this option to quickly add the current path to the extra treedata file. -ee Add current and all parent paths to extra treedata file. -E PATH Scan directory tree from *PATH* and append to Extra treedata file. See also options -A and -S. -f FILE Read treedata file *FILE*. Do not read the default treedata file. +f FILE Read treedata file *FILE* in addition to the default treedata file. -g Graphical interface (only in version with curses interface). Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a vim(1) like navigation and search method. If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files. If a search string is given the match list is presented as a directory tree. The default tree layout is similar to the tree layout of the original NCD on DOS. The difference in layout is that in NCD all directories of a same depth level were vertically aligned over the whole tree. This was possible in NCD, because the maximum width of a directory name in DOS was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch. The navigation behaviour in Wcd is exactly the same as in the original NCD. For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree. See options -Ta, -TC, and -Tc to change the navigation behaviour. -gd Dump the treedata files as a tree to stdout. -G PATH Write go-script in directory *PATH*. For instance on Unix, "wcd -G PATH" will write a go-script PATH/wcd.go. -GN, --no-go-script Do not create go-script. This option can be used in combination with the option -j if one does not want wcd to create a go-script. -h, --help Show help and exit. -i, --ignore-case Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default. +i, --no-ignore-case Regard case. See also option -i. -I, --ignore-diacritics Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. See also +I, --no-ignore-diacritics Regard diacritics (default). See also option -I. -j, --just-go Just go mode. In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on. Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a POSIX compatible shell: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } When you are using an old shell that doesn't support "$()" command substitution you have to use old style command substitution with back-quotes. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } On Windows systems, if one is running 4NT shell, one could make the following alias: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` This method eliminates the need of the go-script, so one can use option -GN in combination with -j. -k, --keep-paths Keep paths. Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off. -K, --color Use colors in graphical mode. -l ALIAS Name the current path with *ALIAS*. Wcd places the current path with alias *ALIAS* in the alias file. Aliases are case sensitive. -m DIR Make directory and add to treedata file. -L, --license Print the distribution license. -M DIR Make directory and add to extra treedata file. -n PATH Read relative treedata file from *PATH*. Do not read the default treedata file. The relative treedata file should already have been created using the wcd +S option. *PATH* may also point to a file directly. An example. Suppose another system has been mounted to mount point "/mnt/network": wcd -n /mnt/network src Wcd opens the relative treedata file in "/mnt/network/". The file contains the paths relative from that point. +n PATH Read relative treedata file in addition to the default treedata file. See option -n. -N, --numbers Use numbers instead of letters. Wcd with a conio or curses based interface (see section INTERFACE) presents a match list by default numbered with letters. When the -N option is used the match list is numbered with numbers. Regardless of the -N option one can type a letter or numbers to make a selection from the list of matches. -o Use stdin/stdout interface. When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the -o option. -od, --to-stdout Dump all matches to stdout. -q, --quiet Quieter operation. Printing of the final match is suppressed. -r DIR Remove directory and remove from the treedata file. If the directory is empty, wcd will remove it, and try to remove it from the treedata file. -rmtree DIR Recursively remove directory and remove from the treedata file. Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file. -s (re)Scan disk from $HOME directory. If *HOME* is not defined the disk is scanned from root directory /. The existing default treedata file is overwritten. The default scan directory can be overruled with environment variable "WCDSCAN". See section ENVIRONMENT VARIABLES. -S PATH Scan directory tree from *PATH* and overwrite the default treedata file. See also options -A, -s and -E. E.g. with option -A you can create a default treedata file of your choice. Examples: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share With the Windows versions one can scan all shared directories of a Windows LAN server by typing something like: "wcd -S \\servername". +S PATH Scan disk from *PATH* and place relative paths in a relative treedata file. This file is used by the -n and +n options of wcd. E.g. "wcd -n PATH src". -t Do not strip tmp mount dir "/tmp_mnt" (Unix only) Wcd strips by default "/tmp_mnt/" from the match. Directory "/tmp_mnt" is used by the auto-mounter. This behaviour can be turned off with the -t option. -T, --ascii-tree Draw tree with ASCII characters. Use this option if line drawing characters are not displayed properly in your terminal. -Ta, --alt-tree-nav Alternative way of navigation in the graphical tree. In the default NCD style tree layout the -Ta option disables jumping to unrelated directories. In compact tree mode the alternative mode makes navigation similar to navigation in GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left. You can switch on-the-fly between default and alternative navigation by pressing . When alternative navigation mode is on, you will see an "A" in the lower right corner. -TC, --center-tree Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key in the graphical tree. The standard non-centered behaviour, which minimises tree movement, is the same as in the original NCD. -Tc, --compact-tree By default the 'graphical' tree is drawn the same way as the original NCD on DOS did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use option -Tc or switch on-the-fly with the key. -Td, --cjk-width Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese CP936 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy CJK font is used. When CJK mode is on, you will see a "C" in the lower right corner. -u USER Scan treedata file of another user based on *USER*, do not scan your own default treedata file. See also section ENVIRONMENT VARIABLES for *WCDUSERSHOME*. On Unix/Cygwin the base directory for user home directories is assumed to be "/home". Wcd will look for "/home/USER/.treedata.wcd" and "/home/USER/.wcd/.treedata.wcd", in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be "\\users", so wcd tries to read "\\users\USER\treedata.wcd" and "\\users\USER\.wcd\treedata.wcd". +u USER Read default treedata file of USER in addition to your own treedata file. -v, --verbose Display verbose messages. With this option wcd prints all filters, bans and excludes. -V, --version Print version information and exit. -w, --wild-match-only Wild matching only. Treat all matches as wild matches. -x PATH Exclude *PATH* from scanning. When this option is used wcd will exclude *PATH* and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option -x can be used multiple times. wcd -x -x -s Option -x must be used in front of any scan option (-s, -S, +S, -A, -E). On DOS/Windows systems one must specify the drive letter depending on if environment variable *HOME* or *WCDHOME* is set. If *HOME* or *WCDHOME* is set one needs to specify the drive letter. An example: wcd -x c:/temp -S c: Otherwise do not specify drive letter. wcd -x /temp -s -xf FILE Exclude all paths listed in *FILE* from scanning. When this option is used wcd will exclude all paths listed in *FILE* and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option -xf can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix): wcd -xf ~/.ban.wcd -s Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with "*/.svn". Option -xf must be used in front of any scan option (-s, -S, +S, -A, -E). -y, --assume-yes Assume Yes on all queries. Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option -rmtree. This option must be used in front of options that can lead to yes/no questions. -z NUMBER Set maximum stack size to NUMBER. The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (-,+,=). Otherwise the size of the stack will be set back to the default 10. A correct command is: wcd -z 50 - The new stack size will be 50, wcd will go one directory back. A wrong command is: wcd - -z 50 Wcd goes one directory back, the stack gets the default size 10. The -z 50 is ignored. Add this option as the first option to your wcd alias or function. E.g. for the a POSIX compatible shell this would be: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } -[NUMBER] Push dir NUMBER of times. Default is one. Go back a directory. Command "wcd -" goes one directory back. To go more directories back add a number to it. E.g. command "wcd -3". The stack is cyclic. +[NUMBER] Pop dir NUMBER of times. Default is one. Go forward a directory. Command "wcd +" goes one directory forward. To go more directories forward add a number to it. E.g. command "wcd +2". The stack is cyclic. = Show stack. Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk "*". INSTALLATION The current working directory of a Unix shell can only be changed by the builtin cd(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined. Another important influence on your installation is the definition of environment variables *HOME* and *WCDHOME*. See section ENVIRONMENT VARIABLES. Install for POSIX type shells For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the following function to the shell startup file (e.g. Bash uses "$HOME/.bashrc"): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Replace *PATH* with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell. The location of the go-script "wcd.go" differs per shell. Wcd for DJGPP DOS bash requires a different function. The go script is not written in a directory "bin", and if *WCDHOME* and *HOME* are both not defined the go-script is written on c:/. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } The WinZsh version of wcd is also a bit different. No "bin" directory. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } See section FILES for more information. Install for C-alike shells (csh, tcsh) Add the following alias to the shell startup file "$HOME/.cshrc" or "$HOME/.tcshrc" : if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Replace *PATH* with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell. Windows Command Prompt version Unpack the zip file and add directory "bin" to your environment variable *PATH*. In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip "wcd.bat" runs the wcd program which generates a new batch script "wcdgo.bat". Then "wcd.bat" runs "wcdgo.bat" which actually changes the directory. Windows VISTA and higher In a Windows VISTA and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select *Run as administrator*. Windows PowerShell version Add the following function to your PowerShell user profile. The location of this profile is stored in the $profile variable. It is required that one of the environment variables *HOME* or *WCDHOME* is defined. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Replace *PATH* with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers. OS/2 Command Prompt version In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work directory. That is why wcd generates a command script "wcdgo.cmd" which must be executed in the current shell. The script "wcd.cmd" first executes "wcdos2.exe", which creates the "wcdgo.cmd" script. Then "wcd.cmd" executes the "wcdgo.cmd" script. LOCALIZATION LANG The primary language is selected with the environment variable *LANG*. The *LANG* variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells: export LANG=nl Dutch export LANG=nl_NL Dutch, The Netherlands export LANG=nl_BE Dutch, Belgium export LANG=es_ES Spanish, Spain export LANG=es_MX Spanish, Mexico export LANG=en_US.iso88591 English, USA, Latin-1 encoding For a complete list of language and country codes see the gettext(1) manual: On Unix systems you can use to command locale(1) to get locale specific information. LANGUAGE With the *LANGUAGE* environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to *LANGUAGE* over *LANG*. For instance, first Dutch and then German: "LANGUAGE=nl:de". You have to first enable localization, by setting *LANG* or *LC_ALL* to a value other than *C*, before you can use a language priority list through the *LANGUAGE* variable. See also the gettext(1) manual: If you select a language which is not available you will get the standard English messages. WCDLOCALEDIR With the environment variable *WCDLOCALEDIR* the *LOCALEDIR* used during compilation and installation of wcd can be overruled. *LOCALEDIR* is used by wcd with native language support to find the language files. The GNU default value is "/usr/local/share/locale". By typing "wcd -V" wcd will print the *LOCALEDIR* that is used. If you have installed wcd in a different directory than the default directory you may need to set the environment variable *WCDLOCALEDIR* to point to the locale directory. An example for Windows cmd: set WCDLOCALEDIR=c:/my_prefix/share/locale An example for a POSIX shell: export WCDLOCALEDIR=$HOME/share/locale LC_COLLATE When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment *LANG* has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored. The sorting gives preference to environment variable *LC_COLLATE* over *LANG*. If you make *LC_COLLATE* equal to "C" or "POSIX", locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this: export LANG=nl_NL export LC_COLLATE=C LC_CTYPE With regard to character encoding Wcd will give preference to variable *LC_CTYPE* over *LANG*. For instance to set character encoding to UTF-8 the following environment setting can be done. export LC_CTYPE=en_US.UTF-8 LC_ALL All locale environment variables that start with *LC_* are overruled by the environment variable *LC_ALL* if it is defined. Wcd gives preference to *LC_ALL* over *LC_COLLATE* and *LC_CTYPE*. WINDOWS CODE PAGES There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI). The default encoding for Windows, when configured with Western regional settings, is ANSI CP1252. Windows programs, for instance notepad, use this default system ANSI code page. The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility with DOS programs. If you use a DOS version of wcd in a Windows console it will work, because of the DOS code page. But the DOS version of wcd lacks support for long directory names and network drives on Windows. The Windows version of wcd is a native Windows program and will use the Windows system ANSI code page. So on a Western regional Windows it will use code page CP1252 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate ANSI output to Unicode output in the Command Prompt and PowerShell. The console raster font only supports the original OEM code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and ANSI) letters appear correctly. Non-Unicode versions of Wcd *prior to version 5.2.0* use plain ANSI output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol. The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the "chcp" command. When you type "wcd -V", the actual character encoding used by wcd is shown. Type the command "chcp" to display the active code page of the Windows console. UNICODE Wcd has optional support for Unicode. To see if wcd was built with Unicode support type "wcd -V". If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: "Chinese"). Wcd has been *soft* converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type "wcd -V". Wcd with Unicode normalization support will match Unicode names based on *compatible* equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also UTF-8 on Unix/Linux In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance with LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character encodings should also work, but that has not been tested. Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files. UTF-16 on Windows On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP Software, which can be used on older Windows versions (XP/Vista). On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default ANSI code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead. Wcd with Unicode support will read the UTF-16 encoded directory names and converts them internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8. All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided there is an UTF-8 BOM in the script. Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in UTF-8, and the batch script must *not* have a BOM. The active code page of the Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will create such a go script "wcdgo.bat". It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page. You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly. The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see ), but it can't change to directories with Unicode letters in the name that are not part of the default system ANSI code page. The Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes them also readable by notepad. UTF-8 on Cygwin Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character encoding to UTF-8 with the *LANG* or *LC_CTYPE* environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console. The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in the treedata files, and it is assumed they are encoded in the Cygwin locale character encoding. FILES If the environment variable *WCDHOME* is set wcd will use *WCDHOME* instead of *HOME*. All "*.wcd" files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the DOS version. The Cygwin version of wcd behaves as the Unix version. wcd.exe The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section INSTALLATION. default treedata file This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one. DOS: \treedata.wcd or %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd extra treedata file An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also. DOS: \extra.wcd or %HOME%\extra.wcd Unix: $HOME/.extra.wcd ban file In this optional file wcd places banned paths. See option -b. Wildcards are supported. DOS: \ban.wcd or %HOME%\ban.wcd Unix: $HOME/.ban.wcd alias file Optional file with wcd aliases. See option -l. DOS: \alias.wcd or %HOME%\alias.wcd Unix: $HOME/.alias.wcd stack file In this file wcd stores its stack. The drive letter can be changed with the -d option. DOS: c:\stack.wcd or %HOME%\stack.wcd Unix: $HOME/.stack.wcd The name of the stack file can be changed with environment variable *WCDSTACKFILE*. See section ENVIRONMENT VARIABLES. go-script This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the -d option. For history reasons it is placed by default in "$HOME/bin" on Unix systems. The directory of this file can be changed with the option -G. DOS bash: c:/wcd.go or $HOME/wcd.go Windows Command Prompt: c:\wcdgo.bat or %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2 Command Prompt: c:\wcdgo.cmd or %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go relative treedata file Text file with relative paths from *DIR*. See options +S, -n and +n. DOS: \rtdata.wcd Unix: /.rtdata.wcd ENVIRONMENT VARIABLES HOME Wcd uses by default environment variable *HOME* to determine where to store its files. See also section FILES. This can be overruled with environment variable *WCDHOME*. *HOME* also defines where to start scanning the disk when option -s is used. This can be overruled with the environment variable *WCDSCAN*. For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is required that *HOME* or *WCDHOME* is set. For the other versions of wcd the use of these variables is optional. If *HOME* is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory *HOME*. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from *HOME*. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.: wcd -S c: -A d: -A e: Matching of directories is now global over all scanned drives. WCDHOME Environment variable *WCDHOME* can be used to change the location of wcd's files. If both *HOME* and *WCDHOME* are set, *WCDHOME* will be used instead of *HOME*. In wcd versions prior to 5.1.5 *WCDHOME* also changed the default scan directory. This has changed. Since version 5.1.5 *WCDHOME* does not change the default scan directory. See option -s. From version 5.1.5, use environment *WCDSCAN* to overrule the default scan directory. Example for DOS, Windows, OS/2 Command Prompt: set WCDHOME=C:\Users\erwin\wcd An example for POSIX type shells: export WCDHOME="$HOME/.wcd" An example for Csh type shells: setenv WCDHOME "$HOME/.wcd" WCDSCAN Use environment variable *WCDSCAN* to overrule the default scan directory *HOME*. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated. Examples for DOS, Windows, OS/2 Command Prompt: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX An example for POSIX type shells: export WCDSCAN="$HOME:/projectdisk/projectX" An example for Csh type shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" WCDFILTER Specify filters with environment variable *WCDFILTER*. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the *PATH* variable. The case sensitivity is mandated by the Operating system. An example for DOS, Windows, OS/2 Command Prompt: set WCDFILTER=projects;doc An example for POSIX type shells: export WCDFILTER="projects:doc" An example for Csh type shells: setenv WCDFILTER "projects:doc" WCDBAN The paths specified with environment *WCDBAN* will be banned by wcd. See also option -b. Specify a list of paths separated by shell *PATH* separator. WCDEXCLUDE The paths specified with environment *WCDEXCLUDE* will be excluded by wcd. See also options -x and -xf. Specify a list of paths separated by shell *PATH* separator. An example for DOS, Windows, OS/2 Command Prompt: set WCDEXCLUDE=*/windows;*/temp;*CVS An example for POSIX type shells: export WCDEXCLUDE="/dev:/tmp:*CVS" An example for Csh type shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" WCDUSERSHOME Set the base of user's home directories. On DOS/Windows the default value is "\\users". On Unix/Cygwin the default value is "/home". This variable is used to scan treedata files of other users. See also options -u and +u. In verbose mode wcd will print all filters, bans and excludes. See option -v. WCDSTACKFILE Wcd gives preference to *WCDSTACKFILE* over the default stack file name (see section FILES). With this variable each shell (or used terminal emulator) can have its private stack of used directories. To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell. export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) For a stack per xterm(1), use the xterm *WINDOWID* environment variable: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID For GNU screen(1), to use stack per screen: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW TERMINFO If the environment variable *TERMINFO* is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are "/usr/lib/terminfo" and "/usr/share/terminfo". PDC_RESTORE_SCREEN Wcd with PDCurses interface recognizes the environment variable *PDC_RESTORE_SCREEN*. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt: set PDC_RESTORE_SCREEN=1 Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width. SHELL Printing of "#!$SHELL" on the first line of the go-script for POSIX type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable *SHELL* must be set in environment using the "export" command, otherwise wcd can't read the variable. BASH Wcd for DOS bash uses $BASH instead of $SHELL, because $SHELL points to the DOS command shell. One may need to define $BASH with an "export" command, otherwise wcd can't read the variable. SEE ALSO sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), AUTHORS Wcd was written by Erwin Waterlander Project homepage: SourceForge: Freecode: The manual page formatting was provided by Jari Aalto . NCD was originally written by Brad Kingsbury for Peter Norton's "Norton Utilities" around 1987. See also wcd-5.2.5/src/man/man1/wcd.htm0000664000175000017500000015230712345660660016223 0ustar waterlanwaterlan wcd 5.2.5 - Wherever Change Directory

NAME

wcd - Wherever Change Directory

chdir for DOS and Unix

SYNOPSIS

    wcd [options] [directory]

DESCRIPTION

Overview

Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search.

Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in The Norton Utilities, Release 4, for DOS in 1987, published by Peter Norton.

Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system.

Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section LOCALIZATION.

See section INSTALLATION how to setup wcd for personal use.

Basic use

By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name.

For instance this command will change to directory to the current user's /home/user/Desktop:

    wcd Desk

When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one).

Wildcards

Wcd supports following wildcards:

    *       matches any sequence of characters (zero or more)
    ?       matches any character
    [SET]   matches any character in the specified set,
    [!SET]  or [^SET] matches any character not in the specified set.

A set is composed of characters or ranges; a range looks like character hyphen character as in 0-9 or A-Z. The [0-9a-zA-Z_] is the minimal set of characters allowed in the [..] pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of []*?!^-\ inside or outside a [..] construct and match the character exactly, precede the character with a backslash (\) marker.

Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with "top":

    wcd *top

Match directories that have "top" anywhere in the name:

    wcd *top*

Match any directory name that begins with "a", "b" or "c":

    wcd [a-c]*

It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with "Desk" and which path matches *me/Desk*.

    wcd me/Desk

It is allowed to type any kind of expression with slashes and wildcards. E.g.:

    wcd src*/*1?/a*2

Other uses

If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the -w option.

The interactive directory tree browser can be started by using option -g.

    wcd -g

Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network.

Wcd can also change to directories that are not in the treedata file. E.g.:

    wcd ..

If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option -k.

Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options -z, -, + and =.

In multi-user environments option -u can be used to change to directories of other users.

On DOS and Windows systems it does not matter if you use a slash "/" or a backslash "\" as a directory separator.

It is possible on DOS and Windows systems to change drive and directory in one go by preceding the directory name with the drive name.

    wcd d:games

Windows UNC paths

The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB LAN UNC paths without drive letter such as \\servername\sharename. Wcd for Windows Command Prompt makes use of the "pushd" command to automatically map a UNC path to a drive letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current working directory can be a UNC path.

Interfaces

Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time.

The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by <Enter>. This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable.

The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the -N option.

The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a vim(1) like navigation and search method. It can be activated with option -g.

By using the -o option one can always fall back to the stdin/stdout interface.

OPTIONS

-a

Add current path to the default treedata file.

Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases.

-aa

Add current and all parent paths to the default treedata file.

-A PATH

Scan directory tree from PATH and append to the default treedata file. Examples:

    wcd -A .
    wcd -A /home -A /etc
    wcd -A d: -A e: -A \\server\share

On Windows one can scan all shared directories of a Windows LAN server by typing something like: wcd -A \\servername.

See also option -S and -s and -E.

-b

Ban current path.

Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories.

The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path.

Banned paths are not excluded from scanning the disk. To do that use option -xf.

-c, --direct-cd

Direct CD mode. By default wcd works as follows:

    1. Try to find a match in the treedata file(s)
    2. If no match, try to open the directory you typed.

In direct CD mode wcd works in reversed order.

    1. Try to open the directory you typed.
    2. If not, try to find a match in the treedata file(s).
-d DRIVE

Set drive for stack and go file (DOS only).

The stack file and the go-script are by default stored on drive C: if environment variable HOME is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options -, + and =.

-e

Add current path to the extra treedata file.

Use this option to quickly add the current path to the extra treedata file.

-ee

Add current and all parent paths to extra treedata file.

-E PATH

Scan directory tree from PATH and append to Extra treedata file. See also options -A and -S.

-f FILE

Read treedata file FILE. Do not read the default treedata file.

+f FILE

Read treedata file FILE in addition to the default treedata file.

-g

Graphical interface (only in version with curses interface).

Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a vim(1) like navigation and search method.

If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files.

If a search string is given the match list is presented as a directory tree.

The default tree layout is similar to the tree layout of the original NCD on DOS. The difference in layout is that in NCD all directories of a same depth level were vertically aligned over the whole tree. This was possible in NCD, because the maximum width of a directory name in DOS was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch.

The navigation behaviour in Wcd is exactly the same as in the original NCD. For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree.

See options -Ta, -TC, and -Tc to change the navigation behaviour.

-gd

Dump the treedata files as a tree to stdout.

-G PATH

Write go-script in directory PATH. For instance on Unix, wcd -G PATH will write a go-script PATH/wcd.go.

-GN, --no-go-script

Do not create go-script. This option can be used in combination with the option -j if one does not want wcd to create a go-script.

-h, --help

Show help and exit.

-i, --ignore-case

Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default.

+i, --no-ignore-case

Regard case. See also option -i.

-I, --ignore-diacritics

Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. See also http://en.wikipedia.org/wiki/Diacritic

+I, --no-ignore-diacritics

Regard diacritics (default). See also option -I.

-j, --just-go

Just go mode.

In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on.

Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a POSIX compatible shell:

    wcd ()
    {
        cd "$($HOME/bin/wcd.exe -j $@)"
    }

When you are using an old shell that doesn't support "$()" command substitution you have to use old style command substitution with back-quotes.

    wcd ()
    {
        cd "`$HOME/bin/wcd.exe -j $@`"
    }

On Windows systems, if one is running 4NT shell, one could make the following alias:

    alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`

This method eliminates the need of the go-script, so one can use option -GN in combination with -j.

-k, --keep-paths

Keep paths.

Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off.

-K, --color

Use colors in graphical mode.

-l ALIAS

Name the current path with ALIAS. Wcd places the current path with alias ALIAS in the alias file. Aliases are case sensitive.

-m DIR

Make directory and add to treedata file.

-L, --license

Print the distribution license.

-M DIR

Make directory and add to extra treedata file.

-n PATH

Read relative treedata file from PATH.

Do not read the default treedata file. The relative treedata file should already have been created using the wcd +S option. PATH may also point to a file directly.

An example. Suppose another system has been mounted to mount point /mnt/network:

    wcd -n /mnt/network src

Wcd opens the relative treedata file in /mnt/network/. The file contains the paths relative from that point.

+n PATH

Read relative treedata file in addition to the default treedata file. See option -n.

-N, --numbers

Use numbers instead of letters.

Wcd with a conio or curses based interface (see section INTERFACE) presents a match list by default numbered with letters. When the -N option is used the match list is numbered with numbers. Regardless of the -N option one can type a letter or numbers to make a selection from the list of matches.

-o

Use stdin/stdout interface.

When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the -o option.

-od, --to-stdout

Dump all matches to stdout.

-q, --quiet

Quieter operation. Printing of the final match is suppressed.

-r DIR

Remove directory and remove from the treedata file.

If the directory is empty, wcd will remove it, and try to remove it from the treedata file.

-rmtree DIR

Recursively remove directory and remove from the treedata file.

Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file.

-s

(re)Scan disk from $HOME directory. If HOME is not defined the disk is scanned from root directory /.

The existing default treedata file is overwritten.

The default scan directory can be overruled with environment variable WCDSCAN. See section ENVIRONMENT VARIABLES.

-S PATH

Scan directory tree from PATH and overwrite the default treedata file. See also options -A, -s and -E. E.g. with option -A you can create a default treedata file of your choice. Examples:

Unix:

    wcd -S /
    wcd -S /home -A /etc -A /usr

DOS/Windows:

    wcd -S c:/
    wcd -S c: -A d: -A \\server\share

With the Windows versions one can scan all shared directories of a Windows LAN server by typing something like: wcd -S \\servername.

+S PATH

Scan disk from PATH and place relative paths in a relative treedata file. This file is used by the -n and +n options of wcd. E.g. wcd -n PATH src.

-t

Do not strip tmp mount dir /tmp_mnt (Unix only)

Wcd strips by default /tmp_mnt/ from the match. Directory /tmp_mnt is used by the auto-mounter. This behaviour can be turned off with the -t option.

-T, --ascii-tree

Draw tree with ASCII characters. Use this option if line drawing characters are not displayed properly in your terminal.

-Ta, --alt-tree-nav

Alternative way of navigation in the graphical tree.

In the default NCD style tree layout the -Ta option disables jumping to unrelated directories.

In compact tree mode the alternative mode makes navigation similar to navigation in GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left.

You can switch on-the-fly between default and alternative navigation by pressing <Shift-A>.

When alternative navigation mode is on, you will see an "A" in the lower right corner.

-TC, --center-tree

Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key <t> in the graphical tree.

The standard non-centered behaviour, which minimises tree movement, is the same as in the original NCD.

-Tc, --compact-tree

By default the 'graphical' tree is drawn the same way as the original NCD on DOS did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use option -Tc or switch on-the-fly with the <m> key.

-Td, --cjk-width

Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese CP936 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy CJK font is used.

When CJK mode is on, you will see a "C" in the lower right corner.

-u USER

Scan treedata file of another user based on USER, do not scan your own default treedata file. See also section ENVIRONMENT VARIABLES for WCDUSERSHOME.

On Unix/Cygwin the base directory for user home directories is assumed to be /home. Wcd will look for /home/USER/.treedata.wcd and /home/USER/.wcd/.treedata.wcd, in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be \\users, so wcd tries to read \\users\USER\treedata.wcd and \\users\USER\.wcd\treedata.wcd.

+u USER

Read default treedata file of USER in addition to your own treedata file.

-v, --verbose

Display verbose messages. With this option wcd prints all filters, bans and excludes.

-V, --version

Print version information and exit.

-w, --wild-match-only

Wild matching only. Treat all matches as wild matches.

-x PATH

Exclude PATH from scanning.

When this option is used wcd will exclude PATH and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option -x can be used multiple times.

    wcd -x <path1> -x <path2> -s

Option -x must be used in front of any scan option (-s, -S, +S, -A, -E).

On DOS/Windows systems one must specify the drive letter depending on if environment variable HOME or WCDHOME is set. If HOME or WCDHOME is set one needs to specify the drive letter. An example:

    wcd -x c:/temp -S c:

Otherwise do not specify drive letter.

    wcd -x /temp -s
-xf FILE

Exclude all paths listed in FILE from scanning.

When this option is used wcd will exclude all paths listed in FILE and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option -xf can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix):

    wcd -xf ~/.ban.wcd -s

Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with */.svn.

Option -xf must be used in front of any scan option (-s, -S, +S, -A, -E).

-y, --assume-yes

Assume Yes on all queries.

Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option -rmtree. This option must be used in front of options that can lead to yes/no questions.

-z NUMBER

Set maximum stack size to NUMBER.

The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (-,+,=). Otherwise the size of the stack will be set back to the default 10.

A correct command is:

    wcd -z 50 -

The new stack size will be 50, wcd will go one directory back. A wrong command is:

    wcd - -z 50

Wcd goes one directory back, the stack gets the default size 10. The -z 50 is ignored.

Add this option as the first option to your wcd alias or function. E.g. for the a POSIX compatible shell this would be:

    wcd ()
    {
        wcd.exe -z 50 "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }
-[NUMBER]

Push dir NUMBER of times. Default is one.

Go back a directory. Command wcd - goes one directory back. To go more directories back add a number to it. E.g. command wcd -3. The stack is cyclic.

+[NUMBER]

Pop dir NUMBER of times. Default is one.

Go forward a directory. Command wcd + goes one directory forward. To go more directories forward add a number to it. E.g. command wcd +2. The stack is cyclic.

=

Show stack.

Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk *.

INSTALLATION

The current working directory of a Unix shell can only be changed by the builtin cd(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined.

Another important influence on your installation is the definition of environment variables HOME and WCDHOME. See section ENVIRONMENT VARIABLES.

Install for POSIX type shells

For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the following function to the shell startup file (e.g. Bash uses $HOME/.bashrc):

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }

Replace PATH with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell.

The location of the go-script wcd.go differs per shell.

Wcd for DJGPP DOS bash requires a different function. The go script is not written in a directory bin, and if WCDHOME and HOME are both not defined the go-script is written on c:/.

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

The WinZsh version of wcd is also a bit different. No bin directory.

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

See section FILES for more information.

Install for C-alike shells (csh, tcsh)

Add the following alias to the shell startup file $HOME/.cshrc or $HOME/.tcshrc :

    if ( ${?WCDHOME} ) then
        alias wcd "<PATH>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "<PATH>/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

Replace PATH with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell.

Windows Command Prompt version

Unpack the zip file and add directory bin to your environment variable PATH.

In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip wcd.bat runs the wcd program which generates a new batch script wcdgo.bat. Then wcd.bat runs wcdgo.bat which actually changes the directory.

Windows VISTA and higher

In a Windows VISTA and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select Run as administrator.

Windows PowerShell version

Add the following function to your PowerShell user profile. The location of this profile is stored in the $profile variable. It is required that one of the environment variables HOME or WCDHOME is defined.

    function wcd
    {
        <PATH>\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

Replace PATH with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers.

OS/2 Command Prompt version

In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work directory. That is why wcd generates a command script wcdgo.cmd which must be executed in the current shell. The script wcd.cmd first executes wcdos2.exe, which creates the wcdgo.cmd script. Then wcd.cmd executes the wcdgo.cmd script.

LOCALIZATION

LANG

The primary language is selected with the environment variable LANG. The LANG variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells:

    export LANG=nl               Dutch
    export LANG=nl_NL            Dutch, The Netherlands
    export LANG=nl_BE            Dutch, Belgium
    export LANG=es_ES            Spanish, Spain
    export LANG=es_MX            Spanish, Mexico
    export LANG=en_US.iso88591   English, USA, Latin-1 encoding

For a complete list of language and country codes see the gettext(1) manual: http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes On Unix systems you can use to command locale(1) to get locale specific information.

LANGUAGE

With the LANGUAGE environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to LANGUAGE over LANG. For instance, first Dutch and then German: LANGUAGE=nl:de. You have to first enable localization, by setting LANG or LC_ALL to a value other than C, before you can use a language priority list through the LANGUAGE variable. See also the gettext(1) manual: http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

If you select a language which is not available you will get the standard English messages.

WCDLOCALEDIR

With the environment variable WCDLOCALEDIR the LOCALEDIR used during compilation and installation of wcd can be overruled. LOCALEDIR is used by wcd with native language support to find the language files. The GNU default value is /usr/local/share/locale. By typing wcd -V wcd will print the LOCALEDIR that is used.

If you have installed wcd in a different directory than the default directory you may need to set the environment variable WCDLOCALEDIR to point to the locale directory.

An example for Windows cmd:

    set WCDLOCALEDIR=c:/my_prefix/share/locale

An example for a POSIX shell:

    export WCDLOCALEDIR=$HOME/share/locale
LC_COLLATE

When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment LANG has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored.

The sorting gives preference to environment variable LC_COLLATE over LANG. If you make LC_COLLATE equal to C or POSIX, locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this:

    export LANG=nl_NL
    export LC_COLLATE=C
LC_CTYPE

With regard to character encoding Wcd will give preference to variable LC_CTYPE over LANG. For instance to set character encoding to UTF-8 the following environment setting can be done.

    export LC_CTYPE=en_US.UTF-8
LC_ALL

All locale environment variables that start with LC_ are overruled by the environment variable LC_ALL if it is defined. Wcd gives preference to LC_ALL over LC_COLLATE and LC_CTYPE.

WINDOWS CODE PAGES

There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI). The default encoding for Windows, when configured with Western regional settings, is ANSI CP1252. Windows programs, for instance notepad, use this default system ANSI code page. The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility with DOS programs. If you use a DOS version of wcd in a Windows console it will work, because of the DOS code page. But the DOS version of wcd lacks support for long directory names and network drives on Windows.

The Windows version of wcd is a native Windows program and will use the Windows system ANSI code page. So on a Western regional Windows it will use code page CP1252 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate ANSI output to Unicode output in the Command Prompt and PowerShell.

The console raster font only supports the original OEM code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and ANSI) letters appear correctly.

Non-Unicode versions of Wcd prior to version 5.2.0 use plain ANSI output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol.

The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the chcp command.

When you type wcd -V, the actual character encoding used by wcd is shown. Type the command chcp to display the active code page of the Windows console.

UNICODE

Wcd has optional support for Unicode. To see if wcd was built with Unicode support type wcd -V. If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: "Chinese").

Wcd has been soft converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also http://www.cl.cam.ac.uk/~mgk25/unicode.html

Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type wcd -V. Wcd with Unicode normalization support will match Unicode names based on compatible equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also http://en.wikipedia.org/wiki/Unicode_normalization

UTF-8 on Unix/Linux

In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance with

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character encodings should also work, but that has not been tested.

Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files.

UTF-16 on Windows

On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP Software, which can be used on older Windows versions (XP/Vista).

On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default ANSI code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead.

Wcd with Unicode support will read the UTF-16 encoded directory names and converts them internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8.

All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided there is an UTF-8 BOM in the script.

Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in UTF-8, and the batch script must not have a BOM. The active code page of the Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will create such a go script wcdgo.bat. It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page.

You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly.

The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see http://en.wikipedia.org/wiki/Byte_order_mark), but it can't change to directories with Unicode letters in the name that are not part of the default system ANSI code page. The Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes them also readable by notepad.

UTF-8 on Cygwin

Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character encoding to UTF-8 with the LANG or LC_CTYPE environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console.

The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in the treedata files, and it is assumed they are encoded in the Cygwin locale character encoding.

FILES

If the environment variable WCDHOME is set wcd will use WCDHOME instead of HOME. All *.wcd files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the DOS version. The Cygwin version of wcd behaves as the Unix version.

wcd.exe

The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section INSTALLATION.

default treedata file

This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one.

    DOS: \treedata.wcd or %HOME%\treedata.wcd
    Unix: $HOME/.treedata.wcd
extra treedata file

An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also.

    DOS: \extra.wcd or %HOME%\extra.wcd
    Unix: $HOME/.extra.wcd
ban file

In this optional file wcd places banned paths. See option -b. Wildcards are supported.

    DOS: \ban.wcd or %HOME%\ban.wcd
    Unix: $HOME/.ban.wcd
alias file

Optional file with wcd aliases. See option -l.

    DOS: \alias.wcd or %HOME%\alias.wcd
    Unix: $HOME/.alias.wcd
stack file

In this file wcd stores its stack. The drive letter can be changed with the -d option.

    DOS: c:\stack.wcd or %HOME%\stack.wcd
    Unix: $HOME/.stack.wcd

The name of the stack file can be changed with environment variable WCDSTACKFILE. See section ENVIRONMENT VARIABLES.

go-script

This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the -d option. For history reasons it is placed by default in $HOME/bin on Unix systems. The directory of this file can be changed with the option -G.

    DOS bash: c:/wcd.go or $HOME/wcd.go
    Windows Command Prompt: c:\wcdgo.bat or %HOME%\wcdgo.bat
    Windows PowerShell: $env:HOME\wcdgo.ps1
    WinZsh: $HOME/wcd.go
    Cygwin/MSYS: $HOME/bin/wcd.go
    OS/2 Command Prompt: c:\wcdgo.cmd or %HOME%\wcdgo.cmd
    Unix: $HOME/bin/wcd.go
relative treedata file

Text file with relative paths from DIR. See options +S, -n and +n.

    DOS: <path>\rtdata.wcd
    Unix: <path>/.rtdata.wcd

ENVIRONMENT VARIABLES

HOME

Wcd uses by default environment variable HOME to determine where to store its files. See also section FILES. This can be overruled with environment variable WCDHOME.

HOME also defines where to start scanning the disk when option -s is used. This can be overruled with the environment variable WCDSCAN.

For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is required that HOME or WCDHOME is set. For the other versions of wcd the use of these variables is optional.

If HOME is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory HOME. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from HOME. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.:

    wcd -S c: -A d: -A e:

Matching of directories is now global over all scanned drives.

WCDHOME

Environment variable WCDHOME can be used to change the location of wcd's files. If both HOME and WCDHOME are set, WCDHOME will be used instead of HOME.

In wcd versions prior to 5.1.5 WCDHOME also changed the default scan directory. This has changed. Since version 5.1.5 WCDHOME does not change the default scan directory. See option -s. From version 5.1.5, use environment WCDSCAN to overrule the default scan directory.

Example for DOS, Windows, OS/2 Command Prompt:

    set WCDHOME=C:\Users\erwin\wcd

An example for POSIX type shells:

    export WCDHOME="$HOME/.wcd"

An example for Csh type shells:

    setenv WCDHOME "$HOME/.wcd"
WCDSCAN

Use environment variable WCDSCAN to overrule the default scan directory HOME. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated.

Examples for DOS, Windows, OS/2 Command Prompt:

    set WCDSCAN=C:\Users\erwin;D:\data

    set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX

An example for POSIX type shells:

    export WCDSCAN="$HOME:/projectdisk/projectX"

An example for Csh type shells:

    setenv WCDSCAN "$HOME:/projectdisk/projectX"
WCDFILTER

Specify filters with environment variable WCDFILTER. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the PATH variable. The case sensitivity is mandated by the Operating system.

An example for DOS, Windows, OS/2 Command Prompt:

    set WCDFILTER=projects;doc

An example for POSIX type shells:

    export WCDFILTER="projects:doc"

An example for Csh type shells:

    setenv WCDFILTER "projects:doc"
WCDBAN

The paths specified with environment WCDBAN will be banned by wcd. See also option -b. Specify a list of paths separated by shell PATH separator.

WCDEXCLUDE

The paths specified with environment WCDEXCLUDE will be excluded by wcd. See also options -x and -xf. Specify a list of paths separated by shell PATH separator.

An example for DOS, Windows, OS/2 Command Prompt:

    set WCDEXCLUDE=*/windows;*/temp;*CVS

An example for POSIX type shells:

    export WCDEXCLUDE="/dev:/tmp:*CVS"

An example for Csh type shells:

    setenv WCDEXCLUDE "/dev:/tmp:*CVS"
WCDUSERSHOME

Set the base of user's home directories. On DOS/Windows the default value is \\users. On Unix/Cygwin the default value is /home. This variable is used to scan treedata files of other users. See also options -u and +u. In verbose mode wcd will print all filters, bans and excludes. See option -v.

WCDSTACKFILE

Wcd gives preference to WCDSTACKFILE over the default stack file name (see section FILES). With this variable each shell (or used terminal emulator) can have its private stack of used directories.

To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell.

    export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)

For a stack per xterm(1), use the xterm WINDOWID environment variable:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID

For GNU screen(1), to use stack per screen:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
TERMINFO

If the environment variable TERMINFO is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are /usr/lib/terminfo and /usr/share/terminfo.

PDC_RESTORE_SCREEN

Wcd with PDCurses interface recognizes the environment variable PDC_RESTORE_SCREEN. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt:

    set PDC_RESTORE_SCREEN=1

Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width.

SHELL

Printing of #!$SHELL on the first line of the go-script for POSIX type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable SHELL must be set in environment using the export command, otherwise wcd can't read the variable.

BASH

Wcd for DOS bash uses $BASH instead of $SHELL, because $SHELL points to the DOS command shell. One may need to define $BASH with an export command, otherwise wcd can't read the variable.

SEE ALSO

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

AUTHORS

Wcd was written by Erwin Waterlander <waterlan@xs4all.nl>

Project homepage: http://waterlan.home.xs4all.nl/

SourceForge: http://sourceforge.net/projects/wcd/

Freecode: http://freecode.com/projects/wcd/

The manual page formatting was provided by Jari Aalto <jari.aalto@cante.net>.

NCD was originally written by Brad Kingsbury for Peter Norton's "Norton Utilities" around 1987. See also http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml

wcd-5.2.5/src/man/man1/wcd-man.pot0000664000175000017500000020265012345660660017003 0ustar waterlanwaterlan# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2014-06-10 21:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: =head1 #: wcd.pod:43 msgid "NAME" msgstr "" #. type: textblock #: wcd.pod:45 msgid "wcd - Wherever Change Directory" msgstr "" #. type: textblock #: wcd.pod:47 msgid "chdir for DOS and Unix" msgstr "" #. type: =head1 #: wcd.pod:49 msgid "SYNOPSIS" msgstr "" #. type: verbatim #: wcd.pod:51 #, no-wrap msgid "" " wcd [options] [directory]\n" "\n" msgstr "" #. type: =head1 #: wcd.pod:53 msgid "DESCRIPTION" msgstr "" #. type: =head2 #: wcd.pod:55 msgid "Overview" msgstr "" #. type: textblock #: wcd.pod:57 msgid "" "Wcd is a command-line program to change directory fast. It saves time typing " "at the keyboard. One needs to type only a part of a directory name and wcd " "will jump to it. Wcd has a fast selection method in case of multiple matches " "and allows aliasing and banning of directories. Wcd also includes a full " "screen interactive directory tree browser with speed search." msgstr "" #. type: textblock #: wcd.pod:63 msgid "" "Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in " "I, for DOS in 1987, published by Peter " "Norton." msgstr "" #. type: textblock #: wcd.pod:66 msgid "" "Wcd has been ported to different command-line shells: DOS command.com, " "Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne " "(sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others " "running on any operating system." msgstr "" #. type: textblock #: wcd.pod:71 msgid "" "Wcd supports 8 bit character sets on all systems, and has optional support " "for Unicode. See section LOCALIZATION." msgstr "" #. type: textblock #: wcd.pod:74 msgid "See section INSTALLATION how to setup wcd for personal use." msgstr "" #. type: =head2 #: wcd.pod:76 msgid "Basic use" msgstr "" #. type: textblock #: wcd.pod:78 msgid "" "By default (if no wildcards are used) wcd searches for a directory with a " "name that begins with the typed name." msgstr "" #. type: textblock #: wcd.pod:81 msgid "" "For instance this command will change to directory to the current user's " "C
:" msgstr "" #. type: verbatim #: wcd.pod:84 #, no-wrap msgid "" " wcd Desk\n" "\n" msgstr "" #. type: textblock #: wcd.pod:86 msgid "" "When there are multiple matches, wcd will present the user a list of all " "matches. The user can then make a selection with a few keystrokes (most of " "the times only one)." msgstr "" #. type: =head2 #: wcd.pod:90 msgid "Wildcards" msgstr "" #. type: textblock #: wcd.pod:92 msgid "Wcd supports following wildcards:" msgstr "" #. type: verbatim #: wcd.pod:94 #, no-wrap msgid "" " * matches any sequence of characters (zero or more)\n" " ? matches any character\n" " [SET] matches any character in the specified set,\n" " [!SET] or [^SET] matches any character not in the specified set.\n" "\n" msgstr "" #. type: textblock #: wcd.pod:99 msgid "" "A set is composed of characters or ranges; a range looks like I as in C<0-9> or C. The C<[0-9a-zA-Z_]> is the minimal " "set of characters allowed in the C<[..]> pattern construct. International " "characters (i.e. 8 bit characters) are allowed if the system supports " "them. To suppress the special syntactic significance of any of C<[]*?!^-\\> " "inside or outside a C<[..]> construct and match the character exactly, " "precede the character with a backslash (C<\\>) marker." msgstr "" #. type: textblock #: wcd.pod:108 msgid "" "Using wildcards makes powerful searching possible. For instance this matches " "any directory name that ends with \"top\":" msgstr "" #. type: verbatim #: wcd.pod:111 #, no-wrap msgid "" " wcd *top\n" "\n" msgstr "" #. type: textblock #: wcd.pod:113 msgid "Match directories that have \"top\" anywhere in the name:" msgstr "" #. type: verbatim #: wcd.pod:115 #, no-wrap msgid "" " wcd *top*\n" "\n" msgstr "" #. type: textblock #: wcd.pod:117 msgid "Match any directory name that begins with \"a\", \"b\" or \"c\":" msgstr "" #. type: verbatim #: wcd.pod:119 #, no-wrap msgid "" " wcd [a-c]*\n" "\n" msgstr "" #. type: textblock #: wcd.pod:121 msgid "" "It is also possible to give a part of a directory path. Here Wcd searches " "for directory that begins with \"Desk\" and which path matches I<*me/Desk*>." msgstr "" #. type: verbatim #: wcd.pod:124 #, no-wrap msgid "" " wcd me/Desk\n" "\n" msgstr "" #. type: textblock #: wcd.pod:126 msgid "" "It is allowed to type any kind of expression with slashes and wildcards. " "E.g.:" msgstr "" #. type: verbatim #: wcd.pod:129 #, no-wrap msgid "" " wcd src*/*1?/a*2\n" "\n" msgstr "" #. type: =head2 #: wcd.pod:131 msgid "Other uses" msgstr "" #. type: textblock #: wcd.pod:133 msgid "" "If no wildcards are used and wcd finds a perfect match, wcd will ignore all " "wild matches by default. This behaviour can be changed with the B<-w> " "option." msgstr "" #. type: textblock #: wcd.pod:136 msgid "The interactive directory tree browser can be started by using option B<-g>." msgstr "" #. type: verbatim #: wcd.pod:138 #, no-wrap msgid "" " wcd -g\n" "\n" msgstr "" #. type: textblock #: wcd.pod:140 msgid "" "Wcd generates a treedata file where it searches the directory. On Unix and " "Windows systems wcd does add symbolic links to the treedata file while " "scanning the disk, but does not follow them. While following links wcd could " "end up scanning infinite loops, or scan very large portions of a network." msgstr "" #. type: textblock #: wcd.pod:145 msgid "Wcd can also change to directories that are not in the treedata file. E.g.:" msgstr "" #. type: verbatim #: wcd.pod:147 #, no-wrap msgid "" " wcd ..\n" "\n" msgstr "" #. type: textblock #: wcd.pod:149 msgid "" "If wcd found a match but can't change to the directory it tries to remove it " "from the default treedata file. Not from the extra treedata file. See also " "option B<-k>." msgstr "" #. type: textblock #: wcd.pod:153 msgid "" "Wcd keeps a directory stack which is stored on disk. The stack has a default " "size of 10 and is cyclic. See options B<-z>, B<->, B<+> and B<=>." msgstr "" #. type: textblock #: wcd.pod:157 msgid "" "In multi-user environments option B<-u> can be used to change to directories " "of other users." msgstr "" #. type: textblock #: wcd.pod:161 msgid "" "On DOS and Windows systems it does not matter if you use a slash \"/\" or a " "backslash \"\\\" as a directory separator." msgstr "" #. type: textblock #: wcd.pod:164 msgid "" "It is possible on DOS and Windows systems to change drive and directory in " "one go by preceding the directory name with the drive name." msgstr "" #. type: verbatim #: wcd.pod:167 #, no-wrap msgid "" " wcd d:games\n" "\n" msgstr "" #. type: =head2 #: wcd.pod:171 msgid "Windows UNC paths" msgstr "" #. type: textblock #: wcd.pod:173 msgid "" "The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support " "Windows SMB LAN UNC paths without drive letter such as " "C<\\\\servername\\sharename>. Wcd for Windows Command Prompt makes use of " "the \"pushd\" command to automatically map a UNC path to a drive letter. In " "Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The " "current working directory can be a UNC path." msgstr "" #. type: =head2 #: wcd.pod:181 msgid "Interfaces" msgstr "" #. type: textblock #: wcd.pod:183 msgid "" "Wcd has three different interfaces to choose from a list of matches. The " "interface can be chosen at compile time." msgstr "" #. type: textblock #: wcd.pod:186 msgid "" "The first interface uses plain stdin/stdout. A numbered list is printed in " "the terminal. The user has to choose from the list by typing a number " "followed by . This interface does not provide scroll back " "functionality in case of a long list. The scroll back capability of the " "terminal/console has to be used. It is very small and portable." msgstr "" #. type: textblock #: wcd.pod:192 msgid "" "The second interface is built with the conio library. It provides a builtin " "scroll back capability. The user is presented a list numbered with letters. " "Choosing from a list can be done by pressing just one letter. This interface " "is fast because it saves keystrokes. If possible the screen will be restored " "after exiting. One who prefers to type numbers can use the B<-N> option." msgstr "" #. type: textblock #: wcd.pod:199 msgid "" "The third interface is built with the curses library. It is similar to the " "conio interface. The curses version of wcd has also an additional " "'graphical' interface. It lets the user select a directory via a full screen " "interactive directory tree browser. It has a vim(1) like navigation and " "search method. It can be activated with option B<-g>." msgstr "" #. type: textblock #: wcd.pod:205 msgid "" "By using the B<-o> option one can always fall back to the stdin/stdout " "interface." msgstr "" #. type: =head1 #: wcd.pod:208 msgid "OPTIONS" msgstr "" #. type: =item #: wcd.pod:212 msgid "B<-a>" msgstr "" #. type: textblock #: wcd.pod:214 msgid "Add current path to the default treedata file." msgstr "" #. type: textblock #: wcd.pod:216 msgid "" "Use this option to quickly add the current path to the default treedata " "file. Re-scanning the complete disk can take a long time in some cases." msgstr "" #. type: =item #: wcd.pod:219 msgid "B<-aa>" msgstr "" #. type: textblock #: wcd.pod:221 msgid "Add current and all parent paths to the default treedata file." msgstr "" #. type: =item #: wcd.pod:223 msgid "B<-A PATH>" msgstr "" #. type: textblock #: wcd.pod:225 msgid "" "Scan directory tree from I and append to the default treedata " "file. Examples:" msgstr "" #. type: verbatim #: wcd.pod:228 #, no-wrap msgid "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" msgstr "" #. type: textblock #: wcd.pod:232 msgid "" "On Windows one can scan all shared directories of a Windows LAN server by " "typing something like: C." msgstr "" #. type: textblock #: wcd.pod:236 msgid "See also option B<-S> and B<-s> and B<-E>." msgstr "" #. type: =item #: wcd.pod:238 msgid "B<-b>" msgstr "" #. type: textblock #: wcd.pod:240 msgid "Ban current path." msgstr "" #. type: textblock #: wcd.pod:242 msgid "" "Wcd places the current path in the ban file. This means that wcd ignores all " "matches of this directory and its sub directories." msgstr "" #. type: textblock #: wcd.pod:245 msgid "" "The ban file can be edited with a text editor. Use of wildcards is supported " "and names are matched against the absolute path." msgstr "" #. type: textblock #: wcd.pod:248 msgid "" "Banned paths are not excluded from scanning the disk. To do that use option " "B<-xf>." msgstr "" #. type: =item #: wcd.pod:251 msgid "B<-c, --direct-cd>" msgstr "" #. type: textblock #: wcd.pod:253 msgid "Direct CD mode. By default wcd works as follows:" msgstr "" #. type: verbatim #: wcd.pod:255 #, no-wrap msgid "" " 1. Try to find a match in the treedata file(s)\n" " 2. If no match, try to open the directory you typed.\n" "\n" msgstr "" #. type: textblock #: wcd.pod:258 msgid "In direct CD mode wcd works in reversed order." msgstr "" #. type: verbatim #: wcd.pod:260 #, no-wrap msgid "" " 1. Try to open the directory you typed.\n" " 2. If not, try to find a match in the treedata file(s).\n" "\n" msgstr "" #. type: =item #: wcd.pod:264 msgid "B<-d DRIVE>" msgstr "" #. type: textblock #: wcd.pod:266 msgid "Set drive for stack and go file (DOS only)." msgstr "" #. type: textblock #: wcd.pod:268 msgid "" "The stack file and the go-script are by default stored on drive C: if " "environment variable I is not set. Use this option if drive C: is a " "read-only drive. This option must be used in front of the stack options " "B<->, B<+> and B<=>." msgstr "" #. type: =item #: wcd.pod:273 msgid "B<-e>" msgstr "" #. type: textblock #: wcd.pod:275 msgid "Add current path to the extra treedata file." msgstr "" #. type: textblock #: wcd.pod:277 msgid "Use this option to quickly add the current path to the extra treedata file." msgstr "" #. type: =item #: wcd.pod:279 msgid "B<-ee>" msgstr "" #. type: textblock #: wcd.pod:281 msgid "Add current and all parent paths to extra treedata file." msgstr "" #. type: =item #: wcd.pod:283 msgid "B<-E PATH>" msgstr "" #. type: textblock #: wcd.pod:285 msgid "" "Scan directory tree from I and append to Extra treedata file. See also " "options B<-A> and B<-S>." msgstr "" #. type: =item #: wcd.pod:288 msgid "B<-f FILE>" msgstr "" #. type: textblock #: wcd.pod:290 msgid "Read treedata file I. Do not read the default treedata file." msgstr "" #. type: =item #: wcd.pod:292 msgid "B<+f FILE>" msgstr "" #. type: textblock #: wcd.pod:294 msgid "Read treedata file I in addition to the default treedata file." msgstr "" #. type: =item #: wcd.pod:296 msgid "B<-g>" msgstr "" #. type: textblock #: wcd.pod:298 msgid "Graphical interface (only in version with curses interface)." msgstr "" #. type: textblock #: wcd.pod:300 msgid "" "Wcd starts a textual curses based 'graphical' interface. The user can select " "a directory via a full-screen interactive directory tree browser. It has a " "vim(1) like navigation and search method." msgstr "" #. type: textblock #: wcd.pod:304 msgid "" "If no search string is given wcd presents the whole tree which is in the " "default treedata file and the extra treedata files." msgstr "" #. type: textblock #: wcd.pod:307 msgid "If a search string is given the match list is presented as a directory tree." msgstr "" #. type: textblock #: wcd.pod:310 msgid "" "The default tree layout is similar to the tree layout of the original NCD on " "DOS. The difference in layout is that in NCD all directories of a same depth " "level were vertically aligned over the whole tree. This was possible in NCD, " "because the maximum width of a directory name in DOS was 12 (8.3) " "characters. On modern operating systems directory names can be very long, so " "also the differences in length can be large. Therefore folders with a same " "depth are not vertically aligned over the whole tree in wcd, but only in " "sub-branches. So there is some sideways movement when moving straight up " "and down from one sub-branch to another sub-branch." msgstr "" #. type: textblock #: wcd.pod:320 msgid "" "The navigation behaviour in Wcd is exactly the same as in the original " "NCD. For instance if you push the Down key you go down to the next directory " "with the same depth level, jumping over branches. This enables fast " "navigation through the tree." msgstr "" #. type: textblock #: wcd.pod:325 msgid "See options B<-Ta>, B<-TC>, and B<-Tc> to change the navigation behaviour." msgstr "" #. type: =item #: wcd.pod:327 msgid "B<-gd>" msgstr "" #. type: textblock #: wcd.pod:329 msgid "Dump the treedata files as a tree to stdout." msgstr "" #. type: =item #: wcd.pod:331 msgid "B<-G PATH>" msgstr "" #. type: textblock #: wcd.pod:333 msgid "" "Write go-script in directory I. For instance on Unix, C " "will write a go-script B." msgstr "" #. type: =item #: wcd.pod:336 msgid "B<-GN, --no-go-script>" msgstr "" #. type: textblock #: wcd.pod:338 msgid "" "Do not create go-script. This option can be used in combination with the " "option B<-j> if one does not want wcd to create a go-script." msgstr "" #. type: =item #: wcd.pod:341 msgid "B<-h, --help>" msgstr "" #. type: textblock #: wcd.pod:343 msgid "Show help and exit." msgstr "" #. type: =item #: wcd.pod:345 msgid "B<-i, --ignore-case>" msgstr "" #. type: textblock #: wcd.pod:347 msgid "" "Ignore case. Dos and Windows versions of wcd ignore case " "default. Unix/Cygwin versions regard case by default." msgstr "" #. type: =item #: wcd.pod:351 msgid "B<+i, --no-ignore-case>" msgstr "" #. type: textblock #: wcd.pod:353 msgid "Regard case. See also option B<-i>." msgstr "" #. type: =item #: wcd.pod:355 msgid "B<-I, --ignore-diacritics>" msgstr "" #. type: textblock #: wcd.pod:357 msgid "" "Ignore diacritics for Latin-based scripts. Letters with diacritical marks " "match their base letter without diacritical mark. The following Latin " "encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, " "ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. " "See also L" msgstr "" #. type: =item #: wcd.pod:364 msgid "B<+I, --no-ignore-diacritics>" msgstr "" #. type: textblock #: wcd.pod:366 msgid "Regard diacritics (default). See also option B<-I>." msgstr "" #. type: =item #: wcd.pod:368 msgid "B<-j, --just-go>" msgstr "" #. type: textblock #: wcd.pod:370 msgid "Just go mode." msgstr "" #. type: textblock #: wcd.pod:372 msgid "" "In this mode wcd will not present a list when there is more than one " "directory that matches the given directory. Wcd will just change to the " "first option. When wcd is invoked again with the same arguments it will " "change to the next option, and so on." msgstr "" #. type: textblock #: wcd.pod:377 msgid "" "Wcd will print the directory to go to to stdout. So a different installation " "method can be used. One could make the following function for a POSIX " "compatible shell:" msgstr "" #. type: verbatim #: wcd.pod:381 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:386 msgid "" "When you are using an old shell that doesn't support \"$()\" command " "substitution you have to use old style command substitution with " "back-quotes." msgstr "" #. type: verbatim #: wcd.pod:389 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:395 msgid "" "On Windows systems, if one is running 4NT shell, one could make the " "following alias:" msgstr "" #. type: verbatim #: wcd.pod:398 #, no-wrap msgid "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" msgstr "" #. type: textblock #: wcd.pod:401 msgid "" "This method eliminates the need of the go-script, so one can use option " "B<-GN> in combination with B<-j>." msgstr "" #. type: =item #: wcd.pod:404 msgid "B<-k, --keep-paths>" msgstr "" #. type: textblock #: wcd.pod:406 msgid "Keep paths." msgstr "" #. type: textblock #: wcd.pod:408 msgid "" "Keep paths in the treedata file when wcd can't change to them. The default " "behaviour of wcd is that it tries to remove paths from the treedata when wcd " "can't change to them. With this option this behavior is turned off." msgstr "" #. type: =item #: wcd.pod:412 msgid "B<-K, --color>" msgstr "" #. type: textblock #: wcd.pod:414 msgid "Use colors in graphical mode." msgstr "" #. type: =item #: wcd.pod:416 msgid "B<-l ALIAS>" msgstr "" #. type: textblock #: wcd.pod:418 msgid "" "Name the current path with I. Wcd places the current path with alias " "I in the alias file. Aliases are case sensitive." msgstr "" #. type: =item #: wcd.pod:421 msgid "B<-m DIR>" msgstr "" #. type: textblock #: wcd.pod:423 msgid "Make directory and add to treedata file." msgstr "" #. type: =item #: wcd.pod:425 msgid "B<-L, --license>" msgstr "" #. type: textblock #: wcd.pod:427 msgid "Print the distribution license." msgstr "" #. type: =item #: wcd.pod:429 msgid "B<-M DIR>" msgstr "" #. type: textblock #: wcd.pod:431 msgid "Make directory and add to extra treedata file." msgstr "" #. type: =item #: wcd.pod:433 msgid "B<-n PATH>" msgstr "" #. type: textblock #: wcd.pod:435 msgid "Read relative treedata file from I." msgstr "" #. type: textblock #: wcd.pod:437 msgid "" "Do not read the default treedata file. The relative treedata file should " "already have been created using the wcd B<+S> option. I may also " "point to a file directly." msgstr "" #. type: textblock #: wcd.pod:441 msgid "" "An example. Suppose another system has been mounted to mount point " "C:" msgstr "" #. type: verbatim #: wcd.pod:444 #, no-wrap msgid "" " wcd -n /mnt/network src\n" "\n" msgstr "" #. type: textblock #: wcd.pod:446 msgid "" "Wcd opens the relative treedata file in C. The file contains " "the paths relative from that point." msgstr "" #. type: =item #: wcd.pod:449 msgid "B<+n PATH>" msgstr "" #. type: textblock #: wcd.pod:451 msgid "" "Read relative treedata file in addition to the default treedata file. See " "option B<-n>." msgstr "" #. type: =item #: wcd.pod:454 msgid "B<-N, --numbers>" msgstr "" #. type: textblock #: wcd.pod:456 msgid "Use numbers instead of letters." msgstr "" #. type: textblock #: wcd.pod:458 msgid "" "Wcd with a conio or curses based interface (see section INTERFACE) presents " "a match list by default numbered with letters. When the B<-N> option is used " "the match list is numbered with numbers. Regardless of the B<-N> option one " "can type a letter or numbers to make a selection from the list of matches." msgstr "" #. type: =item #: wcd.pod:463 msgid "B<-o>" msgstr "" #. type: textblock #: wcd.pod:465 msgid "Use stdin/stdout interface." msgstr "" #. type: textblock #: wcd.pod:467 msgid "" "When for some kind of reason the conio or curses interface of wcd does not " "work one can fall back to the stdin/stdout interface of wcd by using the " "B<-o> option." msgstr "" #. type: =item #: wcd.pod:471 msgid "B<-od, --to-stdout>" msgstr "" #. type: textblock #: wcd.pod:473 msgid "Dump all matches to stdout." msgstr "" #. type: =item #: wcd.pod:475 msgid "B<-q, --quiet>" msgstr "" #. type: textblock #: wcd.pod:477 msgid "Quieter operation. Printing of the final match is suppressed." msgstr "" #. type: =item #: wcd.pod:479 msgid "B<-r DIR>" msgstr "" #. type: textblock #: wcd.pod:481 msgid "Remove directory and remove from the treedata file." msgstr "" #. type: textblock #: wcd.pod:483 msgid "" "If the directory is empty, wcd will remove it, and try to remove it from the " "treedata file." msgstr "" #. type: =item #: wcd.pod:486 msgid "B<-rmtree DIR>" msgstr "" #. type: textblock #: wcd.pod:488 msgid "Recursively remove directory and remove from the treedata file." msgstr "" #. type: textblock #: wcd.pod:490 msgid "" "Wcd will remove the directory and all its sub directories and files, and " "remove the directories from the treedata file." msgstr "" #. type: =item #: wcd.pod:493 msgid "B<-s>" msgstr "" #. type: textblock #: wcd.pod:495 msgid "" "(re)Scan disk from C<$HOME> directory. If I is not defined the disk is " "scanned from root directory /." msgstr "" #. type: textblock #: wcd.pod:498 msgid "The existing default treedata file is overwritten." msgstr "" #. type: textblock #: wcd.pod:500 msgid "" "The default scan directory can be overruled with environment variable " "C. See section ENVIRONMENT VARIABLES." msgstr "" #. type: =item #: wcd.pod:503 msgid "B<-S PATH>" msgstr "" #. type: textblock #: wcd.pod:505 msgid "" "Scan directory tree from I and overwrite the default treedata file. " "See also options B<-A>, B<-s> and B<-E>. E.g. with option B<-A> you can " "create a default treedata file of your choice. Examples:" msgstr "" #. type: textblock #: wcd.pod:509 msgid "Unix:" msgstr "" #. type: verbatim #: wcd.pod:511 #, no-wrap msgid "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" msgstr "" #. type: textblock #: wcd.pod:514 msgid "DOS/Windows:" msgstr "" #. type: verbatim #: wcd.pod:516 #, no-wrap msgid "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" msgstr "" #. type: textblock #: wcd.pod:519 msgid "" "With the Windows versions one can scan all shared directories of a Windows " "LAN server by typing something like: C." msgstr "" #. type: =item #: wcd.pod:523 msgid "B<+S PATH>" msgstr "" #. type: textblock #: wcd.pod:525 msgid "" "Scan disk from I and place relative paths in a relative treedata " "file. This file is used by the B<-n> and B<+n> options of wcd. E.g. C." msgstr "" #. type: =item #: wcd.pod:529 msgid "B<-t>" msgstr "" #. type: textblock #: wcd.pod:531 msgid "Do not strip tmp mount dir C (Unix only)" msgstr "" #. type: textblock #: wcd.pod:533 msgid "" "Wcd strips by default C from the match. Directory C is " "used by the auto-mounter. This behaviour can be turned off with the B<-t> " "option." msgstr "" #. type: =item #: wcd.pod:537 msgid "B<-T, --ascii-tree>" msgstr "" #. type: textblock #: wcd.pod:539 msgid "" "Draw tree with ASCII characters. Use this option if line drawing characters " "are not displayed properly in your terminal." msgstr "" #. type: =item #: wcd.pod:542 msgid "B<-Ta, --alt-tree-nav>" msgstr "" #. type: textblock #: wcd.pod:544 msgid "Alternative way of navigation in the graphical tree." msgstr "" #. type: textblock #: wcd.pod:546 msgid "" "In the default NCD style tree layout the B<-Ta> option disables jumping to " "unrelated directories." msgstr "" #. type: textblock #: wcd.pod:549 msgid "" "In compact tree mode the alternative mode makes navigation similar to " "navigation in GUI file managers such as Windows Explorer or Linux KDE " "Konqueror. Pressing Up and Down moves the selected folder one line up or " "down. Pressing Left first folds the sub-folders and the next move left moves " "really left." msgstr "" #. type: textblock #: wcd.pod:555 msgid "" "You can switch on-the-fly between default and alternative navigation by " "pressing ." msgstr "" #. type: textblock #: wcd.pod:558 msgid "" "When alternative navigation mode is on, you will see an \"A\" in the lower " "right corner." msgstr "" #. type: =item #: wcd.pod:560 msgid "B<-TC, --center-tree>" msgstr "" #. type: textblock #: wcd.pod:562 msgid "" "Centered view in the graphical tree. The selected directory stays in the " "middle of the screen. The centered mode can also be switched on and off with " "key in the graphical tree." msgstr "" #. type: textblock #: wcd.pod:566 msgid "" "The standard non-centered behaviour, which minimises tree movement, is the " "same as in the original NCD." msgstr "" #. type: =item #: wcd.pod:569 msgid "B<-Tc, --compact-tree>" msgstr "" #. type: textblock #: wcd.pod:571 msgid "" "By default the 'graphical' tree is drawn the same way as the original NCD on " "DOS did it. On DOS a directory path could only be 66 characters in " "total. With the deep directory structures of today the tree can become very " "wide. To overcome this wcd can draw the tree in a compact way, similar to " "most GUI file managers, with only one folder per line. Use option B<-Tc> or " "switch on-the-fly with the key." msgstr "" #. type: =item #: wcd.pod:578 msgid "B<-Td, --cjk-width>" msgstr "" #. type: textblock #: wcd.pod:580 msgid "" "Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain " "characters and line drawing symbols with a column width of 2, while the " "normal Unicode width for these characters is 1 column. For instance the " "Chinese CP936 raster font on Windows and the Simsun font. Use this option " "for a correct outlining of the graphical tree when a legacy CJK font is " "used." msgstr "" #. type: textblock #: wcd.pod:586 msgid "When CJK mode is on, you will see a \"C\" in the lower right corner." msgstr "" #. type: =item #: wcd.pod:588 msgid "B<-u USER>" msgstr "" #. type: textblock #: wcd.pod:590 msgid "" "Scan treedata file of another user based on I, do not scan your own " "default treedata file. See also section ENVIRONMENT VARIABLES for " "I." msgstr "" #. type: textblock #: wcd.pod:593 msgid "" "On Unix/Cygwin the base directory for user home directories is assumed to be " "C. Wcd will look for C and " "C
, in that order, and read the first one that " "exists and is readable. On DOS/Windows the base directory for user home " "directories is assumed to be C<\\\\users>, so wcd tries to read " "C<\\\\users\\USER\\treedata.wcd> and C<\\\\users\\USER\\.wcd\\treedata.wcd>." msgstr "" #. type: =item #: wcd.pod:601 msgid "B<+u USER>" msgstr "" #. type: textblock #: wcd.pod:603 msgid "Read default treedata file of USER in addition to your own treedata file." msgstr "" #. type: =item #: wcd.pod:606 msgid "B<-v, --verbose>" msgstr "" #. type: textblock #: wcd.pod:608 msgid "" "Display verbose messages. With this option wcd prints all filters, bans and " "excludes." msgstr "" #. type: =item #: wcd.pod:611 msgid "B<-V, --version>" msgstr "" #. type: textblock #: wcd.pod:613 msgid "Print version information and exit." msgstr "" #. type: =item #: wcd.pod:615 msgid "B<-w, --wild-match-only>" msgstr "" #. type: textblock #: wcd.pod:617 msgid "Wild matching only. Treat all matches as wild matches." msgstr "" #. type: =item #: wcd.pod:619 msgid "B<-x PATH>" msgstr "" #. type: textblock #: wcd.pod:621 msgid "Exclude I from scanning." msgstr "" #. type: textblock #: wcd.pod:623 msgid "" "When this option is used wcd will exclude I and all its subdirectories " "when wcd is scanning a disk. Wildcards are supported and matched against " "absolute paths. Option B<-x> can be used multiple times." msgstr "" #. type: verbatim #: wcd.pod:627 #, no-wrap msgid "" " wcd -x -x -s\n" "\n" msgstr "" #. type: textblock #: wcd.pod:629 msgid "" "Option B<-x> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, " "B<-A>, B<-E>)." msgstr "" #. type: textblock #: wcd.pod:633 msgid "" "On DOS/Windows systems one must specify the drive letter depending on if " "environment variable I or I is set. If I or I " "is set one needs to specify the drive letter. An example:" msgstr "" #. type: verbatim #: wcd.pod:637 #, no-wrap msgid "" " wcd -x c:/temp -S c:\n" "\n" msgstr "" #. type: textblock #: wcd.pod:639 msgid "Otherwise do not specify drive letter." msgstr "" #. type: verbatim #: wcd.pod:641 #, no-wrap msgid "" " wcd -x /temp -s\n" "\n" msgstr "" #. type: =item #: wcd.pod:644 msgid "B<-xf FILE>" msgstr "" #. type: textblock #: wcd.pod:646 msgid "Exclude all paths listed in I from scanning." msgstr "" #. type: textblock #: wcd.pod:648 msgid "" "When this option is used wcd will exclude all paths listed in I and " "all their subdirectories when wcd is scanning a disk. Wildcards are " "supported and they are matched against absolute paths; one path per line. Be " "aware that wcd will not ignore leading or trailing blanks on a line, because " "they are legal characters in a directory name. Option B<-xf> can be used " "multiple times. When one wants to exclude all banned paths from scanning one " "can do the following (example for wcd on unix):" msgstr "" #. type: verbatim #: wcd.pod:656 #, no-wrap msgid "" " wcd -xf ~/.ban.wcd -s\n" "\n" msgstr "" #. type: textblock #: wcd.pod:658 msgid "" "Wildcards are supported. For instance to exclude all your Subversion " "directories with administrative files add a line with C<*/.svn>." msgstr "" #. type: textblock #: wcd.pod:661 msgid "" "Option B<-xf> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, " "B<-A>, B<-E>)." msgstr "" #. type: =item #: wcd.pod:664 msgid "B<-y, --assume-yes>" msgstr "" #. type: textblock #: wcd.pod:666 msgid "Assume Yes on all queries." msgstr "" #. type: textblock #: wcd.pod:668 msgid "" "Wcd will not prompt the user with yes/no questions, but assumes the user " "answers yes on all questions. This can be used in combination with option " "B<-rmtree>. This option must be used in front of options that can lead to " "yes/no questions." msgstr "" #. type: =item #: wcd.pod:673 msgid "B<-z NUMBER>" msgstr "" #. type: textblock #: wcd.pod:675 msgid "Set maximum stack size to NUMBER." msgstr "" #. type: textblock #: wcd.pod:677 msgid "" "The default size of the stack is 10. Stack operation can be turned off by " "setting the size to 0. This option must be used in front of any other stack " "operations (B<->,B<+>,B<=>). Otherwise the size of the stack will be set " "back to the default 10." msgstr "" #. type: textblock #: wcd.pod:682 msgid "A correct command is:" msgstr "" #. type: verbatim #: wcd.pod:684 #, no-wrap msgid "" " wcd -z 50 -\n" "\n" msgstr "" #. type: textblock #: wcd.pod:686 msgid "" "The new stack size will be 50, wcd will go one directory back. A wrong " "command is:" msgstr "" #. type: verbatim #: wcd.pod:689 #, no-wrap msgid "" " wcd - -z 50\n" "\n" msgstr "" #. type: textblock #: wcd.pod:691 msgid "" "Wcd goes one directory back, the stack gets the default size 10. The B<-z " "50> is ignored." msgstr "" #. type: textblock #: wcd.pod:694 msgid "" "Add this option as the first option to your wcd alias or function. E.g. for " "the a POSIX compatible shell this would be:" msgstr "" #. type: verbatim #: wcd.pod:697 #, no-wrap msgid "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" #. type: =item #: wcd.pod:703 msgid "B<-[NUMBER]>" msgstr "" #. type: textblock #: wcd.pod:705 msgid "Push dir NUMBER of times. Default is one." msgstr "" #. type: textblock #: wcd.pod:707 msgid "" "Go back a directory. Command C goes one directory back. To go more " "directories back add a number to it. E.g. command C. The stack is " "cyclic." msgstr "" #. type: =item #: wcd.pod:711 msgid "B<+[NUMBER]>" msgstr "" #. type: textblock #: wcd.pod:713 msgid "Pop dir NUMBER of times. Default is one." msgstr "" #. type: textblock #: wcd.pod:715 msgid "" "Go forward a directory. Command C goes one directory forward. To go " "more directories forward add a number to it. E.g. command C. The " "stack is cyclic." msgstr "" #. type: =item #: wcd.pod:719 msgid "B<=>" msgstr "" #. type: textblock #: wcd.pod:721 msgid "Show stack." msgstr "" #. type: textblock #: wcd.pod:723 msgid "" "Use this option if you do not know anymore how many times to push or pop. " "The stack is printed and you can choose a number. The current place in the " "stack is marked with an asterisk C<*>." msgstr "" #. type: =head1 #: wcd.pod:729 msgid "INSTALLATION" msgstr "" #. type: textblock #: wcd.pod:731 msgid "" "The current working directory of a Unix shell can only be changed by the " "builtin cd(1) command. Therefore the program is always called by a function " "or an alias. The function or alias sources a shell script (go-script) which " "is generated by the wcd program. Wcd can only work after the function or " "alias is defined." msgstr "" #. type: textblock #: wcd.pod:737 msgid "" "Another important influence on your installation is the definition of " "environment variables I and I. See section ENVIRONMENT " "VARIABLES." msgstr "" #. type: =head2 #: wcd.pod:741 msgid "Install for POSIX type shells" msgstr "" #. type: textblock #: wcd.pod:743 msgid "" "For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native " "MSYS add the following function to the shell startup file (e.g. Bash uses " "C<$HOME/.bashrc>):" msgstr "" #. type: verbatim #: wcd.pod:747 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:753 msgid "" "Replace I with the location where the wcd executable has been " "installed. Reload the shell initialization files or start new shell." msgstr "" #. type: textblock #: wcd.pod:756 msgid "The location of the go-script C differs per shell." msgstr "" #. type: textblock #: wcd.pod:758 msgid "" "Wcd for DJGPP DOS bash requires a different function. The go script is not " "written in a directory C, and if I and I are both not " "defined the go-script is written on c:/." msgstr "" #. type: verbatim #: wcd.pod:762 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:768 msgid "The WinZsh version of wcd is also a bit different. No C directory." msgstr "" #. type: verbatim #: wcd.pod:770 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:776 msgid "See section FILES for more information." msgstr "" #. type: =head2 #: wcd.pod:778 msgid "Install for C-alike shells (csh, tcsh)" msgstr "" #. type: textblock #: wcd.pod:780 msgid "" "Add the following alias to the shell startup file C<$HOME/.cshrc> or " "C<$HOME/.tcshrc> :" msgstr "" #. type: verbatim #: wcd.pod:783 #, no-wrap msgid "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" msgstr "" #. type: textblock #: wcd.pod:789 msgid "" "Replace I with the location where the wcd executable has been " "installed. Reload the shell initialization files or start a new shell." msgstr "" #. type: =head2 #: wcd.pod:793 msgid "Windows Command Prompt version" msgstr "" #. type: textblock #: wcd.pod:795 msgid "" "Unpack the zip file and add directory C to your environment variable " "I." msgstr "" #. type: textblock #: wcd.pod:798 msgid "" "In Windows Command Prompt a Windows program cannot change the current work " "directory, but a .bat file can. The batch scrip C runs the wcd " "program which generates a new batch script C. Then C " "runs C which actually changes the directory." msgstr "" #. type: =head2 #: wcd.pod:803 msgid "Windows VISTA and higher" msgstr "" #. type: textblock #: wcd.pod:805 msgid "" "In a Windows VISTA and higher Command Prompt you may have limited access to " "directories. To get access to more directories you need administrator " "rights. You can get a Command Prompt with administrator rights if you right " "click on the Command Prompt icon and select I." msgstr "" #. type: =head2 #: wcd.pod:810 msgid "Windows PowerShell version" msgstr "" #. type: textblock #: wcd.pod:812 msgid "" "Add the following function to your PowerShell user profile. The location of " "this profile is stored in the $profile variable. It is required that one of " "the environment variables I or I is defined." msgstr "" #. type: verbatim #: wcd.pod:816 #, no-wrap msgid "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" msgstr "" #. type: textblock #: wcd.pod:822 msgid "" "Replace I with the location where the wcd executable has been " "installed. Start a new PowerShell. Wcd for PowerShell supports only the " "file system provider. No other providers." msgstr "" #. type: =head2 #: wcd.pod:826 msgid "OS/2 Command Prompt version" msgstr "" #. type: textblock #: wcd.pod:828 msgid "" "In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current " "work directory. That is why wcd generates a command script C " "which must be executed in the current shell. The script C first " "executes C, which creates the C script. Then " "C executes the C script." msgstr "" #. type: =head1 #: wcd.pod:835 msgid "LOCALIZATION" msgstr "" #. type: =item #: wcd.pod:839 msgid "B" msgstr "" #. type: textblock #: wcd.pod:841 msgid "" "The primary language is selected with the environment variable I. The " "I variable consists out of several parts. The first part is in small " "letters the language code. The second one is optional and is the country " "code in capital letters, preceded with an underscore. There is also an " "optional third part: character encoding, preceded with a dot. A few examples " "for POSIX standard type shells:" msgstr "" #. type: verbatim #: wcd.pod:848 #, no-wrap msgid "" " export LANG=nl Dutch\n" " export LANG=nl_NL Dutch, The Netherlands\n" " export LANG=nl_BE Dutch, Belgium\n" " export LANG=es_ES Spanish, Spain\n" " export LANG=es_MX Spanish, Mexico\n" " export LANG=en_US.iso88591 English, USA, Latin-1 encoding\n" "\n" msgstr "" #. type: textblock #: wcd.pod:855 msgid "" "For a complete list of language and country codes see the gettext(1) " "manual: " "L On " "Unix systems you can use to command locale(1) to get locale specific " "information." msgstr "" #. type: =item #: wcd.pod:861 msgid "B" msgstr "" #. type: textblock #: wcd.pod:863 msgid "" "With the I environment variable you can specify a priority list of " "languages, separated by colons. Wcd gives preference to I over " "I. For instance, first Dutch and then German: C. You " "have to first enable localization, by setting I or I to a " "value other than I, before you can use a language priority list through " "the I variable. See also the gettext(1) manual: " "L" msgstr "" #. type: textblock #: wcd.pod:871 msgid "" "If you select a language which is not available you will get the standard " "English messages." msgstr "" #. type: =item #: wcd.pod:874 msgid "B" msgstr "" #. type: textblock #: wcd.pod:876 msgid "" "With the environment variable I the I used during " "compilation and installation of wcd can be overruled. I is used " "by wcd with native language support to find the language files. The GNU " "default value is C. By typing C wcd will " "print the I that is used." msgstr "" #. type: textblock #: wcd.pod:882 msgid "" "If you have installed wcd in a different directory than the default " "directory you may need to set the environment variable I to " "point to the locale directory." msgstr "" #. type: textblock #: wcd.pod:887 msgid "An example for Windows cmd:" msgstr "" #. type: verbatim #: wcd.pod:889 #, no-wrap msgid "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" msgstr "" #. type: textblock #: wcd.pod:892 msgid "An example for a POSIX shell:" msgstr "" #. type: verbatim #: wcd.pod:894 #, no-wrap msgid "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" msgstr "" #. type: =item #: wcd.pod:896 msgid "B" msgstr "" #. type: textblock #: wcd.pod:898 msgid "" "When there are multiple directory matches wcd presents a sorted list. The " "sorting depends on the locale settings. If the environment I has been " "set the matches are sorted like dictionaries or phone books are sorted in " "that language. For instance dots and dashes are ignored, or letters e with " "and without accent are equal, or upper and lower case is ignored." msgstr "" #. type: textblock #: wcd.pod:904 msgid "" "The sorting gives preference to environment variable I over " "I. If you make I equal to C or C, locale sorting " "is turned off. For instance if you want Dutch language, but not Dutch " "sorting, you can do something like this:" msgstr "" #. type: verbatim #: wcd.pod:909 #, no-wrap msgid "" " export LANG=nl_NL\n" " export LC_COLLATE=C\n" "\n" msgstr "" #. type: =item #: wcd.pod:912 msgid "B" msgstr "" #. type: textblock #: wcd.pod:914 msgid "" "With regard to character encoding Wcd will give preference to variable " "I over I. For instance to set character encoding to UTF-8 " "the following environment setting can be done." msgstr "" #. type: verbatim #: wcd.pod:918 #, no-wrap msgid "" " export LC_CTYPE=en_US.UTF-8\n" "\n" msgstr "" #. type: =item #: wcd.pod:920 msgid "B" msgstr "" #. type: textblock #: wcd.pod:922 msgid "" "All locale environment variables that start with I are overruled by the " "environment variable I if it is defined. Wcd gives preference to " "I over I and I." msgstr "" #. type: =head2 #: wcd.pod:929 msgid "WINDOWS CODE PAGES" msgstr "" #. type: textblock #: wcd.pod:931 msgid "" "There are two groups of code pages: DOS code pages (OEM) and Windows code " "pages (ANSI). The default encoding for Windows, when configured with Western " "regional settings, is ANSI CP1252. Windows programs, for instance notepad, " "use this default system ANSI code page. The Windows console uses by default " "an OEM code page (CP437 or CP850) for compatibility with DOS programs. If " "you use a DOS version of wcd in a Windows console it will work, because of " "the DOS code page. But the DOS version of wcd lacks support for long " "directory names and network drives on Windows." msgstr "" #. type: textblock #: wcd.pod:940 msgid "" "The Windows version of wcd is a native Windows program and will use the " "Windows system ANSI code page. So on a Western regional Windows it will use " "code page CP1252 for directory names and messages. In order to get " "consistent output, independent of the active code page, all Windows versions " "of Wcd translate ANSI output to Unicode output in the Command Prompt and " "PowerShell." msgstr "" #. type: textblock #: wcd.pod:946 msgid "" "The console raster font only supports the original OEM code page installed " "with Windows, so you have to change the console's font to true type Lucida " "Console to make Unicode (and ANSI) letters appear correctly." msgstr "" #. type: textblock #: wcd.pod:950 msgid "" "Non-Unicode versions of Wcd I use plain ANSI " "output. For these older versions the code page of the console has to be " "made equal to the system code page (changed to 1252) to make wcd for Windows " "work properly with special characters such as accented characters or the " "Euro symbol." msgstr "" #. type: textblock #: wcd.pod:955 msgid "" "The Windows system code page can be changed via the Control Panel regional " "options. The Windows console code page is changed with the C command." msgstr "" #. type: textblock #: wcd.pod:958 msgid "" "When you type C, the actual character encoding used by wcd is " "shown. Type the command C to display the active code page of the " "Windows console." msgstr "" #. type: =head2 #: wcd.pod:963 msgid "UNICODE" msgstr "" #. type: textblock #: wcd.pod:965 msgid "" "Wcd has optional support for Unicode. To see if wcd was built with Unicode " "support type C. If your terminal/console and font supports it, you " "should see the Euro symbol and Chinese characters (meaning: \"Chinese\")." msgstr "" #. type: textblock #: wcd.pod:970 msgid "" "Wcd has been I converted to Unicode. In its core wcd handles all data " "as a stream of bytes. Only the lines printed to screen are on the fly " "converted to Unicode wide characters. Wcd fully relies on libc functions and " "has no UTF-8 specific code. See also " "L" msgstr "" #. type: textblock #: wcd.pod:976 msgid "" "Wcd has optional support for Unicode matching with normalisation. To find " "out whether Wcd has normalisation support type C. Wcd with Unicode " "normalization support will match Unicode names based on I " "equivalence. Without Unicode normalization support, names are matched when " "they are binary equivalent. See also " "L" msgstr "" #. type: =head3 #: wcd.pod:983 msgid "UTF-8 on Unix/Linux" msgstr "" #. type: textblock #: wcd.pod:985 msgid "" "In order to view UTF-8 characters your console/terminal also needs to " "support UTF-8. The xterm version that comes with XFree86 4.0 or higher " "includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and " "use a font with iso10646-1 encoding, for instance with" msgstr "" #. type: verbatim #: wcd.pod:990 #, no-wrap msgid "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn " "'-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" msgstr "" #. type: textblock #: wcd.pod:992 msgid "" "Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte " "character encodings should also work, but that has not been tested." msgstr "" #. type: textblock #: wcd.pod:995 msgid "" "Wcd assumes that the treedata files are encoded in the locale character " "encoding. There are no Byte Order Marks written to treedata files." msgstr "" #. type: =head3 #: wcd.pod:999 msgid "UTF-16 on Windows" msgstr "" #. type: textblock #: wcd.pod:1001 msgid "" "On Windows Unicode is supported in all versions of PowerShell, and in " "Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take " "Command or TCC/LE made by JP Software, which can be used on older Windows " "versions (XP/Vista)." msgstr "" #. type: textblock #: wcd.pod:1006 msgid "" "On Windows all the directory names on disk are encoded in UTF-16 Unicode. " "For non-Unicode Windows programs the Unicode characters are translated to " "the default ANSI code page. For characters that are not part of the regional " "setting this translation is not possible and non-Unicode programs print a " "question mark or a wrong character instead." msgstr "" #. type: textblock #: wcd.pod:1012 msgid "" "Wcd with Unicode support will read the UTF-16 encoded directory names and " "converts them internally to UTF-8. All treedata files are encoded in UTF-8 " "and not compatible with the non-Unicode version of Wcd. Wcd will create a " "go-script encoded in UTF-8." msgstr "" #. type: textblock #: wcd.pod:1017 msgid "" "All versions of Windows PowerShell are able to run scripts encoded in UTF-8, " "provided there is an UTF-8 BOM in the script." msgstr "" #. type: textblock #: wcd.pod:1020 msgid "" "Since Windows 7 it is possible in Windows Command Prompt to change directory " "with a batch script to a directory with Unicode letters in the name. The " "directory name needs to be encoded in UTF-8, and the batch script must " "I have a BOM. The active code page of the Command Prompt needs to be " "set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will " "create such a go script C. It first changes the code page to " "65001, then changes directory, and finally sets the code page back to the " "original code page." msgstr "" #. type: textblock #: wcd.pod:1028 msgid "" "You need to set the font to True Type Lucida Console (not raster font) when " "letters don't appear correctly." msgstr "" #. type: textblock #: wcd.pod:1031 msgid "" "The non-Unicode Windows version of Wcd can read Unicode treedata files since " "version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see " "L), but it can't change to " "directories with Unicode letters in the name that are not part of the " "default system ANSI code page. The Unicode Windows version of wcd writes a " "BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes " "them also readable by notepad." msgstr "" #. type: =head3 #: wcd.pod:1040 msgid "UTF-8 on Cygwin" msgstr "" #. type: textblock #: wcd.pod:1042 msgid "" "Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that " "the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like " "wcd, do not need to be aware of this and can operate using UTF-8 encoding as " "on Unix/Linux. Set character encoding to UTF-8 with the I or " "I environment variable. You may need to rescan your drives. You " "need to set the font to True Type Lucida Console (not raster font) if you " "use the default Cygwin console." msgstr "" #. type: textblock #: wcd.pod:1050 msgid "" "The Cygwin version behaves exactly as the Unix version of wcd. There is no " "BOM written in the treedata files, and it is assumed they are encoded in the " "B locale character encoding." msgstr "" #. type: =head1 #: wcd.pod:1054 msgid "FILES" msgstr "" #. type: textblock #: wcd.pod:1056 msgid "" "If the environment variable I is set wcd will use I " "instead of I. All C<*.wcd> files are text files. They can be edited " "with a text editor. The Windows Command Prompt version of wcd behaves as " "the DOS version. The Cygwin version of wcd behaves as the Unix version." msgstr "" #. type: =item #: wcd.pod:1065 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1067 msgid "" "The program. In Unix shells the program is always called by a function or " "alias, because the current working directory of a Unix shell can only be " "changed by the builtin cd command. See also section INSTALLATION." msgstr "" #. type: =item #: wcd.pod:1072 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1074 msgid "" "This is the default treedata file where wcd searches for matches. If it is " "not readable wcd will create a new one." msgstr "" #. type: verbatim #: wcd.pod:1077 #, no-wrap msgid "" " DOS: \\treedata.wcd or %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" msgstr "" #. type: =item #: wcd.pod:1080 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1082 msgid "" "An optional extra treedata file. If it exists and is readable wcd will try " "to find matches in this file also." msgstr "" #. type: verbatim #: wcd.pod:1085 #, no-wrap msgid "" " DOS: \\extra.wcd or %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" msgstr "" #. type: =item #: wcd.pod:1088 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1090 msgid "" "In this optional file wcd places banned paths. See option B<-b>. Wildcards " "are supported." msgstr "" #. type: verbatim #: wcd.pod:1093 #, no-wrap msgid "" " DOS: \\ban.wcd or %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" msgstr "" #. type: =item #: wcd.pod:1096 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1098 msgid "Optional file with wcd aliases. See option B<-l>." msgstr "" #. type: verbatim #: wcd.pod:1100 #, no-wrap msgid "" " DOS: \\alias.wcd or %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" msgstr "" #. type: =item #: wcd.pod:1103 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1105 msgid "" "In this file wcd stores its stack. The drive letter can be changed with the " "B<-d> option." msgstr "" #. type: verbatim #: wcd.pod:1108 #, no-wrap msgid "" " DOS: c:\\stack.wcd or %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1111 msgid "" "The name of the stack file can be changed with environment variable " "I. See section ENVIRONMENT VARIABLES." msgstr "" #. type: =item #: wcd.pod:1114 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1116 msgid "" "This is the shell script which wcd.exe creates each time. It is sourced via " "a function or an alias. The drive letter can be changed with the B<-d> " "option. For history reasons it is placed by default in C<$HOME/bin> on Unix " "systems. The directory of this file can be changed with the option B<-G>." msgstr "" #. type: verbatim #: wcd.pod:1121 #, no-wrap msgid "" " DOS bash: c:/wcd.go or $HOME/wcd.go\n" " Windows Command Prompt: c:\\wcdgo.bat or %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2 Command Prompt: c:\\wcdgo.cmd or %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" msgstr "" #. type: =item #: wcd.pod:1129 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1131 msgid "" "Text file with relative paths from I. See options B<+S>, B<-n> and " "B<+n>." msgstr "" #. type: verbatim #: wcd.pod:1134 #, no-wrap msgid "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" msgstr "" #. type: =head1 #: wcd.pod:1139 msgid "ENVIRONMENT VARIABLES" msgstr "" #. type: =item #: wcd.pod:1143 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1145 msgid "" "Wcd uses by default environment variable I to determine where to store " "its files. See also section FILES. This can be overruled with environment " "variable I." msgstr "" #. type: textblock #: wcd.pod:1149 msgid "" "I also defines where to start scanning the disk when option B<-s> is " "used. This can be overruled with the environment variable I." msgstr "" #. type: textblock #: wcd.pod:1153 msgid "" "For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is " "required that I or I is set. For the other versions of wcd " "the use of these variables is optional." msgstr "" #. type: textblock #: wcd.pod:1157 msgid "" "If I is set on DOS/Windows, wcd will place all its files " "(treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory " "I. The behaviour of wcd is then equal to the Unix version of wcd. Wcd " "will scan the disk default from I. Drives will not be automatically " "scanned by changing to them. You need to tell wcd explicitly. E.g.:" msgstr "" #. type: verbatim #: wcd.pod:1164 #, no-wrap msgid "" " wcd -S c: -A d: -A e:\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1166 msgid "Matching of directories is now global over all scanned drives." msgstr "" #. type: =item #: wcd.pod:1169 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1171 msgid "" "Environment variable I can be used to change the location of wcd's " "files. If both I and I are set, I will be used " "instead of I." msgstr "" #. type: textblock #: wcd.pod:1175 msgid "" "In wcd versions prior to 5.1.5 I also changed the default scan " "directory. This has changed. Since version 5.1.5 I does not change " "the default scan directory. See option B<-s>. From version 5.1.5, use " "environment I to overrule the default scan directory." msgstr "" #. type: textblock #: wcd.pod:1180 msgid "Example for DOS, Windows, OS/2 Command Prompt:" msgstr "" #. type: verbatim #: wcd.pod:1182 #, no-wrap msgid "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1184 wcd.pod:1205 wcd.pod:1225 wcd.pod:1250 msgid "An example for POSIX type shells:" msgstr "" #. type: verbatim #: wcd.pod:1186 #, no-wrap msgid "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1188 wcd.pod:1209 wcd.pod:1229 wcd.pod:1254 msgid "An example for Csh type shells:" msgstr "" #. type: verbatim #: wcd.pod:1190 #, no-wrap msgid "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" msgstr "" #. type: =item #: wcd.pod:1192 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1194 msgid "" "Use environment variable I to overrule the default scan directory " "I. Define a colon separated list (Unix) to define more than one " "directory. On DOS/Windows make the list semi-colon separated." msgstr "" #. type: textblock #: wcd.pod:1199 msgid "Examples for DOS, Windows, OS/2 Command Prompt:" msgstr "" #. type: verbatim #: wcd.pod:1201 #, no-wrap msgid "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1203 #, no-wrap msgid "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1207 #, no-wrap msgid "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1211 #, no-wrap msgid "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" #. type: =item #: wcd.pod:1213 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1215 msgid "" "Specify filters with environment variable I. All directories that " "do not match the filter(s) are ignored. A list can be specified by " "separating filters by the shell path separator. Similar as specifying the " "I variable. The case sensitivity is mandated by the Operating system." msgstr "" #. type: textblock #: wcd.pod:1221 wcd.pod:1246 msgid "An example for DOS, Windows, OS/2 Command Prompt:" msgstr "" #. type: verbatim #: wcd.pod:1223 #, no-wrap msgid "" " set WCDFILTER=projects;doc\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1227 #, no-wrap msgid "" " export WCDFILTER=\"projects:doc\"\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1231 #, no-wrap msgid "" " setenv WCDFILTER \"projects:doc\"\n" "\n" msgstr "" #. type: =item #: wcd.pod:1233 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1235 msgid "" "The paths specified with environment I will be banned by wcd. See " "also option B<-b>. Specify a list of paths separated by shell I " "separator." msgstr "" #. type: =item #: wcd.pod:1239 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1241 msgid "" "The paths specified with environment I will be excluded by " "wcd. See also options B<-x> and B<-xf>. Specify a list of paths separated by " "shell I separator." msgstr "" #. type: verbatim #: wcd.pod:1248 #, no-wrap msgid "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1252 #, no-wrap msgid "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" msgstr "" #. type: verbatim #: wcd.pod:1256 #, no-wrap msgid "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" msgstr "" #. type: =item #: wcd.pod:1258 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1260 msgid "" "Set the base of user's home directories. On DOS/Windows the default value " "is C<\\\\users>. On Unix/Cygwin the default value is C. This " "variable is used to scan treedata files of other users. See also options " "B<-u> and B<+u>. In verbose mode wcd will print all filters, bans and " "excludes. See option B<-v>." msgstr "" #. type: =item #: wcd.pod:1267 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1269 msgid "" "Wcd gives preference to I over the default stack file name " "(see section FILES). With this variable each shell (or used terminal " "emulator) can have its private stack of used directories." msgstr "" #. type: textblock #: wcd.pod:1273 msgid "" "To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive " "shell." msgstr "" #. type: verbatim #: wcd.pod:1276 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1278 msgid "For a stack per xterm(1), use the xterm I environment variable:" msgstr "" #. type: verbatim #: wcd.pod:1280 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1282 msgid "For GNU screen(1), to use stack per screen:" msgstr "" #. type: verbatim #: wcd.pod:1284 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" msgstr "" #. type: =item #: wcd.pod:1286 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1288 msgid "" "If the environment variable I is defined, wcd with ncurses " "interface checks for a local terminal definition before checking in the " "standard place. This is useful if terminal definitions are not on a standard " "place. Often used standard places are C and " "C." msgstr "" #. type: =item #: wcd.pod:1294 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1296 msgid "" "Wcd with PDCurses interface recognizes the environment variable " "I. If this environment variable is set, PDCurses will " "take a copy of the contents of the screen at the time that wcd is started; " "when wcd exits, the screen will be restored. An example for Windows Command " "Prompt:" msgstr "" #. type: verbatim #: wcd.pod:1302 #, no-wrap msgid "" " set PDC_RESTORE_SCREEN=1\n" "\n" msgstr "" #. type: textblock #: wcd.pod:1304 msgid "" "Windows allows only a small buffer to be saved. So it is not always possible " "to restore everything. Some garbage data may be printed in the console after " "wcd exists if you have set a large buffer width." msgstr "" #. type: =item #: wcd.pod:1309 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1311 msgid "" "Printing of C<#!$SHELL> on the first line of the go-script for POSIX type " "shell or C shell is needed for 8 bit characters. Some shells otherwise think " "that the go-script is a binary file and will not source it. In Cygwin Bash " "the variable I must be set in environment using the C " "command, otherwise wcd can't read the variable." msgstr "" #. type: =item #: wcd.pod:1319 msgid "B" msgstr "" #. type: textblock #: wcd.pod:1321 msgid "" "Wcd for DOS bash uses C<$BASH> instead of C<$SHELL>, because C<$SHELL> " "points to the DOS command shell. One may need to define C<$BASH> with an " "C command, otherwise wcd can't read the variable." msgstr "" #. type: =head1 #: wcd.pod:1328 msgid "SEE ALSO" msgstr "" #. type: textblock #: wcd.pod:1330 msgid "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," msgstr "" #. type: =head1 #: wcd.pod:1338 msgid "AUTHORS" msgstr "" #. type: textblock #: wcd.pod:1340 msgid "Wcd was written by Erwin Waterlander " msgstr "" #. type: textblock #: wcd.pod:1342 msgid "Project homepage: L" msgstr "" #. type: textblock #: wcd.pod:1345 msgid "SourceForge: L" msgstr "" #. type: textblock #: wcd.pod:1348 msgid "Freecode: L" msgstr "" #. type: textblock #: wcd.pod:1351 msgid "" "The manual page formatting was provided by Jari Aalto " "." msgstr "" #. type: textblock #: wcd.pod:1354 msgid "" "NCD was originally written by Brad Kingsbury for Peter Norton's \"Norton " "Utilities\" around 1987. See also " "L" msgstr "" wcd-5.2.5/src/man/nl/0000775000175000017500000000000012345660655014505 5ustar waterlanwaterlanwcd-5.2.5/src/man/nl/man1/0000775000175000017500000000000012345660661015336 5ustar waterlanwaterlanwcd-5.2.5/src/man/nl/man1/wcd.po0000775000175000017500000033743712343164017016467 0ustar waterlanwaterlan# Dutch translation of the wcd man page. # Copyright (C) 2014 Erwin Waterlander (msgids) # This file is distributed under the same license as the wcd package. # Erwin Waterlander , 2014. # msgid "" msgstr "" "Project-Id-Version: wcd-man\n" "POT-Creation-Date: 2014-05-27 22:27+0300\n" "PO-Revision-Date: 2014-05-27 22:29+0100\n" "Last-Translator: Erwin Waterlander \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.4\n" #. type: =head1 #: wcd.pod:43 msgid "NAME" msgstr "NAAM" #. type: textblock #: wcd.pod:45 msgid "wcd - Wherever Change Directory" msgstr "wcd - Wherever Change Directory" #. type: textblock #: wcd.pod:47 msgid "chdir for DOS and Unix" msgstr "chdir voor DOS en Unix" #. type: =head1 #: wcd.pod:49 msgid "SYNOPSIS" msgstr "OVERZICHT" #. type: verbatim #: wcd.pod:51 #, no-wrap msgid "" " wcd [options] [directory]\n" "\n" msgstr "" " wcd [opties] [map]\n" "\n" #. type: =head1 #: wcd.pod:53 msgid "DESCRIPTION" msgstr "BESCHRIJVING" #. type: =head2 #: wcd.pod:55 msgid "Overview" msgstr "Overzicht" #. type: textblock #: wcd.pod:57 msgid "" "Wcd is a command-line program to change directory fast. It saves time typing " "at the keyboard. One needs to type only a part of a directory name and wcd " "will jump to it. Wcd has a fast selection method in case of multiple matches " "and allows aliasing and banning of directories. Wcd also includes a full " "screen interactive directory tree browser with speed search." msgstr "" "Wcd is een commandoregel programma om snel van map te veranderen. Het " "bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de " "mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie " "methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om " "aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt " "ook een schermvullende interactieve boomweergave met snelzoek functie." #. type: textblock #: wcd.pod:63 msgid "" "Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in " "I, for DOS in 1987, published by Peter " "Norton." msgstr "" "Wcd is gemodelleerd naar Norton Change Directory (NCD). NCD verscheen voor " "het eerst in I, for DOS in 1987, " "gepubliceerd door Peter Norton." #. type: textblock #: wcd.pod:66 msgid "" "Wcd has been ported to different command-line shells: DOS command.com, " "Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne " "(sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others " "running on any operating system." msgstr "" "Wcd is geschikt gemaakt voor verschillende commandoregel shells: DOS command." "com, Windows cmd.exe en PowerShell, OS/2 cmd.exe, en Unix shells zoals " "Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en " "anderen draaiend op elk besturingssysteem." #. type: textblock #: wcd.pod:71 msgid "" "Wcd supports 8 bit character sets on all systems, and has optional support " "for Unicode. See section LOCALIZATION." msgstr "" "Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel " "ondersteuning voor Unicode. Zie paragraaf LOKALISTIE." #. type: textblock #: wcd.pod:74 msgid "See section INSTALLATION how to setup wcd for personal use." msgstr "" "Zie paragraaf INSTALLATIE hoe wcd voor persoonlijk gebruik in te stellen." #. type: =head2 #: wcd.pod:76 msgid "Basic use" msgstr "Basisgebruik" #. type: textblock #: wcd.pod:78 msgid "" "By default (if no wildcards are used) wcd searches for a directory with a " "name that begins with the typed name." msgstr "" "Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met " "een naam die begint met de naam die getypt is." #. type: textblock #: wcd.pod:81 msgid "" "For instance this command will change to directory to the current user's C:" msgstr "" "Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map C:" #. type: verbatim #: wcd.pod:84 #, no-wrap msgid "" " wcd Desk\n" "\n" msgstr "" " wcd Desk\n" "\n" #. type: textblock #: wcd.pod:86 msgid "" "When there are multiple matches, wcd will present the user a list of all " "matches. The user can then make a selection with a few keystrokes (most of " "the times only one)." msgstr "" "Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle " "treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen " "(meestal een)." #. type: =head2 #: wcd.pod:90 msgid "Wildcards" msgstr "Jokertekens" #. type: textblock #: wcd.pod:92 msgid "Wcd supports following wildcards:" msgstr "Wcd ondersteunt de volgende jokertekens:" #. type: verbatim #: wcd.pod:94 #, no-wrap msgid "" " * matches any sequence of characters (zero or more)\n" " ? matches any character\n" " [SET] matches any character in the specified set,\n" " [!SET] or [^SET] matches any character not in the specified set.\n" "\n" msgstr "" " * treft een willekeurige reeks van tekens (nul of meer)\n" " ? treft een willekeurig teken\n" " [SET] treft willekeurige tekens in de gespecificeerde set,\n" " [!SET] of [^SET] treft willekeurige tekens niet in de\n" " gespecificeerde set.\n" "\n" #. type: textblock #: wcd.pod:99 msgid "" "A set is composed of characters or ranges; a range looks like I as in C<0-9> or C. The C<[0-9a-zA-Z_]> is the minimal " "set of characters allowed in the C<[..]> pattern construct. International " "characters (i.e. 8 bit characters) are allowed if the system supports them. " "To suppress the special syntactic significance of any of C<[]*?!^-\\> inside " "or outside a C<[..]> construct and match the character exactly, precede the " "character with a backslash (C<\\>) marker." msgstr "" "Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als " "I zoals in C<0-9> of C. C<[0-9a-zA-Z_]> is de " "minimale set van tekens toegestaan in de C<[..]> patroon samenstelling. " "Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem " "ze ondersteunt. Om de speciale syntactische betekenis van elke van C<[]*?!^-" "\\>binnen of buiten een C<[..]> samenstelling te onderdrukken en exact " "gelijke te treffen, laat het teken vooraf gaan door een backslash (C<\\>) " "teken." #. type: textblock #: wcd.pod:108 msgid "" "Using wildcards makes powerful searching possible. For instance this matches " "any directory name that ends with \"top\":" msgstr "" "Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. " "Bijvoorbeeld dit treft elke mapnaam die eindigt op \"top\"." #. type: verbatim #: wcd.pod:111 #, no-wrap msgid "" " wcd *top\n" "\n" msgstr "" " wcd *top\n" "\n" #. type: textblock #: wcd.pod:113 msgid "Match directories that have \"top\" anywhere in the name:" msgstr "Tref mappen die ergens \"top\" in de naam heeft:" #. type: verbatim #: wcd.pod:115 #, no-wrap msgid "" " wcd *top*\n" "\n" msgstr "" " wcd *top*\n" "\n" #. type: textblock #: wcd.pod:117 msgid "Match any directory name that begins with \"a\", \"b\" or \"c\":" msgstr "Tref elke map die die begint met \"a\", \"b\" or \"c\":" #. type: verbatim #: wcd.pod:119 #, no-wrap msgid "" " wcd [a-c]*\n" "\n" msgstr "" " wcd [a-c]*\n" "\n" #. type: textblock #: wcd.pod:121 msgid "" "It is also possible to give a part of a directory path. Here Wcd searches " "for directory that begins with \"Desk\" and which path matches I<*me/Desk*>." msgstr "" "Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar " "een map die begint met \"Desk\" en wiens pad overeenkomt met I<*me/Desk*>." #. type: verbatim #: wcd.pod:124 #, no-wrap msgid "" " wcd me/Desk\n" "\n" msgstr "" " wcd me/Desk\n" "\n" #. type: textblock #: wcd.pod:126 msgid "" "It is allowed to type any kind of expression with slashes and wildcards. E." "g.:" msgstr "" "Het is toegestaan om elke expressie met schuine strepen en jokertekens te " "typen. B.v.:" #. type: verbatim #: wcd.pod:129 #, no-wrap msgid "" " wcd src*/*1?/a*2\n" "\n" msgstr "" " wcd src*/*1?/a*2\n" "\n" #. type: =head2 #: wcd.pod:131 msgid "Other uses" msgstr "Overig gebruik" #. type: textblock #: wcd.pod:133 msgid "" "If no wildcards are used and wcd finds a perfect match, wcd will ignore all " "wild matches by default. This behaviour can be changed with the B<-w> option." msgstr "" "Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, " "zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd " "worden met de B<-w> optie." #. type: textblock #: wcd.pod:136 msgid "" "The interactive directory tree browser can be started by using option B<-g>." msgstr "" "De interactieve mappen-verkenner kan met de optie B<-g> gestart worden." #. type: verbatim #: wcd.pod:138 #, no-wrap msgid "" " wcd -g\n" "\n" msgstr "" " wcd -g\n" "\n" #. type: textblock #: wcd.pod:140 msgid "" "Wcd generates a treedata file where it searches the directory. On Unix and " "Windows systems wcd does add symbolic links to the treedata file while " "scanning the disk, but does not follow them. While following links wcd could " "end up scanning infinite loops, or scan very large portions of a network." msgstr "" "Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en " "Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand " "wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen " "gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen " "van een netwerk." #. type: textblock #: wcd.pod:145 msgid "" "Wcd can also change to directories that are not in the treedata file. E.g.:" msgstr "" "Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B." "v.:" #. type: verbatim #: wcd.pod:147 #, no-wrap msgid "" " wcd ..\n" "\n" msgstr "" " wcd ..\n" "\n" #. type: textblock #: wcd.pod:149 msgid "" "If wcd found a match but can't change to the directory it tries to remove it " "from the default treedata file. Not from the extra treedata file. See also " "option B<-k>." msgstr "" "Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan " "veranderen, probeert hij deze te verwijderen uit het standaard boomdata-" "bestand. Niet uit het extra boomdata-bestand. Zie ook optie B<-k>." #. type: textblock #: wcd.pod:153 msgid "" "Wcd keeps a directory stack which is stored on disk. The stack has a default " "size of 10 and is cyclic. See options B<-z>, B<->, B<+> and B<=>." msgstr "" "Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel " "heeft een standaard grootte van 10 en is cyclisch. Zie opties B<-z>, B<->, B<" "+> en B<=>." #. type: textblock #: wcd.pod:157 msgid "" "In multi-user environments option B<-u> can be used to change to directories " "of other users." msgstr "" "In een omgeving met meerdere gebruikers kan optie B<-u> gebruikt worden om " "naar mappen van andere gebruikers te veranderen." #. type: textblock #: wcd.pod:161 msgid "" "On DOS and Windows systems it does not matter if you use a slash \"/\" or a " "backslash \"\\\" as a directory separator." msgstr "" "Op DOS en Windows systemen maakt het niet uit of een slash \"/\" of een " "backslash \"\\\" als mappen-scheidingsteken gebruikt wordt." #. type: textblock #: wcd.pod:164 msgid "" "It is possible on DOS and Windows systems to change drive and directory in " "one go by preceding the directory name with the drive name." msgstr "" "Het is mogelijk op DOS en Windows systemen om tegelijk van schijf en map te " "veranderen door de mapnaam vooraf te laten gaan door de schijf naam." #. type: verbatim #: wcd.pod:167 #, no-wrap msgid "" " wcd d:games\n" "\n" msgstr "" " wcd d:games\n" "\n" #. type: =head2 #: wcd.pod:171 msgid "Windows UNC paths" msgstr "Windows UNC paden" #. type: textblock #: wcd.pod:173 msgid "" "The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support " "Windows SMB LAN UNC paths without drive letter such as C<\\\\servername" "\\sharename>. Wcd for Windows Command Prompt makes use of the \"pushd\" " "command to automatically map a UNC path to a drive letter. In Windows " "PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current " "working directory can be a UNC path." msgstr "" "De Windows versies (Opdrachtprompt, PowerShell, MSYS, zsh, Cygwin) " "ondersteunen Windows SMB LAN UNC paden zonder schijfletter, zoals C<\\" "\\servername\\sharename>. Wcd voor de Opdrachtprompt maakt gebruik van het " "\"pushd\" commando om automatisch een UNC pad toe te wijzen aan een " "schijfletter. In Windows PowerShell, MSYS, zsh en Cygwin worden UNC paden " "volledig ondersteund. De huidige werkmap kan een UNC pad zijn." #. type: =head2 #: wcd.pod:181 msgid "Interfaces" msgstr "Interfaces" #. type: textblock #: wcd.pod:183 msgid "" "Wcd has three different interfaces to choose from a list of matches. The " "interface can be chosen at compile time." msgstr "" "Wcd heeft drie verschillende interface om uit een lijst van treffers te " "kiezen. De interface kan gekozen worden bij het bouwen van Wcd." #. type: textblock #: wcd.pod:186 msgid "" "The first interface uses plain stdin/stdout. A numbered list is printed in " "the terminal. The user has to choose from the list by typing a number " "followed by . This interface does not provide scroll back " "functionality in case of a long list. The scroll back capability of the " "terminal/console has to be used. It is very small and portable." msgstr "" "De eerste interface gebruikt standaard in- en uitvoer. Een genummerde lijst " "wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een " "nummber te typen gevolgd door . Deze interface biedt geen terug-" "blader functionaliteit bij een lange lijst. De terug-blader functionaliteit " "van de terminal/console moet gebruikt worden. Deze interface is heel klein " "en overdraagbaar." #. type: textblock #: wcd.pod:192 msgid "" "The second interface is built with the conio library. It provides a builtin " "scroll back capability. The user is presented a list numbered with letters. " "Choosing from a list can be done by pressing just one letter. This interface " "is fast because it saves keystrokes. If possible the screen will be restored " "after exiting. One who prefers to type numbers can use the B<-N> option." msgstr "" "De tweede interface is gebouwd met de conio bibliotheek. Het biedt een " "ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, " "genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een " "enkele toetsaanslag van een letter. Deze interface is snel, omdat het " "toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na " "afsluiten. Iemand die prefereert nummers te typen kan de B<-N> optie " "gebruiken." #. type: textblock #: wcd.pod:199 msgid "" "The third interface is built with the curses library. It is similar to the " "conio interface. The curses version of wcd has also an additional " "'graphical' interface. It lets the user select a directory via a full screen " "interactive directory tree browser. It has a vim(1) like navigation and " "search method. It can be activated with option B<-g>." msgstr "" "De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan " "de conio interface. De curses versie van wcd heeft een extra 'grafische' " "interface. Het laat de gebruiker een map kiezen via een vol-scherm " "interactieve mappenboom verkenner. Het heeft vim(1) gelijke navigatie en " "zoek methodes. Het kan geactiveerd worden met de optie B<-g>." #. type: textblock #: wcd.pod:205 msgid "" "By using the B<-o> option one can always fall back to the stdin/stdout " "interface." msgstr "" "Door de B<-o> optie te gebruiken kan men altijd terugvallen op de standaard " "in- en uitvoer interface." #. type: =head1 #: wcd.pod:208 msgid "OPTIONS" msgstr "OPTIES" #. type: =item #: wcd.pod:212 msgid "B<-a>" msgstr "B<-a>" #. type: textblock #: wcd.pod:214 msgid "Add current path to the default treedata file." msgstr "Voeg huidig pad to aan het standaard boomdata-bestand." #. type: textblock #: wcd.pod:216 msgid "" "Use this option to quickly add the current path to the default treedata " "file. Re-scanning the complete disk can take a long time in some cases." msgstr "" "Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard " "boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang " "duren." #. type: =item #: wcd.pod:219 msgid "B<-aa>" msgstr "B<-aa>" #. type: textblock #: wcd.pod:221 msgid "Add current and all parent paths to the default treedata file." msgstr "" "Voeg het huidige en alle bovenliggende paden toe aan het standaard boomdata-" "bestand." #. type: =item #: wcd.pod:223 msgid "B<-A PATH>" msgstr "B<-A PAD>" #. type: textblock #: wcd.pod:225 msgid "" "Scan directory tree from I and append to the default treedata file. " "Examples:" msgstr "" "Scan mappenboom vanaf I en voeg toe aan het standaard boomdata-" "bestand. Voorbeelden:" #. type: verbatim #: wcd.pod:228 #, no-wrap msgid "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" msgstr "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:232 msgid "" "On Windows one can scan all shared directories of a Windows LAN server by " "typing something like: C." msgstr "" "Op Windows kan men alle gedeelde mappen van een Windows LAN server scannen " "door iets te typen als: C." #. type: textblock #: wcd.pod:236 msgid "See also option B<-S> and B<-s> and B<-E>." msgstr "Zie ook opties B<-S> en B<-s> en B<-E>." #. type: =item #: wcd.pod:238 msgid "B<-b>" msgstr "B<-b>" #. type: textblock #: wcd.pod:240 msgid "Ban current path." msgstr "Verban het huidige pad." #. type: textblock #: wcd.pod:242 msgid "" "Wcd places the current path in the ban file. This means that wcd ignores all " "matches of this directory and its sub directories." msgstr "" "Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle " "treffers van deze map en zijn sub-mappen negeert." #. type: textblock #: wcd.pod:245 msgid "" "The ban file can be edited with a text editor. Use of wildcards is supported " "and names are matched against the absolute path." msgstr "" "Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van " "jokertekens wordt ondersteund en namen worden vergeleken met het volledige " "pad." #. type: textblock #: wcd.pod:248 msgid "" "Banned paths are not excluded from scanning the disk. To do that use option " "B<-xf>." msgstr "" "Verbannen paden worden niet uitgesloten van het scannen van de schijf. " "Gebruik optie B<-xf> om dat te doen." #. type: =item #: wcd.pod:251 msgid "B<-c, --direct-cd>" msgstr "B<-c, --direct-cd>" #. type: textblock #: wcd.pod:253 msgid "Direct CD mode. By default wcd works as follows:" msgstr "Directe CD modus. Standaard werkt wcd als volgt:" #. type: verbatim #: wcd.pod:255 #, no-wrap msgid "" " 1. Try to find a match in the treedata file(s)\n" " 2. If no match, try to open the directory you typed.\n" "\n" msgstr "" " 1. Probeer een treffer te vinden in een boomdata-bestand.\n" " 2. Wanneer geen treffer, probeer het getypte pad te openen.\n" "\n" #. type: textblock #: wcd.pod:258 msgid "In direct CD mode wcd works in reversed order." msgstr "In directe CD modus werkt wcd in omgekeerde volgorde." #. type: verbatim #: wcd.pod:260 #, no-wrap msgid "" " 1. Try to open the directory you typed.\n" " 2. If not, try to find a match in the treedata file(s).\n" "\n" msgstr "" " 1. Probeer het getypte pad te openen.\n" " 2. Indien niet gelukt, probeer een treffer te vinden in een boomdata-bestand.\n" "\n" #. type: =item #: wcd.pod:264 msgid "B<-d DRIVE>" msgstr "B<-d SCHIJF>" #. type: textblock #: wcd.pod:266 msgid "Set drive for stack and go file (DOS only)." msgstr "Stel schijf in voor stapel- en go-script (alleen DOS)." #. type: textblock #: wcd.pod:268 msgid "" "The stack file and the go-script are by default stored on drive C: if " "environment variable I is not set. Use this option if drive C: is a " "read-only drive. This option must be used in front of the stack options B<-" ">, B<+> and B<=>." msgstr "" "Het stapelbestand en go-script worden standaard opgeslagen op schijf C: " "wanneer omgevingsvariabele I niet ingesteld is. Gebruik deze optie " "wanneer SCHIJF een alleen-lezen schijf is. Deze optie moet gebruikt worden " "vooraf aan stapel opties B<->, B<+> en B<=>." #. type: =item #: wcd.pod:273 msgid "B<-e>" msgstr "B<-e>" #. type: textblock #: wcd.pod:275 msgid "Add current path to the extra treedata file." msgstr "Voeg huidig pad toe aan het extra boomdata-bestand." #. type: textblock #: wcd.pod:277 msgid "" "Use this option to quickly add the current path to the extra treedata file." msgstr "" "Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-" "bestand." #. type: =item #: wcd.pod:279 msgid "B<-ee>" msgstr "B<-ee>" #. type: textblock #: wcd.pod:281 msgid "Add current and all parent paths to extra treedata file." msgstr "" "Voeg het huidige en alle bovenliggende paden toe aan het extra boomdata-" "bestand." #. type: =item #: wcd.pod:283 msgid "B<-E PATH>" msgstr "B<-E PAD>" #. type: textblock #: wcd.pod:285 msgid "" "Scan directory tree from I and append to Extra treedata file. See also " "options B<-A> and B<-S>." msgstr "" "Scan mappenboom vanaf I en voeg het toe aan het Extra boomdata-bestand." "Zie ook opties B<-A> en B<-S>." #. type: =item #: wcd.pod:288 msgid "B<-f FILE>" msgstr "B<-f BESTAND>" #. type: textblock #: wcd.pod:290 msgid "Read treedata file I. Do not read the default treedata file." msgstr "" "Lees boomdata-bestand I. Lees niet het standaard boomdata-bestand." #. type: =item #: wcd.pod:292 msgid "B<+f FILE>" msgstr "B<+f BESTAND>" #. type: textblock #: wcd.pod:294 msgid "Read treedata file I in addition to the default treedata file." msgstr "" "Lees boomdata-bestand I bovenop het standaard boomdata-bestand." #. type: =item #: wcd.pod:296 msgid "B<-g>" msgstr "B<-g>" #. type: textblock #: wcd.pod:298 msgid "Graphical interface (only in version with curses interface)." msgstr "Grafische interface (alleen in versie met curses interface)." #. type: textblock #: wcd.pod:300 msgid "" "Wcd starts a textual curses based 'graphical' interface. The user can select " "a directory via a full-screen interactive directory tree browser. It has a " "vim(1) like navigation and search method." msgstr "" "Wcd start een tekstuele curses gebaseerde 'grafische' interface. De " "gebruiker kan een map selecteren via een vol-scherm interactieve " "mappenverkenner. Het heeft een vim(1) achtige navigatie en zoek methode." #. type: textblock #: wcd.pod:304 msgid "" "If no search string is given wcd presents the whole tree which is in the " "default treedata file and the extra treedata files." msgstr "" "Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het " "standaard en het extra boomdata-bestand staat." #. type: textblock #: wcd.pod:307 msgid "" "If a search string is given the match list is presented as a directory tree." msgstr "" "Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als " "een mappenboom" #. type: textblock #: wcd.pod:310 msgid "" "The default tree layout is similar to the tree layout of the original NCD on " "DOS. The difference in layout is that in NCD all directories of a same depth " "level were vertically aligned over the whole tree. This was possible in NCD, " "because the maximum width of a directory name in DOS was 12 (8.3) " "characters. On modern operating systems directory names can be very long, so " "also the differences in length can be large. Therefore folders with a same " "depth are not vertically aligned over the whole tree in wcd, but only in sub-" "branches. So there is some sideways movement when moving straight up and " "down from one sub-branch to another sub-branch." msgstr "" "De standaard boom opmaak is gelijk aan de boomopmaak van de originele NCD op " "DOS. Het verschil in opmaak is dat in NCD alle mappen van dezelfde " "diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk " "in NCD, omdat de maximale breedte van een mapnaam in DOS 12 (8.3) tekens " "was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn " "mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele " "boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging " "wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de " "ander sub-tak." #. type: textblock #: wcd.pod:320 msgid "" "The navigation behaviour in Wcd is exactly the same as in the original NCD. " "For instance if you push the Down key you go down to the next directory with " "the same depth level, jumping over branches. This enables fast navigation " "through the tree." msgstr "" "Het navigatie gedrag in wcd is exact hetzelfde als in de originele NCD. " "Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende " "map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie " "door de boom mogelijk." #. type: textblock #: wcd.pod:325 msgid "" "See options B<-Ta>, B<-TC>, and B<-Tc> to change the navigation behaviour." msgstr "" "Zie opties B<-Ta>, B<-TC>, en B<-TC> om het navigatiegedrag te veranderen." #. type: =item #: wcd.pod:327 msgid "B<-gd>" msgstr "B<-gd>" #. type: textblock #: wcd.pod:329 msgid "Dump the treedata files as a tree to stdout." msgstr "Dump de boomdatabestanden als een boom naar standaard uitvoer." #. type: =item #: wcd.pod:331 msgid "B<-G PATH>" msgstr "B<-G PAD>" #. type: textblock #: wcd.pod:333 msgid "" "Write go-script in directory I. For instance on Unix, C " "will write a go-script B." msgstr "" "Schrijf go-script in map I. Bijvoorbeeld op Unix, C zal een " "go-script schrijven in B." #. type: =item #: wcd.pod:336 msgid "B<-GN, --no-go-script>" msgstr "B<-GN, --no-go-script>" #. type: textblock #: wcd.pod:338 msgid "" "Do not create go-script. This option can be used in combination with the " "option B<-j> if one does not want wcd to create a go-script." msgstr "" "Maak geen go-script aan. Deze optie kan gebruikt worden in combinatie met de " "optie B<-j> wanneer men wil dat wcd geen go-script aanmaakt." #. type: =item #: wcd.pod:341 msgid "B<-h, --help>" msgstr "B<-h, --help>" #. type: textblock #: wcd.pod:343 msgid "Show help and exit." msgstr "Toon helptext en sluit af." #. type: =item #: wcd.pod:345 msgid "B<-i, --ignore-case>" msgstr "B<-i, --ignore-case>" #. type: textblock #: wcd.pod:347 msgid "" "Ignore case. Dos and Windows versions of wcd ignore case default. Unix/" "Cygwin versions regard case by default." msgstr "" "Hoofdletterongevoelig. DOS en Windows versies van wcd zijn standaard " "hoofdletterongevoelig. Unix/Cygwin versies zijn standaard " "hoofdlettergevoelig." #. type: =item #: wcd.pod:351 msgid "B<+i, --no-ignore-case>" msgstr "B<+i, --no-ignore-case>" #. type: textblock #: wcd.pod:353 msgid "Regard case. See also option B<-i>." msgstr "Hoofdlettergevoelig. Zie ook optie B<-i>." #. type: =item #: wcd.pod:355 msgid "B<-I, --ignore-diacritics>" msgstr "B<-I, --ignore-diacritics>" #. type: textblock #: wcd.pod:357 msgid "" "Ignore diacritics for Latin-based scripts. Letters with diacritical marks " "match their base letter without diacritical mark. The following Latin " "encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, " "ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. " "See also L" msgstr "" "Ongevoelig voor diakritische tekens voor Latijnse geschriften. Letters met " "een diakritisch teken treffen hun basisletter zonder diakritisch teken. De " "volgende Latijnse coderingen worden ondersteund: CP437, CP850, CP852, " "CP1250, CP1252, ISO-8859-1, ISO-8859-2, en Unicode Latin-1, Latin Extended-" "A, en Latin Extended-B. Zie ook L" #. type: =item #: wcd.pod:364 msgid "B<+I, --no-ignore-diacritics>" msgstr "B<+I, --no-ignore-diacritics>" #. type: textblock #: wcd.pod:366 msgid "Regard diacritics (default). See also option B<-I>." msgstr "Gevoelig voor diakritische tekens (standaard). Zie ook optie B<-I>." #. type: =item #: wcd.pod:368 msgid "B<-j, --just-go>" msgstr "B<-j, --just-go>" #. type: textblock #: wcd.pod:370 msgid "Just go mode." msgstr "Ga-nou-maar modus." #. type: textblock #: wcd.pod:372 msgid "" "In this mode wcd will not present a list when there is more than one " "directory that matches the given directory. Wcd will just change to the " "first option. When wcd is invoked again with the same arguments it will " "change to the next option, and so on." msgstr "" "In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die " "treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer " "wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen " "naar de volgende optie, en zo verder." #. type: textblock #: wcd.pod:377 msgid "" "Wcd will print the directory to go to to stdout. So a different installation " "method can be used. One could make the following function for a POSIX " "compatible shell:" msgstr "" "Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere " "installatie methode gebruikt worden. Men zou de volgende functie kunnen " "maken voor een POSIX compatibele shell:" #. type: verbatim #: wcd.pod:381 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:386 msgid "" "When you are using an old shell that doesn't support \"$()\" command " "substitution you have to use old style command substitution with back-quotes." msgstr "" "Wanneer je een oude shell gebruikt die geen \"$()\" opdracht vervanging " "ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent " "graves." #. type: verbatim #: wcd.pod:389 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:395 msgid "" "On Windows systems, if one is running 4NT shell, one could make the " "following alias:" msgstr "" "Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias " "maken:" #. type: verbatim #: wcd.pod:398 #, no-wrap msgid "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" msgstr "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" #. type: textblock #: wcd.pod:401 msgid "" "This method eliminates the need of the go-script, so one can use option B<-" "GN> in combination with B<-j>." msgstr "" "Deze methode elimineert de noodzaak voor het go-script, zodat men de optie " "B<-GN> in combinatie met B<-j> kan gebruiken." #. type: =item #: wcd.pod:404 msgid "B<-k, --keep-paths>" msgstr "B<-k, --keep-paths>" #. type: textblock #: wcd.pod:406 msgid "Keep paths." msgstr "Bewaar paden." #. type: textblock #: wcd.pod:408 msgid "" "Keep paths in the treedata file when wcd can't change to them. The default " "behaviour of wcd is that it tries to remove paths from the treedata when wcd " "can't change to them. With this option this behavior is turned off." msgstr "" "Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. " "Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit " "het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie " "wordt dit gedrag uitgeschakeld." #. type: =item #: wcd.pod:412 msgid "B<-K, --color>" msgstr "B<-K, --color>" #. type: textblock #: wcd.pod:414 msgid "Use colors in graphical mode." msgstr "Gebruik kleuren in grafische modus." #. type: =item #: wcd.pod:416 msgid "B<-l ALIAS>" msgstr "B<-l ALIAS>" #. type: textblock #: wcd.pod:418 msgid "" "Name the current path with I. Wcd places the current path with alias " "I in the alias file. Aliases are case sensitive." msgstr "" "Noem het huidige pad I. Wcd plaatst het huidige pad met alias " "I in het alias-bestand. Aliassen zijn hoofdlettergevoelig." #. type: =item #: wcd.pod:421 msgid "B<-m DIR>" msgstr "B<-m MAP>" #. type: textblock #: wcd.pod:423 msgid "Make directory and add to treedata file." msgstr "Maak map en voeg toe aan boomdata-bestand." #. type: =item #: wcd.pod:425 msgid "B<-L, --license>" msgstr "B<-L, --license>" #. type: textblock #: wcd.pod:427 msgid "Print the distribution license." msgstr "Print de distributie licentie." #. type: =item #: wcd.pod:429 msgid "B<-M DIR>" msgstr "B<-M MAP>" #. type: textblock #: wcd.pod:431 msgid "Make directory and add to extra treedata file." msgstr "Maak map en voeg toe aan extra boomdata-bestand." #. type: =item #: wcd.pod:433 msgid "B<-n PATH>" msgstr "B<-n PAD>" #. type: textblock #: wcd.pod:435 msgid "Read relative treedata file from I." msgstr "Lees relatief boomdata-bestand vanaf I." #. type: textblock #: wcd.pod:437 msgid "" "Do not read the default treedata file. The relative treedata file should " "already have been created using the wcd B<+S> option. I may also " "point to a file directly." msgstr "" "Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou " "al gemaakt moeten zijn met de wcd optie B<+S>. I mag ook direct naar " "een bestand wijzen." #. type: textblock #: wcd.pod:441 msgid "" "An example. Suppose another system has been mounted to mount point C:" msgstr "" "Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling C:" #. type: verbatim #: wcd.pod:444 #, no-wrap msgid "" " wcd -n /mnt/network src\n" "\n" msgstr "" " wcd -n /mnt/network src\n" "\n" #. type: textblock #: wcd.pod:446 msgid "" "Wcd opens the relative treedata file in C. The file contains " "the paths relative from that point." msgstr "" "Wcd opent het relatieve boomdata-bestand in C. The bestand " "bevat de paden relatief vanaf dat punt." #. type: =item #: wcd.pod:449 msgid "B<+n PATH>" msgstr "B<+n PAD>" #. type: textblock #: wcd.pod:451 msgid "" "Read relative treedata file in addition to the default treedata file. See " "option B<-n>." msgstr "" "Lees relatief boomdata-bestand bovenop het standaard boomdata-bestand. Zie " "optie B<-n>." #. type: =item #: wcd.pod:454 msgid "B<-N, --numbers>" msgstr "B<-N, --numbers>" #. type: textblock #: wcd.pod:456 msgid "Use numbers instead of letters." msgstr "Gebruik nummers in plaats van letters." #. type: textblock #: wcd.pod:458 msgid "" "Wcd with a conio or curses based interface (see section INTERFACE) presents " "a match list by default numbered with letters. When the B<-N> option is used " "the match list is numbered with numbers. Regardless of the B<-N> option one " "can type a letter or numbers to make a selection from the list of matches." msgstr "" "Wcd met een conio of curses gebaseerde interface (zie paragraaf INTERFACE) " "presenteert een trefferlijst standaard genummerd met letters. Wanneer de " "optie B<-N> is gebruikt wordt de trefferlijst genummerd met nummers. " "Onafhankelijk van de optie B<-N> kan men een letter of een nummer typen om " "een selectie uit de lijst te maken." #. type: =item #: wcd.pod:463 msgid "B<-o>" msgstr "B<-o>" #. type: textblock #: wcd.pod:465 msgid "Use stdin/stdout interface." msgstr "Gebruik standaard invoer/uitvoer interface." #. type: textblock #: wcd.pod:467 msgid "" "When for some kind of reason the conio or curses interface of wcd does not " "work one can fall back to the stdin/stdout interface of wcd by using the B<-" "o> option." msgstr "" "Wanneer om een of andere reden de conio of curses interface van wcd niet " "werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd " "door het gebruik van de B<-o> optie." #. type: =item #: wcd.pod:471 msgid "B<-od, --to-stdout>" msgstr "B<-od, --to-stdout>" #. type: textblock #: wcd.pod:473 msgid "Dump all matches to stdout." msgstr "Dump alle treffers naar standaard uitvoer." #. type: =item #: wcd.pod:475 msgid "B<-q, --quiet>" msgstr "B<-q, --quiet>" #. type: textblock #: wcd.pod:477 msgid "Quieter operation. Printing of the final match is suppressed." msgstr "" "Stillere werking. Het printen van de uiteindelijke treffer wordt onderdrukt." #. type: =item #: wcd.pod:479 msgid "B<-r DIR>" msgstr "B<-r MAP>" #. type: textblock #: wcd.pod:481 msgid "Remove directory and remove from the treedata file." msgstr "Verwijder map en verwijder uit boomdata-bestand." #. type: textblock #: wcd.pod:483 msgid "" "If the directory is empty, wcd will remove it, and try to remove it from the " "treedata file." msgstr "" "Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen " "uit het boomdata-bestand." #. type: =item #: wcd.pod:486 msgid "B<-rmtree DIR>" msgstr "B<-rmtree MAP>" #. type: textblock #: wcd.pod:488 msgid "Recursively remove directory and remove from the treedata file." msgstr "Recursief map verwijderen en verwijderen uit boomdata-bestand." #. type: textblock #: wcd.pod:490 msgid "" "Wcd will remove the directory and all its sub directories and files, and " "remove the directories from the treedata file." msgstr "" "Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert " "de mappen uit het boomdata-bestand." #. type: =item #: wcd.pod:493 msgid "B<-s>" msgstr "B<-s>" #. type: textblock #: wcd.pod:495 msgid "" "(re)Scan disk from C<$HOME> directory. If I is not defined the disk is " "scanned from root directory /." msgstr "" "(her)scannen schijf vanaf C<$HOME> map. Als I niet gedefinieerd is, " "wordt de schijf gescant vanaf hoofdmap /." #. type: textblock #: wcd.pod:498 msgid "The existing default treedata file is overwritten." msgstr "Het bestaande standaard boomdata-bestand is overschreven." #. type: textblock #: wcd.pod:500 msgid "" "The default scan directory can be overruled with environment variable " "C. See section ENVIRONMENT VARIABLES." msgstr "" "De standaard scan map kan overstemd worden met omgevingsvariabele " "C. Zie sectie OMGEVINGSVARIABELEN." #. type: =item #: wcd.pod:503 msgid "B<-S PATH>" msgstr "B<-S PAD>" #. type: textblock #: wcd.pod:505 msgid "" "Scan directory tree from I and overwrite the default treedata file. " "See also options B<-A>, B<-s> and B<-E>. E.g. with option B<-A> you can " "create a default treedata file of your choice. Examples:" msgstr "" "Scan mappenboom vanaf I en overschrijf het standaard boomdata-bestand. " "Zie ook opties B<-A>, B<-s> en B<-E>. B.v. met optie B<-A> kun je een " "standaard boomdata-bestand maken naar eigen smaak. Bijvoorbeeld:" #. type: textblock #: wcd.pod:509 msgid "Unix:" msgstr "Unix:" #. type: verbatim #: wcd.pod:511 #, no-wrap msgid "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" msgstr "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" #. type: textblock #: wcd.pod:514 msgid "DOS/Windows:" msgstr "DOS/Windows:" #. type: verbatim #: wcd.pod:516 #, no-wrap msgid "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" msgstr "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:519 msgid "" "With the Windows versions one can scan all shared directories of a Windows " "LAN server by typing something like: C." msgstr "" "Met de Windows versies kan men alle gedeelde mappen scannen van een Windows " "LAN server door iets een typen als: C." #. type: =item #: wcd.pod:523 msgid "B<+S PATH>" msgstr "B<+S PAD>" #. type: textblock #: wcd.pod:525 msgid "" "Scan disk from I and place relative paths in a relative treedata " "file. This file is used by the B<-n> and B<+n> options of wcd. E.g. C." msgstr "" "Scan schijf vanaf I en plaats relatieve paden in het relatieve boomdata-" "bestand. Dit bestand wordt gebruikt door de B<-n> en B<+n> opties van wcd. B." "v. C." #. type: =item #: wcd.pod:529 msgid "B<-t>" msgstr "B<-t>" #. type: textblock #: wcd.pod:531 msgid "Do not strip tmp mount dir C (Unix only)" msgstr "Verwijder niet tmp koppelmap C (alleen Unix)" #. type: textblock #: wcd.pod:533 msgid "" "Wcd strips by default C from the match. Directory C is " "used by the auto-mounter. This behaviour can be turned off with the B<-t> " "option." msgstr "" "Wcd verwijderd standaard C van de treffer. Map C wordt " "gebruikt door de 'auto-mounter'. Dit gedrag kan uitgeschakeld worden met de " "B<-t> optie." #. type: =item #: wcd.pod:537 msgid "B<-T, --ascii-tree>" msgstr "B<-T, --ascii-tree>" #. type: textblock #: wcd.pod:539 msgid "" "Draw tree with ASCII characters. Use this option if line drawing characters " "are not displayed properly in your terminal." msgstr "" "Teken boom met ASCII tekens. Gebruik deze opties als lijntekens niet goed " "getoond worden in de terminal." #. type: =item #: wcd.pod:542 msgid "B<-Ta, --alt-tree-nav>" msgstr "B<-Ta, --alt-tree-nav>" #. type: textblock #: wcd.pod:544 msgid "Alternative way of navigation in the graphical tree." msgstr "Alternatieve manier van navigeren in de grafische boom." #. type: textblock #: wcd.pod:546 msgid "" "In the default NCD style tree layout the B<-Ta> option disables jumping to " "unrelated directories." msgstr "" "In de standaard NCD stijl opmaak zet de B<-Ta> optie het springen naar " "ongerelateerde mappen uit." #. type: textblock #: wcd.pod:549 msgid "" "In compact tree mode the alternative mode makes navigation similar to " "navigation in GUI file managers such as Windows Explorer or Linux KDE " "Konqueror. Pressing Up and Down moves the selected folder one line up or " "down. Pressing Left first folds the sub-folders and the next move left moves " "really left." msgstr "" "In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de " "navigatie in GUI bestandsverkenners zoals de Windows Verkenner of Linux KDE " "Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel " "op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende " "beweging naar links gaat echt naar links." #. type: textblock #: wcd.pod:555 msgid "" "You can switch on-the-fly between default and alternative navigation by " "pressing ." msgstr "" "U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door " " te drukken." #. type: textblock #: wcd.pod:558 msgid "" "When alternative navigation mode is on, you will see an \"A\" in the lower " "right corner." msgstr "" "Wanneer alternatieve navigatie aan staat, ziet u een \"A\" in de rechter " "onderhoek." #. type: =item #: wcd.pod:560 msgid "B<-TC, --center-tree>" msgstr "B<-TC, --center-tree>" #. type: textblock #: wcd.pod:562 msgid "" "Centered view in the graphical tree. The selected directory stays in the " "middle of the screen. The centered mode can also be switched on and off with " "key in the graphical tree." msgstr "" "Gecentreerde weergave in de grafische boom. De geselecteerde map blijft in " "het midden van het scherm. De gecentreerde modus kan ook aan- en " "uitgeschakeld worden met de toets in de grafische boom." #. type: textblock #: wcd.pod:566 msgid "" "The standard non-centered behaviour, which minimises tree movement, is the " "same as in the original NCD." msgstr "" "De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is " "gelijk aan hoe het in de originele NCD was." #. type: =item #: wcd.pod:569 msgid "B<-Tc, --compact-tree>" msgstr "B<-Tc, --compact-tree>" #. type: textblock #: wcd.pod:571 msgid "" "By default the 'graphical' tree is drawn the same way as the original NCD on " "DOS did it. On DOS a directory path could only be 66 characters in total. " "With the deep directory structures of today the tree can become very wide. " "To overcome this wcd can draw the tree in a compact way, similar to most GUI " "file managers, with only one folder per line. Use option B<-Tc> or switch on-" "the-fly with the key." msgstr "" "Standaard wordt de 'grafische' boom getekend op dezelfde manier zoals de " "originele NCD op DOS het deed. In DOS kon een pad in totaal slechts 66 " "tekens bevatten. Met de diepe mappenstructuur van vandaag kan de boom erg " "breed worden. Om dit te beheersen kan wcd de boom op een compacte manier " "tekenen, gelijk aan de meeste GUI mappenverkenners, met één map per regel. " "Gebruik optie B<-Tc> of schakel onmiddellijk met de toets." #. type: =item #: wcd.pod:578 msgid "B<-Td, --cjk-width>" msgstr "B<-Td, --cjk-width>" #. type: textblock #: wcd.pod:580 msgid "" "Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain " "characters and line drawing symbols with a column width of 2, while the " "normal Unicode width for these characters is 1 column. For instance the " "Chinese CP936 raster font on Windows and the Simsun font. Use this option " "for a correct outlining of the graphical tree when a legacy CJK font is used." msgstr "" "Oude Oost-Aziatische CJK (Chinees, Japans, en Koreaans) fonts hebben " "bepaalde letters en lijnsymbolen met een kolombreedte van 2, terwijl de " "normale Unicode breedte voor deze tekens 1 kolom is. Bijvoorbeeld het " "Chinese CP936 raster font op Windows en het Simsun font. Gebruik deze optie " "voor een juiste uitlijning van de grafische boom wanneer een oud CJK font " "gebruikt wordt." #. type: textblock #: wcd.pod:586 msgid "When CJK mode is on, you will see a \"C\" in the lower right corner." msgstr "Wanneer CJK modus actief is, ziet u een \"C\" in de rechter onderhoek." #. type: =item #: wcd.pod:588 msgid "B<-u USER>" msgstr "B<-u GEBRUIKER>" #. type: textblock #: wcd.pod:590 msgid "" "Scan treedata file of another user based on I, do not scan your own " "default treedata file. See also section ENVIRONMENT VARIABLES for " "I." msgstr "" "Scan boomdata-bestand van een andere gebruiker gebaseerd op I, " "scan niet het eigen boomdata-bestand. Zie ook paragraaf OMGEVINGSVARIABELEN " "voor I." #. type: textblock #: wcd.pod:593 msgid "" "On Unix/Cygwin the base directory for user home directories is assumed to be " "C. Wcd will look for C and C, in that order, and read the first one that exists and is " "readable. On DOS/Windows the base directory for user home directories is " "assumed to be C<\\\\users>, so wcd tries to read C<\\\\users\\USER\\treedata." "wcd> and C<\\\\users\\USER\\.wcd\\treedata.wcd>." msgstr "" "Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor " "gebruikers C is. Wcd zal zoeken naar C " "en C, in deze volgorde, en de eerste " "lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de " "basismap voor de thuismap van gebruikers C<\\\\users> is, dus wcd probeert " "te lezen C<\\\\users\\GEBRUIKER\\treedata.wcd> en C<\\\\users\\GEBRUIKER\\." "wcd\\treedata.wcd>." #. type: =item #: wcd.pod:601 msgid "B<+u USER>" msgstr "B<+u GEBRUIKER>" #. type: textblock #: wcd.pod:603 msgid "" "Read default treedata file of USER in addition to your own treedata file." msgstr "" "Lees het standaard boomdata-bestand van GEBRUIKER bovenop uw eigen boomdata-" "bestand." #. type: =item #: wcd.pod:606 msgid "B<-v, --verbose>" msgstr "B<-v, --verbose>" #. type: textblock #: wcd.pod:608 msgid "" "Display verbose messages. With this option wcd prints all filters, bans and " "excludes." msgstr "" "Toon gedetailleerde berichten. Met deze optie toont wcd alle filters, " "verbannen mappen en uitsluitingen." #. type: =item #: wcd.pod:611 msgid "B<-V, --version>" msgstr "B<-V, --version>" #. type: textblock #: wcd.pod:613 msgid "Print version information and exit." msgstr "Programmaversie tonen en afsluiten." #. type: =item #: wcd.pod:615 msgid "B<-w, --wild-match-only>" msgstr "B<-w, --wild-match-only>" #. type: textblock #: wcd.pod:617 msgid "Wild matching only. Treat all matches as wild matches." msgstr "Alleen jokervergelijkingen. Behandel alle treffers als jokertreffers." #. type: =item #: wcd.pod:619 msgid "B<-x PATH>" msgstr "B<-x PAD>" #. type: textblock #: wcd.pod:621 msgid "Exclude I from scanning." msgstr "I uitsluiten van scannen." #. type: textblock #: wcd.pod:623 msgid "" "When this option is used wcd will exclude I and all its subdirectories " "when wcd is scanning a disk. Wildcards are supported and matched against " "absolute paths. Option B<-x> can be used multiple times." msgstr "" "Wanneer deze optie gebruikt is zal wcd I uitsluiten en al zijn sub-" "mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en " "vergeleken met absolute paden. Optie B<-x> kan meerder keren gebruikt worden." #. type: verbatim #: wcd.pod:627 #, no-wrap msgid "" " wcd -x -x -s\n" "\n" msgstr "" " wcd -x -x -s\n" "\n" #. type: textblock #: wcd.pod:629 msgid "" "Option B<-x> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, " "B<-A>, B<-E>)." msgstr "" "Optie B<-x> moet vooraf gaan aan elke scan optie (B<-s>, B<-S>, B<+S>, B<-" "A>, B<-E>)." #. type: textblock #: wcd.pod:633 msgid "" "On DOS/Windows systems one must specify the drive letter depending on if " "environment variable I or I is set. If I or I " "is set one needs to specify the drive letter. An example:" msgstr "" "Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk " "van of omgevingsvariabele I or I gedefinieerd is. Wanneer " "I of I gedefinieerd is moet men de schijfletter specificeren. " "Een voorbeeld:" #. type: verbatim #: wcd.pod:637 #, no-wrap msgid "" " wcd -x c:/temp -S c:\n" "\n" msgstr "" " wcd -x c:/temp -S c:\n" "\n" #. type: textblock #: wcd.pod:639 msgid "Otherwise do not specify drive letter." msgstr "Specificeer anders geen schijfletter." #. type: verbatim #: wcd.pod:641 #, no-wrap msgid "" " wcd -x /temp -s\n" "\n" msgstr "" " wcd -x /temp -s\n" "\n" #. type: =item #: wcd.pod:644 msgid "B<-xf FILE>" msgstr "B<-xf BESTAND>" #. type: textblock #: wcd.pod:646 msgid "Exclude all paths listed in I from scanning." msgstr "Alle paden uit bestand I uitsluiten van scannen." #. type: textblock #: wcd.pod:648 msgid "" "When this option is used wcd will exclude all paths listed in I and " "all their subdirectories when wcd is scanning a disk. Wildcards are " "supported and they are matched against absolute paths; one path per line. Be " "aware that wcd will not ignore leading or trailing blanks on a line, because " "they are legal characters in a directory name. Option B<-xf> can be used " "multiple times. When one wants to exclude all banned paths from scanning one " "can do the following (example for wcd on unix):" msgstr "" "Wanneer deze optie gebruikt is zal wcd alle paden genoemd in I " "uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens " "worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees " "bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, " "omdat het geldige tekens zijn in een mapnaam. Optie B<-xf> can meerdere " "keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van " "scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix):" #. type: verbatim #: wcd.pod:656 #, no-wrap msgid "" " wcd -xf ~/.ban.wcd -s\n" "\n" msgstr "" " wcd -xf ~/.ban.wcd -s\n" "\n" #. type: textblock #: wcd.pod:658 msgid "" "Wildcards are supported. For instance to exclude all your Subversion " "directories with administrative files add a line with C<*/.svn>." msgstr "" "Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met " "administratieve bestanden uit te sluiten, voeg een regel toe met C<*/.svn>." #. type: textblock #: wcd.pod:661 msgid "" "Option B<-xf> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, " "B<-A>, B<-E>)." msgstr "" "Optie B<-xf> moet vooraf gaan aan elke scan optie (B<-s>, B<-S>, B<+S>, B<-" "A>, B<-E>)." #. type: =item #: wcd.pod:664 msgid "B<-y, --assume-yes>" msgstr "B<-y, --assume-yes>" #. type: textblock #: wcd.pod:666 msgid "Assume Yes on all queries." msgstr "Op alle vragen Ja als antwoord aannemen." #. type: textblock #: wcd.pod:668 msgid "" "Wcd will not prompt the user with yes/no questions, but assumes the user " "answers yes on all questions. This can be used in combination with option B<-" "rmtree>. This option must be used in front of options that can lead to yes/" "no questions." msgstr "" "Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de " "gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie " "met optie B<-rmtree>. Deze optie moet voorafgaand gebruikt worden aan opties " "die tot ja/nee vragen kunnen leiden." #. type: =item #: wcd.pod:673 msgid "B<-z NUMBER>" msgstr "B<-z GETAL>" #. type: textblock #: wcd.pod:675 msgid "Set maximum stack size to NUMBER." msgstr "Stel maximum stapelgrootte in op GETAL." #. type: textblock #: wcd.pod:677 msgid "" "The default size of the stack is 10. Stack operation can be turned off by " "setting the size to 0. This option must be used in front of any other stack " "operations (B<->,B<+>,B<=>). Otherwise the size of the stack will be set " "back to the default 10." msgstr "" "De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden " "door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke " "stapel optie (B<->, B<+>, B<=>) gebruikt worden. Anders wordt de " "stapelgrootte teruggezet naar de standaard 10." #. type: textblock #: wcd.pod:682 msgid "A correct command is:" msgstr "Een correcte opdracht is:" #. type: verbatim #: wcd.pod:684 #, no-wrap msgid "" " wcd -z 50 -\n" "\n" msgstr "" " wcd -z 50 -\n" "\n" #. type: textblock #: wcd.pod:686 msgid "" "The new stack size will be 50, wcd will go one directory back. A wrong " "command is:" msgstr "" "De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute " "opdracht is:" #. type: verbatim #: wcd.pod:689 #, no-wrap msgid "" " wcd - -z 50\n" "\n" msgstr "" " wcd - -z 50\n" "\n" #. type: textblock #: wcd.pod:691 msgid "" "Wcd goes one directory back, the stack gets the default size 10. The B<-z " "50> is ignored." msgstr "" "Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. B<-z 50> " "wordt genegeerd." #. type: textblock #: wcd.pod:694 msgid "" "Add this option as the first option to your wcd alias or function. E.g. for " "the a POSIX compatible shell this would be:" msgstr "" "Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een " "POSIX compatibele shell zou dit zijn:" #. type: verbatim #: wcd.pod:697 #, no-wrap msgid "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: =item #: wcd.pod:703 msgid "B<-[NUMBER]>" msgstr "B<-[GETAL]>" #. type: textblock #: wcd.pod:705 msgid "Push dir NUMBER of times. Default is one." msgstr "Map GETAL keer op stapel zetten. Standaard is een." #. type: textblock #: wcd.pod:707 msgid "" "Go back a directory. Command C goes one directory back. To go more " "directories back add a number to it. E.g. command C. The stack is " "cyclic." msgstr "" "Ga een map terug. Opdracht C gaat een map terug. Voeg een nummer toe " "om meer mappen terug te gaan. B.v. opdracht C. De stapel is cyclisch." #. type: =item #: wcd.pod:711 msgid "B<+[NUMBER]>" msgstr "B<+[GETAL]>" #. type: textblock #: wcd.pod:713 msgid "Pop dir NUMBER of times. Default is one." msgstr "Map GETAL keer van stapel halen. Standaard is een." #. type: textblock #: wcd.pod:715 msgid "" "Go forward a directory. Command C goes one directory forward. To go " "more directories forward add a number to it. E.g. command C. The " "stack is cyclic." msgstr "" "Ga een map vooruit. Opdracht C gaat een map vooruit. Voeg een nummer " "toe om meerdere mappen vooruit te gaan. B.v. opdracht C. De stapel " "is cyclisch." #. type: =item #: wcd.pod:719 msgid "B<=>" msgstr "B<=>" #. type: textblock #: wcd.pod:721 msgid "Show stack." msgstr "Stapel tonen." #. type: textblock #: wcd.pod:723 msgid "" "Use this option if you do not know anymore how many times to push or pop. " "The stack is printed and you can choose a number. The current place in the " "stack is marked with an asterisk C<*>." msgstr "" "Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel " "wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is " "gemarkeerd met een sterretje C<*>." #. type: =head1 #: wcd.pod:729 msgid "INSTALLATION" msgstr "INSTALLATIE" #. type: textblock #: wcd.pod:731 msgid "" "The current working directory of a Unix shell can only be changed by the " "builtin cd(1) command. Therefore the program is always called by a function " "or an alias. The function or alias sources a shell script (go-script) which " "is generated by the wcd program. Wcd can only work after the function or " "alias is defined." msgstr "" "De huidige werkmap in een Unix shell kan alleen veranderd worden door de " "ingebouwde cd(1) opdracht. Daarom wordt het programma altijd aangeroepen " "door een functie of alias. De functie of alias leest een script (go-script) " "in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de " "functie of alias gedefinieerd is." #. type: textblock #: wcd.pod:737 msgid "" "Another important influence on your installation is the definition of " "environment variables I and I. See section ENVIRONMENT " "VARIABLES." msgstr "" "Een andere belangrijke invloed op uw installatie is de definitie van de " "omgevingsvariabelen I en I. Zie paragraaf OMGEVINGSVARIABELEN." #. type: =head2 #: wcd.pod:741 msgid "Install for POSIX type shells" msgstr "Installatie voor POSIX type shells" #. type: textblock #: wcd.pod:743 msgid "" "For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native " "MSYS add the following function to the shell startup file (e.g. Bash uses C<" "$HOME/.bashrc>):" msgstr "" "Voor een POSIX shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of MSYS, " "voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash " "gebruikt C<$HOME/.bashrc>):" #. type: verbatim #: wcd.pod:747 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:753 msgid "" "Replace I with the location where the wcd executable has been " "installed. Reload the shell initialization files or start new shell." msgstr "" "Vervang I door de locatie waar het uitvoerbare wcd bestand " "geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een " "nieuwe shell." #. type: textblock #: wcd.pod:756 msgid "The location of the go-script C differs per shell." msgstr "De locatie van het go-script C is anders per shell." #. type: textblock #: wcd.pod:758 msgid "" "Wcd for DJGPP DOS bash requires a different function. The go script is not " "written in a directory C, and if I and I are both not " "defined the go-script is written on c:/." msgstr "" "Wcd voor DJGPP DOS bash heeft een andere functie nodig. Het go-script wordt " "niet in map C geschreven, en wanneer I en I beide niet " "gedefinieerd zijn wordt het go-script geschreven in c:/." #. type: verbatim #: wcd.pod:762 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:768 msgid "The WinZsh version of wcd is also a bit different. No C directory." msgstr "De WinZsh versie van wcd is ook een beetje anders. Geen C map." #. type: verbatim #: wcd.pod:770 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:776 msgid "See section FILES for more information." msgstr "Zie paragraaf BESTANDEN voor meer informatie." #. type: =head2 #: wcd.pod:778 msgid "Install for C-alike shells (csh, tcsh)" msgstr "Installatie voor C-achtige shells (csh, tcsh)" #. type: textblock #: wcd.pod:780 msgid "" "Add the following alias to the shell startup file C<$HOME/.cshrc> or C<" "$HOME/.tcshrc> :" msgstr "" "Voeg de volgende alias toe aan het shell opstartbestand C<$HOME/.cshrc> of C<" "$HOME/.tcshrc>:" #. type: verbatim #: wcd.pod:783 #, no-wrap msgid "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" msgstr "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" #. type: textblock #: wcd.pod:789 msgid "" "Replace I with the location where the wcd executable has been " "installed. Reload the shell initialization files or start a new shell." msgstr "" "Vervang I door de locatie waar het uitvoerbare wcd bestand " "geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een " "nieuwe shell." #. type: =head2 #: wcd.pod:793 msgid "Windows Command Prompt version" msgstr "Windows Opdrachtprompt versie" #. type: textblock #: wcd.pod:795 msgid "" "Unpack the zip file and add directory C to your environment variable " "I." msgstr "" "Pak het zip-bestand uit en voeg map C toe aan omgevingsvariabele " "I." #. type: textblock #: wcd.pod:798 msgid "" "In Windows Command Prompt a Windows program cannot change the current work " "directory, but a .bat file can. The batch scrip C runs the wcd " "program which generates a new batch script C. Then C " "runs C which actually changes the directory." msgstr "" "In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap " "veranderen, maar een .bat bestand kan dat wel. Het batch script C " "draait het wcd programma dat een nieuw batch script C genereert. " "Daarna start C C die feitelijk de map verandert." #. type: =head2 #: wcd.pod:803 msgid "Windows VISTA and higher" msgstr "Windows VISTA en hoger" #. type: textblock #: wcd.pod:805 msgid "" "In a Windows VISTA and higher Command Prompt you may have limited access to " "directories. To get access to more directories you need administrator " "rights. You can get a Command Prompt with administrator rights if you right " "click on the Command Prompt icon and select I." msgstr "" "In een Windows VISTA en hoger Opdrachtprompt kan men beperkte toegang hebben " "tot mappen. Om toegang tot meer mappen te verkrijgen heeft men " "beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten " "verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te " "selecteren I." #. type: =head2 #: wcd.pod:810 msgid "Windows PowerShell version" msgstr "Windows PowerShell versie" #. type: textblock #: wcd.pod:812 msgid "" "Add the following function to your PowerShell user profile. The location of " "this profile is stored in the $profile variable. It is required that one of " "the environment variables I or I is defined." msgstr "" "Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie " "van dit profiel is opgeslagen in de $profile variabele. Het is vereist dat " "omgevingsvariabele I of I gedefinieerd is." #. type: verbatim #: wcd.pod:816 #, no-wrap msgid "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" msgstr "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" #. type: textblock #: wcd.pod:822 msgid "" "Replace I with the location where the wcd executable has been " "installed. Start a new PowerShell. Wcd for PowerShell supports only the " "file system provider. No other providers." msgstr "" "Vervang I met de locatie waar het uitvoerbare wcd bestand geïnstalleerd " "is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de " "bestandssysteem 'provider'. Geen andere 'providers'." #. type: =head2 #: wcd.pod:826 msgid "OS/2 Command Prompt version" msgstr "OS/2 Opdrachtprompt versie" #. type: textblock #: wcd.pod:828 msgid "" "In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current " "work directory. That is why wcd generates a command script C " "which must be executed in the current shell. The script C first " "executes C, which creates the C script. Then C executes the C script." msgstr "" "In een OS/2 Opdrachtprompt (cmd.exe) kan een OS/2 programma niet de huidige " "werkmap veranderen. Dat is waarom wcd een opdracht-script genereert C welke uitgevoerd moet worden in de huidige shell. Het script C " "voert eerst C uit, die vervolgens het C script " "creëert. Daarna voert C het C script uit." #. type: =head1 #: wcd.pod:835 msgid "LOCALIZATION" msgstr "LOKALISATIE" #. type: =item #: wcd.pod:839 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:841 msgid "" "The primary language is selected with the environment variable I. The " "I variable consists out of several parts. The first part is in small " "letters the language code. The second one is optional and is the country " "code in capital letters, preceded with an underscore. There is also an " "optional third part: character encoding, preceded with a dot. A few examples " "for POSIX standard type shells:" msgstr "" "The primaire taal wordt geselecteerd via de omgevingsvariabele I. De " "variabele I bestaat uit verschillende onderdelen. Het eerste deel is " "in kleine letters de taalcode. Het tweede deel is optioneel en is de " "landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook " "een optioneel derde deel: de tekencodering, voorafgegaan door een punt. " "Enkele voorbeelden voor een POSIX-shell:" #. type: verbatim #: wcd.pod:848 #, no-wrap msgid "" " export LANG=nl Dutch\n" " export LANG=nl_NL Dutch, The Netherlands\n" " export LANG=nl_BE Dutch, Belgium\n" " export LANG=es_ES Spanish, Spain\n" " export LANG=es_MX Spanish, Mexico\n" " export LANG=en_US.iso88591 English, USA, Latin-1 encoding\n" "\n" msgstr "" " export LANG=nl Nederlands\n" " export LANG=nl_NL Nederlands, Nederland\n" " export LANG=nl_BE Nederlands, België\n" " export LANG=es_ES Spaans, Spanje\n" " export LANG=es_MX Spaans, Mexico\n" " export LANG=en_US.iso88591 Engels, VS, Latin-1 codering\n" "\n" #. type: textblock #: wcd.pod:855 msgid "" "For a complete list of language and country codes see the gettext(1) " "manual: L On Unix systems you can use to command locale(1) to get locale " "specific information." msgstr "" "Voor een complete lijst van taal- en landcodes zie de gettext(1) " "handleiding: L Op Unix-systemen kunt u de opdracht locale(1) gebruiken " "om specifieke taalregio-informatie te verkrijgen." #. type: =item #: wcd.pod:861 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:863 msgid "" "With the I environment variable you can specify a priority list of " "languages, separated by colons. Wcd gives preference to I over " "I. For instance, first Dutch and then German: C. You " "have to first enable localization, by setting I or I to a " "value other than I, before you can use a language priority list through " "the I variable. See also the gettext(1) manual: L" msgstr "" "Met de omgevingsvariabele I kunt u een prioriteitenlijst " "specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft " "voorrang aan I boven I. Bijvoorbeeld, eerst Nederlands en " "dan Duits: C. U moet eerst lokalisatie in werking stellen, " "door het instellen van I of I op een waarde ongelijk aan C, " "voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele " "I. Zie ook de gettext(1) handleiding: L" #. type: textblock #: wcd.pod:871 msgid "" "If you select a language which is not available you will get the standard " "English messages." msgstr "" "Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse " "berichten gebruikt." #. type: =item #: wcd.pod:874 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:876 msgid "" "With the environment variable I the I used during " "compilation and installation of wcd can be overruled. I is used " "by wcd with native language support to find the language files. The GNU " "default value is C. By typing C wcd will " "print the I that is used." msgstr "" "Met de omgevingsvariabele I kan de I die ingesteld " "werd tijdens compilatie worden overstemd. I wordt gebruikt om de " "taalbestanden te vinden. De GNU standaardwaarde is C. Door C te typen zal wcd de gebruikte I laten " "zien." #. type: textblock #: wcd.pod:882 msgid "" "If you have installed wcd in a different directory than the default " "directory you may need to set the environment variable I to " "point to the locale directory." msgstr "" "Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het " "nodig zijn om omgevingsvariabele I te definiëren om te wijzen " "naar de locale map." #. type: textblock #: wcd.pod:887 msgid "An example for Windows cmd:" msgstr "Een voorbeeld voor Windows cmd:" #. type: verbatim #: wcd.pod:889 #, no-wrap msgid "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" msgstr "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" #. type: textblock #: wcd.pod:892 msgid "An example for a POSIX shell:" msgstr "Een voorbeeld voor een POSIX shell:" #. type: verbatim #: wcd.pod:894 #, no-wrap msgid "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" msgstr "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" #. type: =item #: wcd.pod:896 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:898 msgid "" "When there are multiple directory matches wcd presents a sorted list. The " "sorting depends on the locale settings. If the environment I has been " "set the matches are sorted like dictionaries or phone books are sorted in " "that language. For instance dots and dashes are ignored, or letters e with " "and without accent are equal, or upper and lower case is ignored." msgstr "" "Wanneer er meerdere maptreffers zijn presenteert wcd een gesorteerde lijst. " "Het sorteren hangt af van de lokalisatie instellingen. Wanneer de " "omgevingsvariabele I ingesteld is worden de treffers gesorteerd als in " "een woordenboek of telefoonboek in die taal. Bijvoorbeeld punten en " "streepjes worden genegeerd, of letters e met en zonder accent zijn gelijk, " "of sortering is ongevoelig voor hoofd en kleine letters." #. type: textblock #: wcd.pod:904 #| msgid "" #| "The sorting gives preference to environment variable I over " #| "I. If you make I equal to I or I, locale " #| "sorting is turned off. For instance if you want Dutch language, but not " #| "Dutch sorting, you can do something like this:" msgid "" "The sorting gives preference to environment variable I over " "I. If you make I equal to C or C, locale sorting " "is turned off. For instance if you want Dutch language, but not Dutch " "sorting, you can do something like this:" msgstr "" "De sortering geeft prioriteit aan omgevingsvariabele I boven " "I. Wanneer u I gelijk maakt aan C of C, wordt " "sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal " "wilt, maar geen Nederlandse sortering, dan kunt u iets doen als:" #. type: verbatim #: wcd.pod:909 #, no-wrap msgid "" " export LANG=nl_NL\n" " export LC_COLLATE=C\n" "\n" msgstr "" " export LANG=nl_NL\n" " export LC_COLLATE=C\n" "\n" #. type: =item #: wcd.pod:912 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:914 msgid "" "With regard to character encoding Wcd will give preference to variable " "I over I. For instance to set character encoding to UTF-8 " "the following environment setting can be done." msgstr "" "Met betrekking to tekencodering geeft Wcd prioriteit aan variabele " "I boven I. Bijvoorbeeld om de tekencodering op UTF-8 te " "zetten kan de volgende omgevings-instelling gemaakt worden." #. type: verbatim #: wcd.pod:918 #, no-wrap msgid "" " export LC_CTYPE=en_US.UTF-8\n" "\n" msgstr "" " export LC_CTYPE=en_US.UTF-8\n" "\n" #. type: =item #: wcd.pod:920 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:922 msgid "" "All locale environment variables that start with I are overruled by the " "environment variable I if it is defined. Wcd gives preference to " "I over I and I." msgstr "" "Alle lokalisatie omgevingsvariabelen die beginnen met I worden overstemd " "de omgevingsvariabele I wanneer die ingesteld is. Wcd geeft " "prioriteit aan I boven I en I." #. type: =head2 #: wcd.pod:929 msgid "WINDOWS CODE PAGES" msgstr "WINDOWS CODETABELLEN" #. type: textblock #: wcd.pod:931 msgid "" "There are two groups of code pages: DOS code pages (OEM) and Windows code " "pages (ANSI). The default encoding for Windows, when configured with Western " "regional settings, is ANSI CP1252. Windows programs, for instance notepad, " "use this default system ANSI code page. The Windows console uses by default " "an OEM code page (CP437 or CP850) for compatibility with DOS programs. If " "you use a DOS version of wcd in a Windows console it will work, because of " "the DOS code page. But the DOS version of wcd lacks support for long " "directory names and network drives on Windows." msgstr "" "Er zijn twee groepen van codetabellen, DOS codetabellen (OEM) en Windows " "codetabellen (ANSI). De standaard codering voor Windows, wanneer " "geconfigureerd met westerse regionale instellingen, is ANSI CP1252. Windows " "programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem ANSI " "codetabel. De Windows Opdrachtprompt gebruikt standaard een OEM codetabel " "(CP437 of CP850) voor compatibeliteit met DOS programma's. Als u een DOS " "versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, " "vanwege de DOS codetabel. Maar de DOS versie van wcd ontbeert ondersteuning " "voor lange mapnamen en netwerkschijven op Windows." #. type: textblock #: wcd.pod:940 msgid "" "The Windows version of wcd is a native Windows program and will use the " "Windows system ANSI code page. So on a Western regional Windows it will use " "code page CP1252 for directory names and messages. In order to get " "consistent output, independent of the active code page, all Windows versions " "of Wcd translate ANSI output to Unicode output in the Command Prompt and " "PowerShell." msgstr "" "De Windows versie van wcd is een echt Windows programma en zal de Windows " "systeem ANSI codetabel gebruiken. Dus op een Westers regionale Windows zal " "het de codetabel CP1252 gebruiken voor directory namen en berichten. Om een " "consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde " "codetabel, vertalen alle Windows versies van wcd ANSI uitvoer naar Unicode " "uitvoer in de Opdrachtprompt en PowerShell." #. type: textblock #: wcd.pod:946 msgid "" "The console raster font only supports the original OEM code page installed " "with Windows, so you have to change the console's font to true type Lucida " "Console to make Unicode (and ANSI) letters appear correctly." msgstr "" "Het Opdrachtprompt rastertypefont ondersteunt alleen de originele OEM " "codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar " "Lucida Console om Unicode (en ANSI) tekens correct te laten verschijnen." #. type: textblock #: wcd.pod:950 msgid "" "Non-Unicode versions of Wcd I use plain ANSI " "output. For these older versions the code page of the console has to be " "made equal to the system code page (changed to 1252) to make wcd for Windows " "work properly with special characters such as accented characters or the " "Euro symbol." msgstr "" "Niet-Unicode versies van Wcd I gebruiken " "gewone ANSI uitvoer. Voor deze oude versie moet de codetabel van de " "Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om " "wcd voor Windows goed te laten werken met speciale tekens zoals " "geaccentueerde tekens of een euroteken." #. type: textblock #: wcd.pod:955 msgid "" "The Windows system code page can be changed via the Control Panel regional " "options. The Windows console code page is changed with the C command." msgstr "" "De Windows systeem codetabel kan veranderd worden via het Configuratiescherm " "Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt " "veranderd met de C opdracht." #. type: textblock #: wcd.pod:958 msgid "" "When you type C, the actual character encoding used by wcd is shown. " "Type the command C to display the active code page of the Windows " "console." msgstr "" "Wanneer u C typet, wordt de actuele tekencodering getoond die door " "wcd gebruikt wordt. Type opdracht C op de actieve codetabel van de " "Opdrachtprompt te tonen." #. type: =head2 #: wcd.pod:963 msgid "UNICODE" msgstr "UNICODE" #. type: textblock #: wcd.pod:965 msgid "" "Wcd has optional support for Unicode. To see if wcd was built with Unicode " "support type C. If your terminal/console and font supports it, you " "should see the Euro symbol and Chinese characters (meaning: \"Chinese\")." msgstr "" "Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is " "met Unicode ondersteuning type C. Als uw terminal en font het " "ondersteunen, zou u een euroteken en Chinese tekens (betekenis: \"Chinees\") " "moeten zien." #. type: textblock #: wcd.pod:970 msgid "" "Wcd has been I converted to Unicode. In its core wcd handles all data " "as a stream of bytes. Only the lines printed to screen are on the fly " "converted to Unicode wide characters. Wcd fully relies on libc functions and " "has no UTF-8 specific code. See also L" msgstr "" "Wcd is I omgezet naar Unicode. In de kern behandelt wcd alle data als " "een stroom van bytes. Alleen de regels die op het scherm geprint worden, " "worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van " "libc functies en heeft geen UTF-8 specifieke broncode. Zie ook L" #. type: textblock #: wcd.pod:976 msgid "" "Wcd has optional support for Unicode matching with normalisation. To find " "out whether Wcd has normalisation support type C. Wcd with Unicode " "normalization support will match Unicode names based on I " "equivalence. Without Unicode normalization support, names are matched when " "they are binary equivalent. See also L" msgstr "" "Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met " "normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type " "C. Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode " "namen gebaseerd op I gelijkwaardigheid. Zonder Unicode " "normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. " "Zie ook L" #. type: =head3 #: wcd.pod:983 msgid "UTF-8 on Unix/Linux" msgstr "UTF-8 op Unix/Linux" #. type: textblock #: wcd.pod:985 msgid "" "In order to view UTF-8 characters your console/terminal also needs to " "support UTF-8. The xterm version that comes with XFree86 4.0 or higher " "includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and " "use a font with iso10646-1 encoding, for instance with" msgstr "" "Om UTF-8 tekens te zien moet uw terminal ook UTF-8 ondersteunen. De xterm " "versie die meekomt met XFree86 4.0 of hoger bevat UTF-8 ondersteuning. Om " "het te activeren, start xterm(1) in een UTF-8 taalregio en gebruik een font " "met iso10646-1 codering, bijvoorbeeld met" #. type: verbatim #: wcd.pod:990 #, no-wrap msgid "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" msgstr "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" #. type: textblock #: wcd.pod:992 msgid "" "Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte " "character encodings should also work, but that has not been tested." msgstr "" "Moderne uitgaves van GNU/Linux ondersteunen standaard UTF-8. Andere multi-" "byte tekencoderingen zouden ook moeten werken, maar dat is niet getest." #. type: textblock #: wcd.pod:995 msgid "" "Wcd assumes that the treedata files are encoded in the locale character " "encoding. There are no Byte Order Marks written to treedata files." msgstr "" "Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale " "tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-" "bestanden." #. type: =head3 #: wcd.pod:999 msgid "UTF-16 on Windows" msgstr "UTF-16 op Windows" #. type: textblock #: wcd.pod:1001 msgid "" "On Windows Unicode is supported in all versions of PowerShell, and in " "Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take " "Command or TCC/LE made by JP Software, which can be used on older Windows " "versions (XP/Vista)." msgstr "" "Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in " "Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take " "Command of TCC/LE gemaakt door JP Software, dat gebruikt kan worden op " "oudere Windows versies (XP/Vista)." #. type: textblock #: wcd.pod:1006 msgid "" "On Windows all the directory names on disk are encoded in UTF-16 Unicode. " "For non-Unicode Windows programs the Unicode characters are translated to " "the default ANSI code page. For characters that are not part of the regional " "setting this translation is not possible and non-Unicode programs print a " "question mark or a wrong character instead." msgstr "" "In Windows zijn alle mapnamen op schijf gecodeerd in UTF-16 Unicode. Voor " "niet-Unicode Windows programma's worden de tekens vertaald naar de standaard " "ANSI codetabel. Voor tekens die geen onderdeel zijn van de regionale " "instelling is de vertaling niet mogelijk en niet-Unicode programma's printen " "in plaats daarvan een vraagteken of een verkeerd teken." #. type: textblock #: wcd.pod:1012 msgid "" "Wcd with Unicode support will read the UTF-16 encoded directory names and " "converts them internally to UTF-8. All treedata files are encoded in UTF-8 " "and not compatible with the non-Unicode version of Wcd. Wcd will create a go-" "script encoded in UTF-8." msgstr "" "Wcd met Unicode ondersteuning leest de UTF-16 gecodeerde mappennamen en zet " "ze intern om naar UTF-8. Alle boomdata-bestanden zijn gecodeerd in UTF-8 en " "niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script " "aanmaken gecodeerd in UTF-8." #. type: textblock #: wcd.pod:1017 msgid "" "All versions of Windows PowerShell are able to run scripts encoded in UTF-8, " "provided there is an UTF-8 BOM in the script." msgstr "" "Alle versies van Windows PowerShell zijn in staat om in UTF-8 gecodeerde " "scripts te draaien, indien het script is voorzien van een UTF-8 BOM." #. type: textblock #: wcd.pod:1020 msgid "" "Since Windows 7 it is possible in Windows Command Prompt to change directory " "with a batch script to a directory with Unicode letters in the name. The " "directory name needs to be encoded in UTF-8, and the batch script must " "I have a BOM. The active code page of the Command Prompt needs to be " "set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will " "create such a go script C. It first changes the code page to " "65001, then changes directory, and finally sets the code page back to the " "original code page." msgstr "" "Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te " "veranderen met een batch script naar een map met Unicode tekens in de naam. " "De mapnaam moet gecodeerd zijn in UTF-8, en het batch script moet I " "BOM bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op " "65001 (UTF-8) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert " "zo'n go-script C. Eerst verandert het de codetabel naar 65001, " "verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de " "originele waarde." #. type: textblock #: wcd.pod:1028 msgid "" "You need to set the font to True Type Lucida Console (not raster font) when " "letters don't appear correctly." msgstr "" "U moet het font instellen op True Type Lucida Console (niet raster type " "font) wanneer de letters niet correct verschijnen." #. type: textblock #: wcd.pod:1031 msgid "" "The non-Unicode Windows version of Wcd can read Unicode treedata files since " "version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see " "L), but it can't change to " "directories with Unicode letters in the name that are not part of the " "default system ANSI code page. The Unicode Windows version of wcd writes a " "BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes " "them also readable by notepad." msgstr "" "De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen " "sinds versie 5.2.0, indien er een Byte Order Mark (BOM) in het bestand zit " "(zie L), maar kan niet " "veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn " "van de standaard systeem ANSI codetabel. De Unicode Windows versie van wcd " "schrijft een BOM in het UTF-8 gecodeerde boomdata-bestand sinds versie " "5.2.0, wat ze ook leesbaar maakt voor kladblok." #. type: =head3 #: wcd.pod:1040 msgid "UTF-8 on Cygwin" msgstr "UTF-8 in Cygwin" #. type: textblock #: wcd.pod:1042 msgid "" "Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that " "the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like " "wcd, do not need to be aware of this and can operate using UTF-8 encoding as " "on Unix/Linux. Set character encoding to UTF-8 with the I or " "I environment variable. You may need to rescan your drives. You " "need to set the font to True Type Lucida Console (not raster font) if you " "use the default Cygwin console." msgstr "" "Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor " "dat de Windows UTF-16 Unicode namen vertaald worden naar UTF-8. Dus " "programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken " "gebruikmakend van UTF-8 codering als op Unix/Linux. Stel de tekencodering in " "op UTF-8 met de I of I omgevingsvariabele. Het kan nodig " "zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen " "op True Type Lucida Console (niet raster type font) wanneer u de standaard " "Cygwin console gebruikt." #. type: textblock #: wcd.pod:1050 msgid "" "The Cygwin version behaves exactly as the Unix version of wcd. There is no " "BOM written in the treedata files, and it is assumed they are encoded in the " "B locale character encoding." msgstr "" "De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er " "wordt geen BOM geschreven in de boomdata-bestanden, en er wordt aangenomen " "dat ze gecodeerd zijn in de B lokalisatie tekencodering." #. type: =head1 #: wcd.pod:1054 msgid "FILES" msgstr "BESTANDEN" #. type: textblock #: wcd.pod:1056 msgid "" "If the environment variable I is set wcd will use I " "instead of I. All C<*.wcd> files are text files. They can be edited " "with a text editor. The Windows Command Prompt version of wcd behaves as " "the DOS version. The Cygwin version of wcd behaves as the Unix version." msgstr "" "Wanneer omgevingsvariabele I ingesteld is zal wcd I " "gebruiken in plaats van I. Alle C<*.wcd> bestanden zijn " "tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows " "Opdrachtprompt versie gedraagt zich als de DOS versie. De Cygwin versie van " "wcd gedraagt zich als de Unix versie." #. type: =item #: wcd.pod:1065 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1067 msgid "" "The program. In Unix shells the program is always called by a function or " "alias, because the current working directory of a Unix shell can only be " "changed by the builtin cd command. See also section INSTALLATION." msgstr "" "Het programma. In Unix shells wordt het programma altijd aangeroepen door " "een functie of alias, omdat de huidige werkmap alleen veranderd kan worden " "door de ingebouwde cd opdracht. Zie ook paragraaf INSTALLATIE." #. type: =item #: wcd.pod:1072 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1074 msgid "" "This is the default treedata file where wcd searches for matches. If it is " "not readable wcd will create a new one." msgstr "" "Dit is het standaard boomdata-bestand waarin wcd zoekt naar treffers. " "Wanneer het niet leesbaar is zal wcd een nieuwe aanmaken." #. type: verbatim #: wcd.pod:1077 #, no-wrap msgid "" " DOS: \\treedata.wcd or %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" msgstr "" " DOS: \\treedata.wcd of %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" #. type: =item #: wcd.pod:1080 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1082 msgid "" "An optional extra treedata file. If it exists and is readable wcd will try " "to find matches in this file also." msgstr "" "Een optioneel extra boomdata-bestand. Wanneer het bestaat en leesbaar is zal " "wcd ook in dit bestand proberen treffers te vinden." #. type: verbatim #: wcd.pod:1085 #, no-wrap msgid "" " DOS: \\extra.wcd or %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" msgstr "" " DOS: \\extra.wcd of HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" #. type: =item #: wcd.pod:1088 msgid "B" msgstr "B< ban-bestand>" #. type: textblock #: wcd.pod:1090 msgid "" "In this optional file wcd places banned paths. See option B<-b>. Wildcards " "are supported." msgstr "" "In dit optionele bestand plaatst wcd de verbannen paden. Zie optie B<-b>. " "Jokertekens worden ondersteund." #. type: verbatim #: wcd.pod:1093 #, no-wrap msgid "" " DOS: \\ban.wcd or %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" msgstr "" " DOS: \\ban.wcd of %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" #. type: =item #: wcd.pod:1096 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1098 msgid "Optional file with wcd aliases. See option B<-l>." msgstr "Optioneel bestand met wcd aliassen. Zie optie B<-I>." #. type: verbatim #: wcd.pod:1100 #, no-wrap msgid "" " DOS: \\alias.wcd or %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" msgstr "" " DOS: \\alias.wcd of %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" #. type: =item #: wcd.pod:1103 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1105 msgid "" "In this file wcd stores its stack. The drive letter can be changed with the " "B<-d> option." msgstr "" "In dit bestand slaat wcd zijn stapel op. De schijfletter kan veranderd " "worden met de B<-d> optie." #. type: verbatim #: wcd.pod:1108 #, no-wrap msgid "" " DOS: c:\\stack.wcd or %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" msgstr "" " DOS: c:\\stack.wcd of %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" #. type: textblock #: wcd.pod:1111 msgid "" "The name of the stack file can be changed with environment variable " "I. See section ENVIRONMENT VARIABLES." msgstr "" "De naam van het stapelbestand kan veranderd worden met omgevingsvariabele " "I. Zie paragraaf OMGEVINGSVARIABELEN." #. type: =item #: wcd.pod:1114 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1116 msgid "" "This is the shell script which wcd.exe creates each time. It is sourced via " "a function or an alias. The drive letter can be changed with the B<-d> " "option. For history reasons it is placed by default in C<$HOME/bin> on Unix " "systems. The directory of this file can be changed with the option B<-G>." msgstr "" "Dit is het shell-script dat wcd elke keer creëert. Het wordt ingelezen via " "een functie of een alias. De schijfletter kan gewijzigd worden met de B<-d> " "optie. Wegens voorgeschiedenis redenen wordt het standaard geplaatst in C<" "$HOME/bin> op Unix systemen. De map van dit bestand kan gewijzigd worden met " "de optie B<-G>." #. type: verbatim #: wcd.pod:1121 #, no-wrap msgid "" " DOS bash: c:/wcd.go or $HOME/wcd.go\n" " Windows Command Prompt: c:\\wcdgo.bat or %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2 Command Prompt: c:\\wcdgo.cmd or %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" msgstr "" " DOS bash: c:/wcd.go of $HOME/wcd.go\n" " Windows Command Prompt: c:\\wcdgo.bat of %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2 Opdrachtprompt: c:\\wcdgo.cmd of %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" #. type: =item #: wcd.pod:1129 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1131 msgid "" "Text file with relative paths from I. See options B<+S>, B<-n> and B<" "+n>." msgstr "" "Tekstbestand met relatieve paden vanaf I. Zie opties B<+S>, B<-n> en B<" "+n>." #. type: verbatim #: wcd.pod:1134 #, no-wrap msgid "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" msgstr "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" #. type: =head1 #: wcd.pod:1139 msgid "ENVIRONMENT VARIABLES" msgstr "OMGEVINGSVARIABELEN" #. type: =item #: wcd.pod:1143 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1145 msgid "" "Wcd uses by default environment variable I to determine where to store " "its files. See also section FILES. This can be overruled with environment " "variable I." msgstr "" "Wcd gebruikt standaard omgevingsvariabele I om te bepalen waar z'n " "bestanden op te slaan. Zie ook paragraaf BESTANDEN. Dit kan overstemd worden " "met omgevingsvariabele I." #. type: textblock #: wcd.pod:1149 #| msgid "" #| "I also defines where to start scanning the disk when option C<-s> " #| "is used. This can be overruled with the environment variable I." msgid "" "I also defines where to start scanning the disk when option B<-s> is " "used. This can be overruled with the environment variable I." msgstr "" "I bepaalt ook waar te beginnen met het scannen van de schijf wanneer " "optie B<-s> gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele " "I." #. type: textblock #: wcd.pod:1153 msgid "" "For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is " "required that I or I is set. For the other versions of wcd " "the use of these variables is optional." msgstr "" "Voor de Unix, Cygwin, Windows PowerShell, WinZsh en MSYS versie is het " "vereist dat I of I ingesteld is. Voor de andere versies van " "wcd is het gebruik van deze variabelen optioneel." #. type: textblock #: wcd.pod:1157 msgid "" "If I is set on DOS/Windows, wcd will place all its files (treedata." "wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory I. The " "behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the " "disk default from I. Drives will not be automatically scanned by " "changing to them. You need to tell wcd explicitly. E.g.:" msgstr "" "Wanneer I ingesteld is op DOS/Windows, zal wcd al zijn bestanden " "(treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map I " "plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd " "zal de schijf standaard scannen vanaf I. Schijven worden niet " "automatisch gescant door er naar te veranderen. Dat moet wcd expliciet " "opgedragen worden. B.v.:" #. type: verbatim #: wcd.pod:1164 #, no-wrap msgid "" " wcd -S c: -A d: -A e:\n" "\n" msgstr "" " wcd -S c: -A d: -A e:\n" "\n" #. type: textblock #: wcd.pod:1166 msgid "Matching of directories is now global over all scanned drives." msgstr "Vergelijken van mappen is nu globaal over alle gescande schijven." #. type: =item #: wcd.pod:1169 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1171 msgid "" "Environment variable I can be used to change the location of wcd's " "files. If both I and I are set, I will be used " "instead of I." msgstr "" "Omgevingsvariabele I kan gebruikt worden om de locatie van wcds " "bestanden te wijzigen. Wanneer zowel I als I ingesteld zijn, " "zal I gebruikt worden in plaats van I." #. type: textblock #: wcd.pod:1175 msgid "" "In wcd versions prior to 5.1.5 I also changed the default scan " "directory. This has changed. Since version 5.1.5 I does not change " "the default scan directory. See option B<-s>. From version 5.1.5, use " "environment I to overrule the default scan directory." msgstr "" "In wcd versies voorafgaand aan 5.1.5 veranderde I ook de standaard " "scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert I niet de " "standaard scan-map. Zie optie B<-s>. Gebruik vanaf versie 5.1.5 " "omgevingsvariabele I om de standaard scan-map te overstemmen." #. type: textblock #: wcd.pod:1180 msgid "Example for DOS, Windows, OS/2 Command Prompt:" msgstr "Voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:" #. type: verbatim #: wcd.pod:1182 #, no-wrap msgid "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" msgstr "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" #. type: textblock #: wcd.pod:1184 wcd.pod:1205 wcd.pod:1225 wcd.pod:1250 msgid "An example for POSIX type shells:" msgstr "Een voorbeeld voor POSIX type shells:" #. type: verbatim #: wcd.pod:1186 #, no-wrap msgid "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" msgstr "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" #. type: textblock #: wcd.pod:1188 wcd.pod:1209 wcd.pod:1229 wcd.pod:1254 msgid "An example for Csh type shells:" msgstr "Een voorbeeld voor Csh type shells:" #. type: verbatim #: wcd.pod:1190 #, no-wrap msgid "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" msgstr "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" #. type: =item #: wcd.pod:1192 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1194 msgid "" "Use environment variable I to overrule the default scan directory " "I. Define a colon separated list (Unix) to define more than one " "directory. On DOS/Windows make the list semi-colon separated." msgstr "" "Gebruik omgevingsvariabele I om de standaard scan-map I te " "overstemmen. Gebruik een door dubbele punten gescheiden lijst (Unix) om meer " "dan een map te definiëren. Gebruik op DOS/Windows een lijst gescheiden door " "puntkomma's." #. type: textblock #: wcd.pod:1199 msgid "Examples for DOS, Windows, OS/2 Command Prompt:" msgstr "Voorbeelden voor DOS, Windows, OS/2 Opdrachtprompt:" #. type: verbatim #: wcd.pod:1201 #, no-wrap msgid "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" msgstr "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" #. type: verbatim #: wcd.pod:1203 #, no-wrap msgid "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" msgstr "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" #. type: verbatim #: wcd.pod:1207 #, no-wrap msgid "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" #. type: verbatim #: wcd.pod:1211 #, no-wrap msgid "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" #. type: =item #: wcd.pod:1213 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1215 msgid "" "Specify filters with environment variable I. All directories that " "do not match the filter(s) are ignored. A list can be specified by " "separating filters by the shell path separator. Similar as specifying the " "I variable. The case sensitivity is mandated by the Operating system." msgstr "" "Specificeer filters met omgevingsvariabele I. Alle mappen die " "niet treffen met het filter worden genegeerd. Een lijst kan gespecificeerd " "worden met het shell pad scheidingsteken. Gelijk aan het specificeren van de " "I variabele. Hoofdlettergevoeligheid wordt bepaald door het " "besturingssysteem." #. type: textblock #: wcd.pod:1221 wcd.pod:1246 msgid "An example for DOS, Windows, OS/2 Command Prompt:" msgstr "Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:" #. type: verbatim #: wcd.pod:1223 #, no-wrap msgid "" " set WCDFILTER=projects;doc\n" "\n" msgstr "" " set WCDFILTER=projects;doc\n" "\n" #. type: verbatim #: wcd.pod:1227 #, no-wrap msgid "" " export WCDFILTER=\"projects:doc\"\n" "\n" msgstr "" " export WCDFILTER=\"projects:doc\"\n" "\n" #. type: verbatim #: wcd.pod:1231 #, no-wrap msgid "" " setenv WCDFILTER \"projects:doc\"\n" "\n" msgstr "" " setenv WCDFILTER \"projects:doc\"\n" "\n" #. type: =item #: wcd.pod:1233 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1235 msgid "" "The paths specified with environment I will be banned by wcd. See " "also option B<-b>. Specify a list of paths separated by shell I " "separator." msgstr "" "De paden gespecificeerd met omgevingsvariabele I worden verbannen " "door wcd. Zie ook optie B<-b>. Specificeer een lijst van paden met het shell " "I scheidingsteken." #. type: =item #: wcd.pod:1239 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1241 msgid "" "The paths specified with environment I will be excluded by wcd. " "See also options B<-x> and B<-xf>. Specify a list of paths separated by " "shell I separator." msgstr "" "De paden gespecificeerd met omgevingsvariabele I worden " "uitgesloten door wcd. Zie ook opties B<-x> en B<-xf>. Specificeer een lijst " "van paden met het shell I scheidingsteken." #. type: verbatim #: wcd.pod:1248 #, no-wrap msgid "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" msgstr "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" #. type: verbatim #: wcd.pod:1252 #, no-wrap msgid "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" #. type: verbatim #: wcd.pod:1256 #, no-wrap msgid "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" #. type: =item #: wcd.pod:1258 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1260 msgid "" "Set the base of user's home directories. On DOS/Windows the default value " "is C<\\\\users>. On Unix/Cygwin the default value is C. This " "variable is used to scan treedata files of other users. See also options B<-" "u> and B<+u>. In verbose mode wcd will print all filters, bans and excludes. " "See option B<-v>." msgstr "" "Stel de basis in de de thuismappen van de gebruikers. Op DOS/Windows is de " "standaard waarde C<\\\\users>. Op Unix/Cygwin is de standaard waarde C. Deze variabele wordt gebruikt om boomdata-bestanden van andere " "gebruikers te scannen. Zie ook opties B<-u> en B<+u>. In gedetailleerde " "uitvoer-modus zal wcd alle filters, verbanningen en uitsluitingen tonen. Zie " "ook optie B<-v>." #. type: =item #: wcd.pod:1267 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1269 msgid "" "Wcd gives preference to I over the default stack file name " "(see section FILES). With this variable each shell (or used terminal " "emulator) can have its private stack of used directories." msgstr "" "Wcd geeft prioriteit aan I boven de standaard " "stapelbestandsnaam (zie paragraaf BESTANDEN). Met deze variabele kan elke " "shell (of terminal) zijn eigen privé stapel voor mappen hebben." #. type: textblock #: wcd.pod:1273 msgid "" "To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive " "shell." msgstr "" "Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende " "interactieve shell te gebruiken." #. type: verbatim #: wcd.pod:1276 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" #. type: textblock #: wcd.pod:1278 msgid "" "For a stack per xterm(1), use the xterm I environment variable:" msgstr "" "Voor een stapel per xterm(1), gebruik de xterm omgevingsvariabele " "I:" #. type: verbatim #: wcd.pod:1280 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" #. type: textblock #: wcd.pod:1282 msgid "For GNU screen(1), to use stack per screen:" msgstr "Voor GNU screen(1), gebruik een stapel per scherm:" #. type: verbatim #: wcd.pod:1284 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" #. type: =item #: wcd.pod:1286 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1288 msgid "" "If the environment variable I is defined, wcd with ncurses " "interface checks for a local terminal definition before checking in the " "standard place. This is useful if terminal definitions are not on a standard " "place. Often used standard places are C and C." msgstr "" "Wanneer omgevingsvariabele I ingesteld is, controleert wcd met " "ncurses interface of er lokale terminal definities zijn voor op de standaard " "plek te kijken. Dit is nuttig wanneer terminal definities niet op een " "standaard plaats staan. Veel gebruikte standaard plaatsen zijn C en C." #. type: =item #: wcd.pod:1294 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1296 msgid "" "Wcd with PDCurses interface recognizes the environment variable " "I. If this environment variable is set, PDCurses will " "take a copy of the contents of the screen at the time that wcd is started; " "when wcd exits, the screen will be restored. An example for Windows Command " "Prompt:" msgstr "" "Wcd met PDCurses interface herkent de omgevingsvariabele " "I. Wanneer deze omgevingsvariabele ingesteld is, zal " "PDCurses een kopie maken van de inhoud van het scherm op het moment dat wcd " "gestart is. Wanneer wcd afsluit zal het scherm hersteld worden. Een " "voorbeeld voor Windows Opdrachtprompt:" #. type: verbatim #: wcd.pod:1302 #, no-wrap msgid "" " set PDC_RESTORE_SCREEN=1\n" "\n" msgstr "" " set PDC_RESTORE_SCREEN=1\n" "\n" #. type: textblock #: wcd.pod:1304 msgid "" "Windows allows only a small buffer to be saved. So it is not always possible " "to restore everything. Some garbage data may be printed in the console after " "wcd exists if you have set a large buffer width." msgstr "" "Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd " "mogelijk om alles te herstellen. Er kan wat rommel in de console geprint " "worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld." #. type: =item #: wcd.pod:1309 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1311 msgid "" "Printing of C<#!$SHELL> on the first line of the go-script for POSIX type " "shell or C shell is needed for 8 bit characters. Some shells otherwise think " "that the go-script is a binary file and will not source it. In Cygwin Bash " "the variable I must be set in environment using the C " "command, otherwise wcd can't read the variable." msgstr "" "Het printen van C<#!$SHELL> op de de eerste regel van het go-script voor " "POSIX type shell of C shell is nodig voor 8 bit tekens. Sommige shells " "denken anders dat het go-script een binair bestand is en willen het niet " "inlezen. In Cygwin Bash moet de variabele I ingesteld zijn met de " "C opdracht, anders kan wcd de variabele niet lezen." #. type: =item #: wcd.pod:1319 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1321 msgid "" "Wcd for DOS bash uses C<$BASH> instead of C<$SHELL>, because C<$SHELL> " "points to the DOS command shell. One may need to define C<$BASH> with an " "C command, otherwise wcd can't read the variable." msgstr "" "Wcd voor DOS bash gebruikt C<$BASH> in plaats van C<$SHELL>, omdat C<$SHELL> " "verwijst naar de DOS Opdrachtprompt. Het kan nodig zijn dat men C<$BASH> met " "een C opdracht moet definiëren, anders kan wcd de variabele niet " "lezen." #. type: =head1 #: wcd.pod:1328 msgid "SEE ALSO" msgstr "ZIE OOK" #. type: textblock #: wcd.pod:1330 msgid "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," msgstr "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," #. type: =head1 #: wcd.pod:1338 msgid "AUTHORS" msgstr "AUTEURS" #. type: textblock #: wcd.pod:1340 msgid "Wcd was written by Erwin Waterlander " msgstr "Wcd is geschreven door Erwin Waterlander " #. type: textblock #: wcd.pod:1342 msgid "Project homepage: L" msgstr "Project beginpagina L" #. type: textblock #: wcd.pod:1345 msgid "SourceForge: L" msgstr "SourceForge: L" #. type: textblock #: wcd.pod:1348 msgid "Freecode: L" msgstr "Freecode: L" #. type: textblock #: wcd.pod:1351 msgid "" "The manual page formatting was provided by Jari Aalto ." msgstr "" "De opmaak van de handleiding was verzorgd door Jari Aalto ." #. type: textblock #: wcd.pod:1354 msgid "" "NCD was originally written by Brad Kingsbury for Peter Norton's \"Norton " "Utilities\" around 1987. See also L" msgstr "" "NCD was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's " "\"Norton Utilities\" omstreeks 1987. Zie ook L" wcd-5.2.5/src/man/nl/man1/wcd.10000664000175000017500000015672612345660657016223 0ustar waterlanwaterlan.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.20) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "wcd 1" .TH wcd 1 "2014-06-10" "wcd" "2014-06-10" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAAM" .IX Header "NAAM" wcd \- Wherever Change Directory .PP chdir voor \s-1DOS\s0 en Unix .SH "OVERZICHT" .IX Header "OVERZICHT" .Vb 1 \& wcd [opties] [map] .Ve .SH "BESCHRIJVING" .IX Header "BESCHRIJVING" .SS "Overzicht" .IX Subsection "Overzicht" Wcd is een commandoregel programma om snel van map te veranderen. Het bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt ook een schermvullende interactieve boomweergave met snelzoek functie. .PP Wcd is gemodelleerd naar Norton Change Directory (\s-1NCD\s0). \s-1NCD\s0 verscheen voor het eerst in \fIThe Norton Utilities, Release 4\fR, for \s-1DOS\s0 in 1987, gepubliceerd door Peter Norton. .PP Wcd is geschikt gemaakt voor verschillende commandoregel shells: \s-1DOS\s0 command.com, Windows cmd.exe en PowerShell, \s-1OS/2\s0 cmd.exe, en Unix shells zoals Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en anderen draaiend op elk besturingssysteem. .PP Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel ondersteuning voor Unicode. Zie paragraaf \s-1LOKALISTIE.\s0 .PP Zie paragraaf \s-1INSTALLATIE\s0 hoe wcd voor persoonlijk gebruik in te stellen. .SS "Basisgebruik" .IX Subsection "Basisgebruik" Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met een naam die begint met de naam die getypt is. .PP Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map \&\f(CW\*(C`/home/user/Desktop\*(C'\fR: .PP .Vb 1 \& wcd Desk .Ve .PP Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen (meestal een). .SS "Jokertekens" .IX Subsection "Jokertekens" Wcd ondersteunt de volgende jokertekens: .PP .Vb 5 \& * treft een willekeurige reeks van tekens (nul of meer) \& ? treft een willekeurig teken \& [SET] treft willekeurige tekens in de gespecificeerde set, \& [!SET] of [^SET] treft willekeurige tekens niet in de \& gespecificeerde set. .Ve .PP Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als \&\fIteken koppelteken teken\fR zoals in \f(CW\*(C`0\-9\*(C'\fR of \f(CW\*(C`A\-Z\*(C'\fR. \f(CW\*(C`[0\-9a\-zA\-Z_]\*(C'\fR is de minimale set van tekens toegestaan in de \f(CW\*(C`[..]\*(C'\fR patroon samenstelling. Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem ze ondersteunt. Om de speciale syntactische betekenis van elke van \f(CW\*(C`[]*?!^\-\e\*(C'\fRbinnen of buiten een \f(CW\*(C`[..]\*(C'\fR samenstelling te onderdrukken en exact gelijke te treffen, laat het teken vooraf gaan door een backslash (\f(CW\*(C`\e\*(C'\fR) teken. .PP Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. Bijvoorbeeld dit treft elke mapnaam die eindigt op \*(L"top\*(R". .PP .Vb 1 \& wcd *top .Ve .PP Tref mappen die ergens \*(L"top\*(R" in de naam heeft: .PP .Vb 1 \& wcd *top* .Ve .PP Tref elke map die die begint met \*(L"a\*(R", \*(L"b\*(R" or \*(L"c\*(R": .PP .Vb 1 \& wcd [a\-c]* .Ve .PP Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar een map die begint met \*(L"Desk\*(R" en wiens pad overeenkomt met \fI*me/Desk*\fR. .PP .Vb 1 \& wcd me/Desk .Ve .PP Het is toegestaan om elke expressie met schuine strepen en jokertekens te typen. B.v.: .PP .Vb 1 \& wcd src*/*1?/a*2 .Ve .SS "Overig gebruik" .IX Subsection "Overig gebruik" Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd worden met de \fB\-w\fR optie. .PP De interactieve mappen-verkenner kan met de optie \fB\-g\fR gestart worden. .PP .Vb 1 \& wcd \-g .Ve .PP Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen van een netwerk. .PP Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B.v.: .PP .Vb 1 \& wcd .. .Ve .PP Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan veranderen, probeert hij deze te verwijderen uit het standaard boomdata-bestand. Niet uit het extra boomdata-bestand. Zie ook optie \fB\-k\fR. .PP Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel heeft een standaard grootte van 10 en is cyclisch. Zie opties \fB\-z\fR, \fB\-\fR, \&\fB+\fR en \fB=\fR. .PP In een omgeving met meerdere gebruikers kan optie \fB\-u\fR gebruikt worden om naar mappen van andere gebruikers te veranderen. .PP Op \s-1DOS\s0 en Windows systemen maakt het niet uit of een slash \*(L"/\*(R" of een backslash \*(L"\e\*(R" als mappen-scheidingsteken gebruikt wordt. .PP Het is mogelijk op \s-1DOS\s0 en Windows systemen om tegelijk van schijf en map te veranderen door de mapnaam vooraf te laten gaan door de schijf naam. .PP .Vb 1 \& wcd d:games .Ve .SS "Windows \s-1UNC\s0 paden" .IX Subsection "Windows UNC paden" De Windows versies (Opdrachtprompt, PowerShell, \s-1MSYS,\s0 zsh, Cygwin) ondersteunen Windows \s-1SMB LAN UNC\s0 paden zonder schijfletter, zoals \&\f(CW\*(C`\e\eservername\esharename\*(C'\fR. Wcd voor de Opdrachtprompt maakt gebruik van het \&\*(L"pushd\*(R" commando om automatisch een \s-1UNC\s0 pad toe te wijzen aan een schijfletter. In Windows PowerShell, \s-1MSYS,\s0 zsh en Cygwin worden \s-1UNC\s0 paden volledig ondersteund. De huidige werkmap kan een \s-1UNC\s0 pad zijn. .SS "Interfaces" .IX Subsection "Interfaces" Wcd heeft drie verschillende interface om uit een lijst van treffers te kiezen. De interface kan gekozen worden bij het bouwen van Wcd. .PP De eerste interface gebruikt standaard in\- en uitvoer. Een genummerde lijst wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een nummber te typen gevolgd door . Deze interface biedt geen terug-blader functionaliteit bij een lange lijst. De terug-blader functionaliteit van de terminal/console moet gebruikt worden. Deze interface is heel klein en overdraagbaar. .PP De tweede interface is gebouwd met de conio bibliotheek. Het biedt een ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een enkele toetsaanslag van een letter. Deze interface is snel, omdat het toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na afsluiten. Iemand die prefereert nummers te typen kan de \fB\-N\fR optie gebruiken. .PP De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan de conio interface. De curses versie van wcd heeft een extra 'grafische' interface. Het laat de gebruiker een map kiezen via een vol-scherm interactieve mappenboom verkenner. Het heeft \fIvim\fR\|(1) gelijke navigatie en zoek methodes. Het kan geactiveerd worden met de optie \fB\-g\fR. .PP Door de \fB\-o\fR optie te gebruiken kan men altijd terugvallen op de standaard in\- en uitvoer interface. .SH "OPTIES" .IX Header "OPTIES" .IP "\fB\-a\fR" 4 .IX Item "-a" Voeg huidig pad to aan het standaard boomdata-bestand. .Sp Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang duren. .IP "\fB\-aa\fR" 4 .IX Item "-aa" Voeg het huidige en alle bovenliggende paden toe aan het standaard boomdata-bestand. .IP "\fB\-A \s-1PAD\s0\fR" 4 .IX Item "-A PAD" Scan mappenboom vanaf \fI\s-1PATH\s0\fR en voeg toe aan het standaard boomdata-bestand. Voorbeelden: .Sp .Vb 3 \& wcd \-A . \& wcd \-A /home \-A /etc \& wcd \-A d: \-A e: \-A \e\eserver\eshare .Ve .Sp Op Windows kan men alle gedeelde mappen van een Windows \s-1LAN\s0 server scannen door iets te typen als: \f(CW\*(C`wcd \-A \e\eservername\*(C'\fR. .Sp Zie ook opties \fB\-S\fR en \fB\-s\fR en \fB\-E\fR. .IP "\fB\-b\fR" 4 .IX Item "-b" Verban het huidige pad. .Sp Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle treffers van deze map en zijn sub-mappen negeert. .Sp Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van jokertekens wordt ondersteund en namen worden vergeleken met het volledige pad. .Sp Verbannen paden worden niet uitgesloten van het scannen van de schijf. Gebruik optie \fB\-xf\fR om dat te doen. .IP "\fB\-c, \-\-direct\-cd\fR" 4 .IX Item "-c, --direct-cd" Directe \s-1CD\s0 modus. Standaard werkt wcd als volgt: .Sp .Vb 2 \& 1. Probeer een treffer te vinden in een boomdata\-bestand. \& 2. Wanneer geen treffer, probeer het getypte pad te openen. .Ve .Sp In directe \s-1CD\s0 modus werkt wcd in omgekeerde volgorde. .Sp .Vb 2 \& 1. Probeer het getypte pad te openen. \& 2. Indien niet gelukt, probeer een treffer te vinden in een boomdata\-bestand. .Ve .IP "\fB\-d \s-1SCHIJF\s0\fR" 4 .IX Item "-d SCHIJF" Stel schijf in voor stapel\- en go-script (alleen \s-1DOS\s0). .Sp Het stapelbestand en go-script worden standaard opgeslagen op schijf C: wanneer omgevingsvariabele \fI\s-1HOME\s0\fR niet ingesteld is. Gebruik deze optie wanneer \s-1SCHIJF\s0 een alleen-lezen schijf is. Deze optie moet gebruikt worden vooraf aan stapel opties \fB\-\fR, \fB+\fR en \fB=\fR. .IP "\fB\-e\fR" 4 .IX Item "-e" Voeg huidig pad toe aan het extra boomdata-bestand. .Sp Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-bestand. .IP "\fB\-ee\fR" 4 .IX Item "-ee" Voeg het huidige en alle bovenliggende paden toe aan het extra boomdata-bestand. .IP "\fB\-E \s-1PAD\s0\fR" 4 .IX Item "-E PAD" Scan mappenboom vanaf \fI\s-1PAD\s0\fR en voeg het toe aan het Extra boomdata\-bestand.Zie ook opties \fB\-A\fR en \fB\-S\fR. .IP "\fB\-f \s-1BESTAND\s0\fR" 4 .IX Item "-f BESTAND" Lees boomdata-bestand \fI\s-1BESTAND\s0\fR. Lees niet het standaard boomdata-bestand. .IP "\fB+f \s-1BESTAND\s0\fR" 4 .IX Item "+f BESTAND" Lees boomdata-bestand \fI\s-1BESTAND\s0\fR bovenop het standaard boomdata-bestand. .IP "\fB\-g\fR" 4 .IX Item "-g" Grafische interface (alleen in versie met curses interface). .Sp Wcd start een tekstuele curses gebaseerde 'grafische' interface. De gebruiker kan een map selecteren via een vol-scherm interactieve mappenverkenner. Het heeft een \fIvim\fR\|(1) achtige navigatie en zoek methode. .Sp Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het standaard en het extra boomdata-bestand staat. .Sp Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als een mappenboom .Sp De standaard boom opmaak is gelijk aan de boomopmaak van de originele \s-1NCD\s0 op \&\s-1DOS.\s0 Het verschil in opmaak is dat in \s-1NCD\s0 alle mappen van dezelfde diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk in \s-1NCD,\s0 omdat de maximale breedte van een mapnaam in \s-1DOS 12 \s0(8.3) tekens was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de ander sub-tak. .Sp Het navigatie gedrag in wcd is exact hetzelfde als in de originele \&\s-1NCD.\s0 Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie door de boom mogelijk. .Sp Zie opties \fB\-Ta\fR, \fB\-TC\fR, en \fB\-TC\fR om het navigatiegedrag te veranderen. .IP "\fB\-gd\fR" 4 .IX Item "-gd" Dump de boomdatabestanden als een boom naar standaard uitvoer. .IP "\fB\-G \s-1PAD\s0\fR" 4 .IX Item "-G PAD" Schrijf go-script in map \fI\s-1PAD\s0\fR. Bijvoorbeeld op Unix, \f(CW\*(C`wcd \-G PAD\*(C'\fR zal een go-script schrijven in \fBPAD/wcd.go\fR. .IP "\fB\-GN, \-\-no\-go\-script\fR" 4 .IX Item "-GN, --no-go-script" Maak geen go-script aan. Deze optie kan gebruikt worden in combinatie met de optie \fB\-j\fR wanneer men wil dat wcd geen go-script aanmaakt. .IP "\fB\-h, \-\-help\fR" 4 .IX Item "-h, --help" Toon helptext en sluit af. .IP "\fB\-i, \-\-ignore\-case\fR" 4 .IX Item "-i, --ignore-case" Hoofdletterongevoelig. \s-1DOS\s0 en Windows versies van wcd zijn standaard hoofdletterongevoelig. Unix/Cygwin versies zijn standaard hoofdlettergevoelig. .IP "\fB+i, \-\-no\-ignore\-case\fR" 4 .IX Item "+i, --no-ignore-case" Hoofdlettergevoelig. Zie ook optie \fB\-i\fR. .IP "\fB\-I, \-\-ignore\-diacritics\fR" 4 .IX Item "-I, --ignore-diacritics" Ongevoelig voor diakritische tekens voor Latijnse geschriften. Letters met een diakritisch teken treffen hun basisletter zonder diakritisch teken. De volgende Latijnse coderingen worden ondersteund: \s-1CP437, CP850, CP852, CP1250, CP1252, ISO\-8859\-1, ISO\-8859\-2,\s0 en Unicode Latin\-1, Latin Extended-A, en Latin Extended-B. Zie ook .IP "\fB+I, \-\-no\-ignore\-diacritics\fR" 4 .IX Item "+I, --no-ignore-diacritics" Gevoelig voor diakritische tekens (standaard). Zie ook optie \fB\-I\fR. .IP "\fB\-j, \-\-just\-go\fR" 4 .IX Item "-j, --just-go" Ga-nou-maar modus. .Sp In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen naar de volgende optie, en zo verder. .Sp Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere installatie methode gebruikt worden. Men zou de volgende functie kunnen maken voor een \s-1POSIX\s0 compatibele shell: .Sp .Vb 4 \& wcd () \& { \& cd "$($HOME/bin/wcd.exe \-j $@)" \& } .Ve .Sp Wanneer je een oude shell gebruikt die geen \*(L"$()\*(R" opdracht vervanging ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent graves. .Sp .Vb 4 \& wcd () \& { \& cd "\`$HOME/bin/wcd.exe \-j $@\`" \& } .Ve .Sp Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias maken: .Sp .Vb 1 \& alias wcd \`cd %@execstr[wcdwin32.exe \-z 0 \-j %1]\` .Ve .Sp Deze methode elimineert de noodzaak voor het go-script, zodat men de optie \&\fB\-GN\fR in combinatie met \fB\-j\fR kan gebruiken. .IP "\fB\-k, \-\-keep\-paths\fR" 4 .IX Item "-k, --keep-paths" Bewaar paden. .Sp Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie wordt dit gedrag uitgeschakeld. .IP "\fB\-K, \-\-color\fR" 4 .IX Item "-K, --color" Gebruik kleuren in grafische modus. .IP "\fB\-l \s-1ALIAS\s0\fR" 4 .IX Item "-l ALIAS" Noem het huidige pad \fI\s-1ALIAS\s0\fR. Wcd plaatst het huidige pad met alias \&\fI\s-1ALIAS\s0\fR in het alias-bestand. Aliassen zijn hoofdlettergevoelig. .IP "\fB\-m \s-1MAP\s0\fR" 4 .IX Item "-m MAP" Maak map en voeg toe aan boomdata-bestand. .IP "\fB\-L, \-\-license\fR" 4 .IX Item "-L, --license" Print de distributie licentie. .IP "\fB\-M \s-1MAP\s0\fR" 4 .IX Item "-M MAP" Maak map en voeg toe aan extra boomdata-bestand. .IP "\fB\-n \s-1PAD\s0\fR" 4 .IX Item "-n PAD" Lees relatief boomdata-bestand vanaf \fI\s-1PAD\s0\fR. .Sp Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou al gemaakt moeten zijn met de wcd optie \fB+S\fR. \fI\s-1PAD\s0\fR mag ook direct naar een bestand wijzen. .Sp Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling \&\f(CW\*(C`/mnt/network\*(C'\fR: .Sp .Vb 1 \& wcd \-n /mnt/network src .Ve .Sp Wcd opent het relatieve boomdata-bestand in \f(CW\*(C`/mnt/network/\*(C'\fR. The bestand bevat de paden relatief vanaf dat punt. .IP "\fB+n \s-1PAD\s0\fR" 4 .IX Item "+n PAD" Lees relatief boomdata-bestand bovenop het standaard boomdata-bestand. Zie optie \fB\-n\fR. .IP "\fB\-N, \-\-numbers\fR" 4 .IX Item "-N, --numbers" Gebruik nummers in plaats van letters. .Sp Wcd met een conio of curses gebaseerde interface (zie paragraaf \s-1INTERFACE\s0) presenteert een trefferlijst standaard genummerd met letters. Wanneer de optie \fB\-N\fR is gebruikt wordt de trefferlijst genummerd met nummers. Onafhankelijk van de optie \fB\-N\fR kan men een letter of een nummer typen om een selectie uit de lijst te maken. .IP "\fB\-o\fR" 4 .IX Item "-o" Gebruik standaard invoer/uitvoer interface. .Sp Wanneer om een of andere reden de conio of curses interface van wcd niet werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd door het gebruik van de \fB\-o\fR optie. .IP "\fB\-od, \-\-to\-stdout\fR" 4 .IX Item "-od, --to-stdout" Dump alle treffers naar standaard uitvoer. .IP "\fB\-q, \-\-quiet\fR" 4 .IX Item "-q, --quiet" Stillere werking. Het printen van de uiteindelijke treffer wordt onderdrukt. .IP "\fB\-r \s-1MAP\s0\fR" 4 .IX Item "-r MAP" Verwijder map en verwijder uit boomdata-bestand. .Sp Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen uit het boomdata-bestand. .IP "\fB\-rmtree \s-1MAP\s0\fR" 4 .IX Item "-rmtree MAP" Recursief map verwijderen en verwijderen uit boomdata-bestand. .Sp Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert de mappen uit het boomdata-bestand. .IP "\fB\-s\fR" 4 .IX Item "-s" (her)scannen schijf vanaf \f(CW$HOME\fR map. Als \fI\s-1HOME\s0\fR niet gedefinieerd is, wordt de schijf gescant vanaf hoofdmap /. .Sp Het bestaande standaard boomdata-bestand is overschreven. .Sp De standaard scan map kan overstemd worden met omgevingsvariabele \&\f(CW\*(C`WCDSCAN\*(C'\fR. Zie sectie \s-1OMGEVINGSVARIABELEN.\s0 .IP "\fB\-S \s-1PAD\s0\fR" 4 .IX Item "-S PAD" Scan mappenboom vanaf \fI\s-1PAD\s0\fR en overschrijf het standaard boomdata-bestand. Zie ook opties \fB\-A\fR, \fB\-s\fR en \fB\-E\fR. B.v. met optie \fB\-A\fR kun je een standaard boomdata-bestand maken naar eigen smaak. Bijvoorbeeld: .Sp Unix: .Sp .Vb 2 \& wcd \-S / \& wcd \-S /home \-A /etc \-A /usr .Ve .Sp DOS/Windows: .Sp .Vb 2 \& wcd \-S c:/ \& wcd \-S c: \-A d: \-A \e\eserver\eshare .Ve .Sp Met de Windows versies kan men alle gedeelde mappen scannen van een Windows \&\s-1LAN\s0 server door iets een typen als: \f(CW\*(C`wcd \-S \e\eservernaam\*(C'\fR. .IP "\fB+S \s-1PAD\s0\fR" 4 .IX Item "+S PAD" Scan schijf vanaf \fI\s-1PAD\s0\fR en plaats relatieve paden in het relatieve boomdata-bestand. Dit bestand wordt gebruikt door de \fB\-n\fR en \fB+n\fR opties van wcd. B.v. \f(CW\*(C`wcd \-n PAD src\*(C'\fR. .IP "\fB\-t\fR" 4 .IX Item "-t" Verwijder niet tmp koppelmap \f(CW\*(C`/tmp_mnt\*(C'\fR (alleen Unix) .Sp Wcd verwijderd standaard \f(CW\*(C`/tmp_mnt/\*(C'\fR van de treffer. Map \f(CW\*(C`/tmp_mnt\*(C'\fR wordt gebruikt door de 'auto\-mounter'. Dit gedrag kan uitgeschakeld worden met de \&\fB\-t\fR optie. .IP "\fB\-T, \-\-ascii\-tree\fR" 4 .IX Item "-T, --ascii-tree" Teken boom met \s-1ASCII\s0 tekens. Gebruik deze opties als lijntekens niet goed getoond worden in de terminal. .IP "\fB\-Ta, \-\-alt\-tree\-nav\fR" 4 .IX Item "-Ta, --alt-tree-nav" Alternatieve manier van navigeren in de grafische boom. .Sp In de standaard \s-1NCD\s0 stijl opmaak zet de \fB\-Ta\fR optie het springen naar ongerelateerde mappen uit. .Sp In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de navigatie in \s-1GUI\s0 bestandsverkenners zoals de Windows Verkenner of Linux \s-1KDE\s0 Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende beweging naar links gaat echt naar links. .Sp U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door te drukken. .Sp Wanneer alternatieve navigatie aan staat, ziet u een \*(L"A\*(R" in de rechter onderhoek. .IP "\fB\-TC, \-\-center\-tree\fR" 4 .IX Item "-TC, --center-tree" Gecentreerde weergave in de grafische boom. De geselecteerde map blijft in het midden van het scherm. De gecentreerde modus kan ook aan\- en uitgeschakeld worden met de toets in de grafische boom. .Sp De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is gelijk aan hoe het in de originele \s-1NCD\s0 was. .IP "\fB\-Tc, \-\-compact\-tree\fR" 4 .IX Item "-Tc, --compact-tree" Standaard wordt de 'grafische' boom getekend op dezelfde manier zoals de originele \s-1NCD\s0 op \s-1DOS\s0 het deed. In \s-1DOS\s0 kon een pad in totaal slechts 66 tekens bevatten. Met de diepe mappenstructuur van vandaag kan de boom erg breed worden. Om dit te beheersen kan wcd de boom op een compacte manier tekenen, gelijk aan de meeste \s-1GUI\s0 mappenverkenners, met één map per regel. Gebruik optie \fB\-Tc\fR of schakel onmiddellijk met de toets. .IP "\fB\-Td, \-\-cjk\-width\fR" 4 .IX Item "-Td, --cjk-width" Oude Oost-Aziatische \s-1CJK \s0(Chinees, Japans, en Koreaans) fonts hebben bepaalde letters en lijnsymbolen met een kolombreedte van 2, terwijl de normale Unicode breedte voor deze tekens 1 kolom is. Bijvoorbeeld het Chinese \s-1CP936\s0 raster font op Windows en het Simsun font. Gebruik deze optie voor een juiste uitlijning van de grafische boom wanneer een oud \s-1CJK\s0 font gebruikt wordt. .Sp Wanneer \s-1CJK\s0 modus actief is, ziet u een \*(L"C\*(R" in de rechter onderhoek. .IP "\fB\-u \s-1GEBRUIKER\s0\fR" 4 .IX Item "-u GEBRUIKER" Scan boomdata-bestand van een andere gebruiker gebaseerd op \fI\s-1GEBRUIKER\s0\fR, scan niet het eigen boomdata-bestand. Zie ook paragraaf \s-1OMGEVINGSVARIABELEN\s0 voor \fI\s-1WCDUSERSHOME\s0\fR. .Sp Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor gebruikers \f(CW\*(C`/home\*(C'\fR is. Wcd zal zoeken naar \f(CW\*(C`/home/GEBRUIKER/.treedata.wcd\*(C'\fR en \f(CW\*(C`/home/GEBRUIKER/.wcd/.treedata.wcd\*(C'\fR, in deze volgorde, en de eerste lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de basismap voor de thuismap van gebruikers \f(CW\*(C`\e\eusers\*(C'\fR is, dus wcd probeert te lezen \f(CW\*(C`\e\eusers\eGEBRUIKER\etreedata.wcd\*(C'\fR en \&\f(CW\*(C`\e\eusers\eGEBRUIKER\e.wcd\etreedata.wcd\*(C'\fR. .IP "\fB+u \s-1GEBRUIKER\s0\fR" 4 .IX Item "+u GEBRUIKER" Lees het standaard boomdata-bestand van \s-1GEBRUIKER\s0 bovenop uw eigen boomdata-bestand. .IP "\fB\-v, \-\-verbose\fR" 4 .IX Item "-v, --verbose" Toon gedetailleerde berichten. Met deze optie toont wcd alle filters, verbannen mappen en uitsluitingen. .IP "\fB\-V, \-\-version\fR" 4 .IX Item "-V, --version" Programmaversie tonen en afsluiten. .IP "\fB\-w, \-\-wild\-match\-only\fR" 4 .IX Item "-w, --wild-match-only" Alleen jokervergelijkingen. Behandel alle treffers als jokertreffers. .IP "\fB\-x \s-1PAD\s0\fR" 4 .IX Item "-x PAD" \&\fI\s-1PAD\s0\fR uitsluiten van scannen. .Sp Wanneer deze optie gebruikt is zal wcd \fI\s-1PAD\s0\fR uitsluiten en al zijn sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden. Optie \fB\-x\fR kan meerder keren gebruikt worden. .Sp .Vb 1 \& wcd \-x \-x \-s .Ve .Sp Optie \fB\-x\fR moet vooraf gaan aan elke scan optie (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \&\fB\-A\fR, \fB\-E\fR). .Sp Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk van of omgevingsvariabele \fI\s-1HOME\s0\fR or \fI\s-1WCDHOME\s0\fR gedefinieerd is. Wanneer \&\fI\s-1HOME\s0\fR of \fI\s-1WCDHOME\s0\fR gedefinieerd is moet men de schijfletter specificeren. Een voorbeeld: .Sp .Vb 1 \& wcd \-x c:/temp \-S c: .Ve .Sp Specificeer anders geen schijfletter. .Sp .Vb 1 \& wcd \-x /temp \-s .Ve .IP "\fB\-xf \s-1BESTAND\s0\fR" 4 .IX Item "-xf BESTAND" Alle paden uit bestand \fI\s-1BESTAND\s0\fR uitsluiten van scannen. .Sp Wanneer deze optie gebruikt is zal wcd alle paden genoemd in \fI\s-1BESTAND\s0\fR uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, omdat het geldige tekens zijn in een mapnaam. Optie \fB\-xf\fR can meerdere keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix): .Sp .Vb 1 \& wcd \-xf ~/.ban.wcd \-s .Ve .Sp Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met administratieve bestanden uit te sluiten, voeg een regel toe met \f(CW\*(C`*/.svn\*(C'\fR. .Sp Optie \fB\-xf\fR moet vooraf gaan aan elke scan optie (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \&\fB\-A\fR, \fB\-E\fR). .IP "\fB\-y, \-\-assume\-yes\fR" 4 .IX Item "-y, --assume-yes" Op alle vragen Ja als antwoord aannemen. .Sp Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie met optie \fB\-rmtree\fR. Deze optie moet voorafgaand gebruikt worden aan opties die tot ja/nee vragen kunnen leiden. .IP "\fB\-z \s-1GETAL\s0\fR" 4 .IX Item "-z GETAL" Stel maximum stapelgrootte in op \s-1GETAL.\s0 .Sp De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke stapel optie (\fB\-\fR, \fB+\fR, \fB=\fR) gebruikt worden. Anders wordt de stapelgrootte teruggezet naar de standaard 10. .Sp Een correcte opdracht is: .Sp .Vb 1 \& wcd \-z 50 \- .Ve .Sp De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute opdracht is: .Sp .Vb 1 \& wcd \- \-z 50 .Ve .Sp Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. \fB\-z 50\fR wordt genegeerd. .Sp Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een \&\s-1POSIX\s0 compatibele shell zou dit zijn: .Sp .Vb 5 \& wcd () \& { \& wcd.exe \-z 50 "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .IP "\fB\-[\s-1GETAL\s0]\fR" 4 .IX Item "-[GETAL]" Map \s-1GETAL\s0 keer op stapel zetten. Standaard is een. .Sp Ga een map terug. Opdracht \f(CW\*(C`wcd \-\*(C'\fR gaat een map terug. Voeg een nummer toe om meer mappen terug te gaan. B.v. opdracht \f(CW\*(C`wcd \-3\*(C'\fR. De stapel is cyclisch. .IP "\fB+[\s-1GETAL\s0]\fR" 4 .IX Item "+[GETAL]" Map \s-1GETAL\s0 keer van stapel halen. Standaard is een. .Sp Ga een map vooruit. Opdracht \f(CW\*(C`wcd +\*(C'\fR gaat een map vooruit. Voeg een nummer toe om meerdere mappen vooruit te gaan. B.v. opdracht \f(CW\*(C`wcd +2\*(C'\fR. De stapel is cyclisch. .IP "\fB=\fR" 4 .IX Item "=" Stapel tonen. .Sp Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is gemarkeerd met een sterretje \f(CW\*(C`*\*(C'\fR. .SH "INSTALLATIE" .IX Header "INSTALLATIE" De huidige werkmap in een Unix shell kan alleen veranderd worden door de ingebouwde \fIcd\fR\|(1) opdracht. Daarom wordt het programma altijd aangeroepen door een functie of alias. De functie of alias leest een script (go-script) in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de functie of alias gedefinieerd is. .PP Een andere belangrijke invloed op uw installatie is de definitie van de omgevingsvariabelen \fI\s-1HOME\s0\fR en \fI\s-1WCDHOME\s0\fR. Zie paragraaf \&\s-1OMGEVINGSVARIABELEN.\s0 .SS "Installatie voor \s-1POSIX\s0 type shells" .IX Subsection "Installatie voor POSIX type shells" Voor een \s-1POSIX\s0 shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of \s-1MSYS,\s0 voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash gebruikt \f(CW\*(C`$HOME/.bashrc\*(C'\fR): .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .PP Vervang \fI\s-1PAD\s0\fR door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. .PP De locatie van het go-script \f(CW\*(C`wcd.go\*(C'\fR is anders per shell. .PP Wcd voor \s-1DJGPP DOS\s0 bash heeft een andere functie nodig. Het go-script wordt niet in map \f(CW\*(C`bin\*(C'\fR geschreven, en wanneer \fI\s-1WCDHOME\s0\fR en \fI\s-1HOME\s0\fR beide niet gedefinieerd zijn wordt het go-script geschreven in c:/. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME:\-"c:"}}/wcd.go \& } .Ve .PP De WinZsh versie van wcd is ook een beetje anders. Geen \f(CW\*(C`bin\*(C'\fR map. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/wcd.go \& } .Ve .PP Zie paragraaf \s-1BESTANDEN\s0 voor meer informatie. .SS "Installatie voor C\-achtige shells (csh, tcsh)" .IX Subsection "Installatie voor C-achtige shells (csh, tcsh)" Voeg de volgende alias toe aan het shell opstartbestand \f(CW\*(C`$HOME/.cshrc\*(C'\fR of \&\f(CW\*(C`$HOME/.tcshrc\*(C'\fR: .PP .Vb 5 \& if ( ${?WCDHOME} ) then \& alias wcd "/wcd.exe \e!* ; source $WCDHOME/bin/wcd.go" \& else \& alias wcd "/wcd.exe \e!* ; source $HOME/bin/wcd.go" \& endif .Ve .PP Vervang \fI\s-1PAD\s0\fR door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. .SS "Windows Opdrachtprompt versie" .IX Subsection "Windows Opdrachtprompt versie" Pak het zip-bestand uit en voeg map \f(CW\*(C`bin\*(C'\fR toe aan omgevingsvariabele \&\fI\s-1PATH\s0\fR. .PP In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap veranderen, maar een .bat bestand kan dat wel. Het batch script \f(CW\*(C`wcd.bat\*(C'\fR draait het wcd programma dat een nieuw batch script \f(CW\*(C`wcdgo.bat\*(C'\fR genereert. Daarna start \f(CW\*(C`wcd.bat\*(C'\fR \f(CW\*(C`wcdgo.bat\*(C'\fR die feitelijk de map verandert. .SS "Windows \s-1VISTA\s0 en hoger" .IX Subsection "Windows VISTA en hoger" In een Windows \s-1VISTA\s0 en hoger Opdrachtprompt kan men beperkte toegang hebben tot mappen. Om toegang tot meer mappen te verkrijgen heeft men beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te selecteren \fIAls Administrator uitvoeren\fR. .SS "Windows PowerShell versie" .IX Subsection "Windows PowerShell versie" Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie van dit profiel is opgeslagen in de \f(CW$profile\fR variabele. Het is vereist dat omgevingsvariabele \fI\s-1HOME\s0\fR of \fI\s-1WCDHOME\s0\fR gedefinieerd is. .PP .Vb 5 \& function wcd \& { \& \ewcdwin32psh.exe $args \& & $env:HOME\ewcdgo.ps1 \& } .Ve .PP Vervang \fI\s-1PAD\s0\fR met de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de bestandssysteem 'provider'. Geen andere 'providers'. .SS "\s-1OS/2\s0 Opdrachtprompt versie" .IX Subsection "OS/2 Opdrachtprompt versie" In een \s-1OS/2\s0 Opdrachtprompt (cmd.exe) kan een \s-1OS/2\s0 programma niet de huidige werkmap veranderen. Dat is waarom wcd een opdracht-script genereert \&\f(CW\*(C`wcdgo.cmd\*(C'\fR welke uitgevoerd moet worden in de huidige shell. Het script \&\f(CW\*(C`wcd.cmd\*(C'\fR voert eerst \f(CW\*(C`wcdos2.exe\*(C'\fR uit, die vervolgens het \f(CW\*(C`wcdgo.cmd\*(C'\fR script creëert. Daarna voert \f(CW\*(C`wcd.cmd\*(C'\fR het \f(CW\*(C`wcdgo.cmd\*(C'\fR script uit. .SH "LOKALISATIE" .IX Header "LOKALISATIE" .IP "\fB\s-1LANG\s0\fR" 4 .IX Item "LANG" The primaire taal wordt geselecteerd via de omgevingsvariabele \fI\s-1LANG\s0\fR. De variabele \fI\s-1LANG\s0\fR bestaat uit verschillende onderdelen. Het eerste deel is in kleine letters de taalcode. Het tweede deel is optioneel en is de landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook een optioneel derde deel: de tekencodering, voorafgegaan door een punt. Enkele voorbeelden voor een POSIX-shell: .Sp .Vb 6 \& export LANG=nl Nederlands \& export LANG=nl_NL Nederlands, Nederland \& export LANG=nl_BE Nederlands, België \& export LANG=es_ES Spaans, Spanje \& export LANG=es_MX Spaans, Mexico \& export LANG=en_US.iso88591 Engels, VS, Latin\-1 codering .Ve .Sp Voor een complete lijst van taal\- en landcodes zie de \fIgettext\fR\|(1) handleiding: Op Unix-systemen kunt u de opdracht \fIlocale\fR\|(1) gebruiken om specifieke taalregio-informatie te verkrijgen. .IP "\fB\s-1LANGUAGE\s0\fR" 4 .IX Item "LANGUAGE" Met de omgevingsvariabele \fI\s-1LANGUAGE\s0\fR kunt u een prioriteitenlijst specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft voorrang aan \fI\s-1LANGUAGE\s0\fR boven \fI\s-1LANG\s0\fR. Bijvoorbeeld, eerst Nederlands en dan Duits: \f(CW\*(C`LANGUAGE=nl:de\*(C'\fR. U moet eerst lokalisatie in werking stellen, door het instellen van \fI\s-1LANG\s0\fR of \fI\s-1LC_ALL\s0\fR op een waarde ongelijk aan \f(CW\*(C`C\*(C'\fR, voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele \&\fI\s-1LANGUAGE\s0\fR. Zie ook de \fIgettext\fR\|(1) handleiding: .Sp Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt. .IP "\fB\s-1WCDLOCALEDIR\s0\fR" 4 .IX Item "WCDLOCALEDIR" Met de omgevingsvariabele \fI\s-1WCDLOCALEDIR\s0\fR kan de \fI\s-1LOCALEDIR\s0\fR die ingesteld werd tijdens compilatie worden overstemd. \fI\s-1LOCALEDIR\s0\fR wordt gebruikt om de taalbestanden te vinden. De \s-1GNU\s0 standaardwaarde is \&\f(CW\*(C`/usr/local/share/locale\*(C'\fR. Door \f(CW\*(C`wcd \-V\*(C'\fR te typen zal wcd de gebruikte \&\fI\s-1LOCALEDIR\s0\fR laten zien. .Sp Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het nodig zijn om omgevingsvariabele \fI\s-1WCDLOCALEDIR\s0\fR te definiëren om te wijzen naar de locale map. .Sp Een voorbeeld voor Windows cmd: .Sp .Vb 1 \& set WCDLOCALEDIR=c:/my_prefix/share/locale .Ve .Sp Een voorbeeld voor een \s-1POSIX\s0 shell: .Sp .Vb 1 \& export WCDLOCALEDIR=$HOME/share/locale .Ve .IP "\fB\s-1LC_COLLATE\s0\fR" 4 .IX Item "LC_COLLATE" Wanneer er meerdere maptreffers zijn presenteert wcd een gesorteerde lijst. Het sorteren hangt af van de lokalisatie instellingen. Wanneer de omgevingsvariabele \fI\s-1LANG\s0\fR ingesteld is worden de treffers gesorteerd als in een woordenboek of telefoonboek in die taal. Bijvoorbeeld punten en streepjes worden genegeerd, of letters e met en zonder accent zijn gelijk, of sortering is ongevoelig voor hoofd en kleine letters. .Sp De sortering geeft prioriteit aan omgevingsvariabele \fI\s-1LC_COLLATE\s0\fR boven \&\fI\s-1LANG\s0\fR. Wanneer u \fI\s-1LC_COLLATE\s0\fR gelijk maakt aan \f(CW\*(C`C\*(C'\fR of \f(CW\*(C`POSIX\*(C'\fR, wordt sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal wilt, maar geen Nederlandse sortering, dan kunt u iets doen als: .Sp .Vb 2 \& export LANG=nl_NL \& export LC_COLLATE=C .Ve .IP "\fB\s-1LC_CTYPE\s0\fR" 4 .IX Item "LC_CTYPE" Met betrekking to tekencodering geeft Wcd prioriteit aan variabele \&\fI\s-1LC_CTYPE\s0\fR boven \fI\s-1LANG\s0\fR. Bijvoorbeeld om de tekencodering op \s-1UTF\-8\s0 te zetten kan de volgende omgevings-instelling gemaakt worden. .Sp .Vb 1 \& export LC_CTYPE=en_US.UTF\-8 .Ve .IP "\fB\s-1LC_ALL\s0\fR" 4 .IX Item "LC_ALL" Alle lokalisatie omgevingsvariabelen die beginnen met \fI\s-1LC\s0\fR worden overstemd de omgevingsvariabele \fI\s-1LC_ALL\s0\fR wanneer die ingesteld is. Wcd geeft prioriteit aan \fI\s-1LC_ALL\s0\fR boven \fI\s-1LC_COLLATE\s0\fR en \fI\s-1LC_CTYPE\s0\fR. .SS "\s-1WINDOWS CODETABELLEN\s0" .IX Subsection "WINDOWS CODETABELLEN" Er zijn twee groepen van codetabellen, \s-1DOS\s0 codetabellen (\s-1OEM\s0) en Windows codetabellen (\s-1ANSI\s0). De standaard codering voor Windows, wanneer geconfigureerd met westerse regionale instellingen, is \s-1ANSI CP1252.\s0 Windows programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem \s-1ANSI\s0 codetabel. De Windows Opdrachtprompt gebruikt standaard een \s-1OEM\s0 codetabel (\s-1CP437\s0 of \s-1CP850\s0) voor compatibeliteit met \s-1DOS\s0 programma's. Als u een \s-1DOS\s0 versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, vanwege de \s-1DOS\s0 codetabel. Maar de \s-1DOS\s0 versie van wcd ontbeert ondersteuning voor lange mapnamen en netwerkschijven op Windows. .PP De Windows versie van wcd is een echt Windows programma en zal de Windows systeem \s-1ANSI\s0 codetabel gebruiken. Dus op een Westers regionale Windows zal het de codetabel \s-1CP1252\s0 gebruiken voor directory namen en berichten. Om een consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde codetabel, vertalen alle Windows versies van wcd \s-1ANSI\s0 uitvoer naar Unicode uitvoer in de Opdrachtprompt en PowerShell. .PP Het Opdrachtprompt rastertypefont ondersteunt alleen de originele \s-1OEM\s0 codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar Lucida Console om Unicode (en \s-1ANSI\s0) tekens correct te laten verschijnen. .PP Niet-Unicode versies van Wcd \fIvoorafgaande aan versie 5.2.0\fR gebruiken gewone \s-1ANSI\s0 uitvoer. Voor deze oude versie moet de codetabel van de Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om wcd voor Windows goed te laten werken met speciale tekens zoals geaccentueerde tekens of een euroteken. .PP De Windows systeem codetabel kan veranderd worden via het Configuratiescherm Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt veranderd met de \f(CW\*(C`chcp\*(C'\fR opdracht. .PP Wanneer u \f(CW\*(C`wcd \-V\*(C'\fR typet, wordt de actuele tekencodering getoond die door wcd gebruikt wordt. Type opdracht \f(CW\*(C`chcp\*(C'\fR op de actieve codetabel van de Opdrachtprompt te tonen. .SS "\s-1UNICODE\s0" .IX Subsection "UNICODE" Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is met Unicode ondersteuning type \f(CW\*(C`wcd \-V\*(C'\fR. Als uw terminal en font het ondersteunen, zou u een euroteken en Chinese tekens (betekenis: \*(L"Chinees\*(R") moeten zien. .PP Wcd is \fIzacht\fR omgezet naar Unicode. In de kern behandelt wcd alle data als een stroom van bytes. Alleen de regels die op het scherm geprint worden, worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van libc functies en heeft geen \s-1UTF\-8\s0 specifieke broncode. Zie ook .PP Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type \&\f(CW\*(C`wcd \-V\*(C'\fR. Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode namen gebaseerd op \fIcompatibele\fR gelijkwaardigheid. Zonder Unicode normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. Zie ook .PP \fI\s-1UTF\-8\s0 op Unix/Linux\fR .IX Subsection "UTF-8 op Unix/Linux" .PP Om \s-1UTF\-8\s0 tekens te zien moet uw terminal ook \s-1UTF\-8\s0 ondersteunen. De xterm versie die meekomt met XFree86 4.0 of hoger bevat \s-1UTF\-8\s0 ondersteuning. Om het te activeren, start \fIxterm\fR\|(1) in een \s-1UTF\-8\s0 taalregio en gebruik een font met iso10646\-1 codering, bijvoorbeeld met .PP .Vb 1 \& LC_CTYPE=en_GB.UTF\-8 xterm \-u8 \-fn \*(Aq\-Misc\-Fixed\-Medium\-R\-SemiCondensed\-\-13\-120\-75\-75\-C\-60\-ISO10646\-1\*(Aq .Ve .PP Moderne uitgaves van GNU/Linux ondersteunen standaard \s-1UTF\-8.\s0 Andere multi-byte tekencoderingen zouden ook moeten werken, maar dat is niet getest. .PP Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-bestanden. .PP \fI\s-1UTF\-16\s0 op Windows\fR .IX Subsection "UTF-16 op Windows" .PP Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take Command of \s-1TCC/LE\s0 gemaakt door \s-1JP\s0 Software, dat gebruikt kan worden op oudere Windows versies (XP/Vista). .PP In Windows zijn alle mapnamen op schijf gecodeerd in \s-1UTF\-16\s0 Unicode. Voor niet-Unicode Windows programma's worden de tekens vertaald naar de standaard \&\s-1ANSI\s0 codetabel. Voor tekens die geen onderdeel zijn van de regionale instelling is de vertaling niet mogelijk en niet-Unicode programma's printen in plaats daarvan een vraagteken of een verkeerd teken. .PP Wcd met Unicode ondersteuning leest de \s-1UTF\-16\s0 gecodeerde mappennamen en zet ze intern om naar \s-1UTF\-8.\s0 Alle boomdata-bestanden zijn gecodeerd in \s-1UTF\-8\s0 en niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script aanmaken gecodeerd in \s-1UTF\-8.\s0 .PP Alle versies van Windows PowerShell zijn in staat om in \s-1UTF\-8\s0 gecodeerde scripts te draaien, indien het script is voorzien van een \s-1UTF\-8 BOM.\s0 .PP Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te veranderen met een batch script naar een map met Unicode tekens in de naam. De mapnaam moet gecodeerd zijn in \s-1UTF\-8,\s0 en het batch script moet \&\fIgeen\fR \s-1BOM\s0 bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op 65001 (\s-1UTF\-8\s0) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert zo'n go-script \f(CW\*(C`wcdgo.bat\*(C'\fR. Eerst verandert het de codetabel naar 65001, verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de originele waarde. .PP U moet het font instellen op True Type Lucida Console (niet raster type font) wanneer de letters niet correct verschijnen. .PP De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen sinds versie 5.2.0, indien er een Byte Order Mark (\s-1BOM\s0) in het bestand zit (zie ), maar kan niet veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn van de standaard systeem \s-1ANSI\s0 codetabel. De Unicode Windows versie van wcd schrijft een \s-1BOM\s0 in het \s-1UTF\-8\s0 gecodeerde boomdata-bestand sinds versie 5.2.0, wat ze ook leesbaar maakt voor kladblok. .PP \fI\s-1UTF\-8\s0 in Cygwin\fR .IX Subsection "UTF-8 in Cygwin" .PP Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor dat de Windows \s-1UTF\-16\s0 Unicode namen vertaald worden naar \s-1UTF\-8.\s0 Dus programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken gebruikmakend van \s-1UTF\-8\s0 codering als op Unix/Linux. Stel de tekencodering in op \s-1UTF\-8\s0 met de \fI\s-1LANG\s0\fR of \fI\s-1LC_CTYPE\s0\fR omgevingsvariabele. Het kan nodig zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen op True Type Lucida Console (niet raster type font) wanneer u de standaard Cygwin console gebruikt. .PP De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er wordt geen \s-1BOM\s0 geschreven in de boomdata-bestanden, en er wordt aangenomen dat ze gecodeerd zijn in de \fBCygwin\fR lokalisatie tekencodering. .SH "BESTANDEN" .IX Header "BESTANDEN" Wanneer omgevingsvariabele \fI\s-1WCDHOME\s0\fR ingesteld is zal wcd \fI\s-1WCDHOME\s0\fR gebruiken in plaats van \fI\s-1HOME\s0\fR. Alle \f(CW\*(C`*.wcd\*(C'\fR bestanden zijn tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows Opdrachtprompt versie gedraagt zich als de \s-1DOS\s0 versie. De Cygwin versie van wcd gedraagt zich als de Unix versie. .IP "\fBwcd.exe\fR" 4 .IX Item "wcd.exe" Het programma. In Unix shells wordt het programma altijd aangeroepen door een functie of alias, omdat de huidige werkmap alleen veranderd kan worden door de ingebouwde cd opdracht. Zie ook paragraaf \s-1INSTALLATIE.\s0 .IP "\fBstandaard boomdata-bestand\fR" 4 .IX Item "standaard boomdata-bestand" Dit is het standaard boomdata-bestand waarin wcd zoekt naar treffers. Wanneer het niet leesbaar is zal wcd een nieuwe aanmaken. .Sp .Vb 2 \& DOS: \etreedata.wcd of %HOME%\etreedata.wcd \& Unix: $HOME/.treedata.wcd .Ve .IP "\fBextra boomdata-bestand\fR" 4 .IX Item "extra boomdata-bestand" Een optioneel extra boomdata-bestand. Wanneer het bestaat en leesbaar is zal wcd ook in dit bestand proberen treffers te vinden. .Sp .Vb 2 \& DOS: \eextra.wcd of HOME%\eextra.wcd \& Unix: $HOME/.extra.wcd .Ve .IP "\fB ban-bestand\fR" 4 .IX Item " ban-bestand" In dit optionele bestand plaatst wcd de verbannen paden. Zie optie \&\fB\-b\fR. Jokertekens worden ondersteund. .Sp .Vb 2 \& DOS: \eban.wcd of %HOME%\eban.wcd \& Unix: $HOME/.ban.wcd .Ve .IP "\fBalias-bestand\fR" 4 .IX Item "alias-bestand" Optioneel bestand met wcd aliassen. Zie optie \fB\-I\fR. .Sp .Vb 2 \& DOS: \ealias.wcd of %HOME%\ealias.wcd \& Unix: $HOME/.alias.wcd .Ve .IP "\fBstapel-bestand\fR" 4 .IX Item "stapel-bestand" In dit bestand slaat wcd zijn stapel op. De schijfletter kan veranderd worden met de \fB\-d\fR optie. .Sp .Vb 2 \& DOS: c:\estack.wcd of %HOME%\estack.wcd \& Unix: $HOME/.stack.wcd .Ve .Sp De naam van het stapelbestand kan veranderd worden met omgevingsvariabele \&\fI\s-1WCDSTACKFILE\s0\fR. Zie paragraaf \s-1OMGEVINGSVARIABELEN.\s0 .IP "\fBgo-script\fR" 4 .IX Item "go-script" Dit is het shell-script dat wcd elke keer creëert. Het wordt ingelezen via een functie of een alias. De schijfletter kan gewijzigd worden met de \fB\-d\fR optie. Wegens voorgeschiedenis redenen wordt het standaard geplaatst in \&\f(CW\*(C`$HOME/bin\*(C'\fR op Unix systemen. De map van dit bestand kan gewijzigd worden met de optie \fB\-G\fR. .Sp .Vb 7 \& DOS bash: c:/wcd.go of $HOME/wcd.go \& Windows Command Prompt: c:\ewcdgo.bat of %HOME%\ewcdgo.bat \& Windows PowerShell: $env:HOME\ewcdgo.ps1 \& WinZsh: $HOME/wcd.go \& Cygwin/MSYS: $HOME/bin/wcd.go \& OS/2 Opdrachtprompt: c:\ewcdgo.cmd of %HOME%\ewcdgo.cmd \& Unix: $HOME/bin/wcd.go .Ve .IP "\fBrelatieve boomdata-bestand\fR" 4 .IX Item "relatieve boomdata-bestand" Tekstbestand met relatieve paden vanaf \fI\s-1MAP\s0\fR. Zie opties \fB+S\fR, \fB\-n\fR en \&\fB+n\fR. .Sp .Vb 2 \& DOS: \ertdata.wcd \& Unix: /.rtdata.wcd .Ve .SH "OMGEVINGSVARIABELEN" .IX Header "OMGEVINGSVARIABELEN" .IP "\fB\s-1HOME\s0\fR" 4 .IX Item "HOME" Wcd gebruikt standaard omgevingsvariabele \fI\s-1HOME\s0\fR om te bepalen waar z'n bestanden op te slaan. Zie ook paragraaf \s-1BESTANDEN.\s0 Dit kan overstemd worden met omgevingsvariabele \fI\s-1WCDHOME\s0\fR. .Sp \&\fI\s-1HOME\s0\fR bepaalt ook waar te beginnen met het scannen van de schijf wanneer optie \fB\-s\fR gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele \&\fI\s-1WCDSCAN\s0\fR. .Sp Voor de Unix, Cygwin, Windows PowerShell, WinZsh en \s-1MSYS\s0 versie is het vereist dat \fI\s-1HOME\s0\fR of \fI\s-1WCDHOME\s0\fR ingesteld is. Voor de andere versies van wcd is het gebruik van deze variabelen optioneel. .Sp Wanneer \fI\s-1HOME\s0\fR ingesteld is op DOS/Windows, zal wcd al zijn bestanden (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map \fI\s-1HOME\s0\fR plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd zal de schijf standaard scannen vanaf \fI\s-1HOME\s0\fR. Schijven worden niet automatisch gescant door er naar te veranderen. Dat moet wcd expliciet opgedragen worden. B.v.: .Sp .Vb 1 \& wcd \-S c: \-A d: \-A e: .Ve .Sp Vergelijken van mappen is nu globaal over alle gescande schijven. .IP "\fB\s-1WCDHOME\s0\fR" 4 .IX Item "WCDHOME" Omgevingsvariabele \fI\s-1WCDHOME\s0\fR kan gebruikt worden om de locatie van wcds bestanden te wijzigen. Wanneer zowel \fI\s-1HOME\s0\fR als \fI\s-1WCDHOME\s0\fR ingesteld zijn, zal \fI\s-1WCDHOME\s0\fR gebruikt worden in plaats van \fI\s-1HOME\s0\fR. .Sp In wcd versies voorafgaand aan 5.1.5 veranderde \fI\s-1WCDHOME\s0\fR ook de standaard scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert \fI\s-1WCDHOME\s0\fR niet de standaard scan-map. Zie optie \fB\-s\fR. Gebruik vanaf versie 5.1.5 omgevingsvariabele \fI\s-1WCDSCAN\s0\fR om de standaard scan-map te overstemmen. .Sp Voorbeeld voor \s-1DOS,\s0 Windows, \s-1OS/2\s0 Opdrachtprompt: .Sp .Vb 1 \& set WCDHOME=C:\eUsers\eerwin\ewcd .Ve .Sp Een voorbeeld voor \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDHOME="$HOME/.wcd" .Ve .Sp Een voorbeeld voor Csh type shells: .Sp .Vb 1 \& setenv WCDHOME "$HOME/.wcd" .Ve .IP "\fB\s-1WCDSCAN\s0\fR" 4 .IX Item "WCDSCAN" Gebruik omgevingsvariabele \fI\s-1WCDSCAN\s0\fR om de standaard scan-map \fI\s-1HOME\s0\fR te overstemmen. Gebruik een door dubbele punten gescheiden lijst (Unix) om meer dan een map te definiëren. Gebruik op DOS/Windows een lijst gescheiden door puntkomma's. .Sp Voorbeelden voor \s-1DOS,\s0 Windows, \s-1OS/2\s0 Opdrachtprompt: .Sp .Vb 1 \& set WCDSCAN=C:\eUsers\eerwin;D:\edata \& \& set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\e\eprojectdrive\eprojectX .Ve .Sp Een voorbeeld voor \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDSCAN="$HOME:/projectdisk/projectX" .Ve .Sp Een voorbeeld voor Csh type shells: .Sp .Vb 1 \& setenv WCDSCAN "$HOME:/projectdisk/projectX" .Ve .IP "\fB\s-1WCDFILTER\s0\fR" 4 .IX Item "WCDFILTER" Specificeer filters met omgevingsvariabele \fI\s-1WCDFILTER\s0\fR. Alle mappen die niet treffen met het filter worden genegeerd. Een lijst kan gespecificeerd worden met het shell pad scheidingsteken. Gelijk aan het specificeren van de \&\fI\s-1PATH\s0\fR variabele. Hoofdlettergevoeligheid wordt bepaald door het besturingssysteem. .Sp Een voorbeeld voor \s-1DOS,\s0 Windows, \s-1OS/2\s0 Opdrachtprompt: .Sp .Vb 1 \& set WCDFILTER=projects;doc .Ve .Sp Een voorbeeld voor \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDFILTER="projects:doc" .Ve .Sp Een voorbeeld voor Csh type shells: .Sp .Vb 1 \& setenv WCDFILTER "projects:doc" .Ve .IP "\fB\s-1WCDBAN\s0\fR" 4 .IX Item "WCDBAN" De paden gespecificeerd met omgevingsvariabele \fI\s-1WCDBAN\s0\fR worden verbannen door wcd. Zie ook optie \fB\-b\fR. Specificeer een lijst van paden met het shell \&\fI\s-1PATH\s0\fR scheidingsteken. .IP "\fB\s-1WCDEXCLUDE\s0\fR" 4 .IX Item "WCDEXCLUDE" De paden gespecificeerd met omgevingsvariabele \fI\s-1WCDEXCLUDE\s0\fR worden uitgesloten door wcd. Zie ook opties \fB\-x\fR en \fB\-xf\fR. Specificeer een lijst van paden met het shell \fI\s-1PATH\s0\fR scheidingsteken. .Sp Een voorbeeld voor \s-1DOS,\s0 Windows, \s-1OS/2\s0 Opdrachtprompt: .Sp .Vb 1 \& set WCDEXCLUDE=*/windows;*/temp;*CVS .Ve .Sp Een voorbeeld voor \s-1POSIX\s0 type shells: .Sp .Vb 1 \& export WCDEXCLUDE="/dev:/tmp:*CVS" .Ve .Sp Een voorbeeld voor Csh type shells: .Sp .Vb 1 \& setenv WCDEXCLUDE "/dev:/tmp:*CVS" .Ve .IP "\fB\s-1WCDUSERSHOME\s0\fR" 4 .IX Item "WCDUSERSHOME" Stel de basis in de de thuismappen van de gebruikers. Op DOS/Windows is de standaard waarde \f(CW\*(C`\e\eusers\*(C'\fR. Op Unix/Cygwin is de standaard waarde \&\f(CW\*(C`/home\*(C'\fR. Deze variabele wordt gebruikt om boomdata-bestanden van andere gebruikers te scannen. Zie ook opties \fB\-u\fR en \fB+u\fR. In gedetailleerde uitvoer-modus zal wcd alle filters, verbanningen en uitsluitingen tonen. Zie ook optie \fB\-v\fR. .IP "\fB\s-1WCDSTACKFILE\s0\fR" 4 .IX Item "WCDSTACKFILE" Wcd geeft prioriteit aan \fI\s-1WCDSTACKFILE\s0\fR boven de standaard stapelbestandsnaam (zie paragraaf \s-1BESTANDEN\s0). Met deze variabele kan elke shell (of terminal) zijn eigen privé stapel voor mappen hebben. .Sp Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende interactieve shell te gebruiken. .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d\-%H%M%S) .Ve .Sp Voor een stapel per \fIxterm\fR\|(1), gebruik de xterm omgevingsvariabele \&\fI\s-1WINDOWID\s0\fR: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID .Ve .Sp Voor \s-1GNU\s0 \fIscreen\fR\|(1), gebruik een stapel per scherm: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW .Ve .IP "\fB\s-1TERMINFO\s0\fR" 4 .IX Item "TERMINFO" Wanneer omgevingsvariabele \fI\s-1TERMINFO\s0\fR ingesteld is, controleert wcd met ncurses interface of er lokale terminal definities zijn voor op de standaard plek te kijken. Dit is nuttig wanneer terminal definities niet op een standaard plaats staan. Veel gebruikte standaard plaatsen zijn \&\f(CW\*(C`/usr/lib/terminfo\*(C'\fR en \f(CW\*(C`/usr/share/terminfo\*(C'\fR. .IP "\fB\s-1PDC_RESTORE_SCREEN\s0\fR" 4 .IX Item "PDC_RESTORE_SCREEN" Wcd met PDCurses interface herkent de omgevingsvariabele \&\fI\s-1PDC_RESTORE_SCREEN\s0\fR. Wanneer deze omgevingsvariabele ingesteld is, zal PDCurses een kopie maken van de inhoud van het scherm op het moment dat wcd gestart is. Wanneer wcd afsluit zal het scherm hersteld worden. Een voorbeeld voor Windows Opdrachtprompt: .Sp .Vb 1 \& set PDC_RESTORE_SCREEN=1 .Ve .Sp Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd mogelijk om alles te herstellen. Er kan wat rommel in de console geprint worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld. .IP "\fB\s-1SHELL\s0\fR" 4 .IX Item "SHELL" Het printen van \f(CW\*(C`#!$SHELL\*(C'\fR op de de eerste regel van het go-script voor \&\s-1POSIX\s0 type shell of C shell is nodig voor 8 bit tekens. Sommige shells denken anders dat het go-script een binair bestand is en willen het niet inlezen. In Cygwin Bash moet de variabele \fI\s-1SHELL\s0\fR ingesteld zijn met de \&\f(CW\*(C`export\*(C'\fR opdracht, anders kan wcd de variabele niet lezen. .IP "\fB\s-1BASH\s0\fR" 4 .IX Item "BASH" Wcd voor \s-1DOS\s0 bash gebruikt \f(CW$BASH\fR in plaats van \f(CW$SHELL\fR, omdat \f(CW$SHELL\fR verwijst naar de \s-1DOS\s0 Opdrachtprompt. Het kan nodig zijn dat men \f(CW$BASH\fR met een \f(CW\*(C`export\*(C'\fR opdracht moet definiëren, anders kan wcd de variabele niet lezen. .SH "ZIE OOK" .IX Header "ZIE OOK" \&\fIsh\fR\|(1), \fIbash\fR\|(1), \fIcsh\fR\|(1), \fIksh\fR\|(1), \fIzsh\fR\|(1), \fIlocale\fR\|(1), \fIncurses\fR\|(1), .SH "AUTEURS" .IX Header "AUTEURS" Wcd is geschreven door Erwin Waterlander .PP Project beginpagina .PP SourceForge: .PP Freecode: .PP De opmaak van de handleiding was verzorgd door Jari Aalto . .PP \&\s-1NCD\s0 was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's \&\*(L"Norton Utilities\*(R" omstreeks 1987. Zie ook wcd-5.2.5/src/man/nl/man1/wcd.pod0000664000175000017500000013314312345660656016630 0ustar waterlanwaterlan ***************************************************** * GENERATED FILE, DO NOT EDIT * * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * ***************************************************** This file was generated by po4a(7). Do not store it (in VCS, for example), but store the PO file used as source file by po4a-translate. In fact, consider this as a binary, and the PO file as a regular .c file: If the PO get lost, keeping this translation up-to-date will be harder. =pod =encoding UTF-8 =head1 NAAM wcd - Wherever Change Directory chdir voor DOS en Unix =head1 OVERZICHT wcd [opties] [map] =head1 BESCHRIJVING =head2 Overzicht Wcd is een commandoregel programma om snel van map te veranderen. Het bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt ook een schermvullende interactieve boomweergave met snelzoek functie. Wcd is gemodelleerd naar Norton Change Directory (NCD). NCD verscheen voor het eerst in I, for DOS in 1987, gepubliceerd door Peter Norton. Wcd is geschikt gemaakt voor verschillende commandoregel shells: DOS command.com, Windows cmd.exe en PowerShell, OS/2 cmd.exe, en Unix shells zoals Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en anderen draaiend op elk besturingssysteem. Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel ondersteuning voor Unicode. Zie paragraaf LOKALISTIE. Zie paragraaf INSTALLATIE hoe wcd voor persoonlijk gebruik in te stellen. =head2 Basisgebruik Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met een naam die begint met de naam die getypt is. Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map C: wcd Desk Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen (meestal een). =head2 Jokertekens Wcd ondersteunt de volgende jokertekens: * treft een willekeurige reeks van tekens (nul of meer) ? treft een willekeurig teken [SET] treft willekeurige tekens in de gespecificeerde set, [!SET] of [^SET] treft willekeurige tekens niet in de gespecificeerde set. Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als I zoals in C<0-9> of C. C<[0-9a-zA-Z_]> is de minimale set van tekens toegestaan in de C<[..]> patroon samenstelling. Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem ze ondersteunt. Om de speciale syntactische betekenis van elke van C<[]*?!^-\>binnen of buiten een C<[..]> samenstelling te onderdrukken en exact gelijke te treffen, laat het teken vooraf gaan door een backslash (C<\>) teken. Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. Bijvoorbeeld dit treft elke mapnaam die eindigt op "top". wcd *top Tref mappen die ergens "top" in de naam heeft: wcd *top* Tref elke map die die begint met "a", "b" or "c": wcd [a-c]* Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar een map die begint met "Desk" en wiens pad overeenkomt met I<*me/Desk*>. wcd me/Desk Het is toegestaan om elke expressie met schuine strepen en jokertekens te typen. B.v.: wcd src*/*1?/a*2 =head2 Overig gebruik Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd worden met de B<-w> optie. De interactieve mappen-verkenner kan met de optie B<-g> gestart worden. wcd -g Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen van een netwerk. Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B.v.: wcd .. Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan veranderen, probeert hij deze te verwijderen uit het standaard boomdata-bestand. Niet uit het extra boomdata-bestand. Zie ook optie B<-k>. Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel heeft een standaard grootte van 10 en is cyclisch. Zie opties B<-z>, B<->, B<+> en B<=>. In een omgeving met meerdere gebruikers kan optie B<-u> gebruikt worden om naar mappen van andere gebruikers te veranderen. Op DOS en Windows systemen maakt het niet uit of een slash "/" of een backslash "\" als mappen-scheidingsteken gebruikt wordt. Het is mogelijk op DOS en Windows systemen om tegelijk van schijf en map te veranderen door de mapnaam vooraf te laten gaan door de schijf naam. wcd d:games =head2 Windows UNC paden De Windows versies (Opdrachtprompt, PowerShell, MSYS, zsh, Cygwin) ondersteunen Windows SMB LAN UNC paden zonder schijfletter, zoals C<\\servername\sharename>. Wcd voor de Opdrachtprompt maakt gebruik van het "pushd" commando om automatisch een UNC pad toe te wijzen aan een schijfletter. In Windows PowerShell, MSYS, zsh en Cygwin worden UNC paden volledig ondersteund. De huidige werkmap kan een UNC pad zijn. =head2 Interfaces Wcd heeft drie verschillende interface om uit een lijst van treffers te kiezen. De interface kan gekozen worden bij het bouwen van Wcd. De eerste interface gebruikt standaard in- en uitvoer. Een genummerde lijst wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een nummber te typen gevolgd door . Deze interface biedt geen terug-blader functionaliteit bij een lange lijst. De terug-blader functionaliteit van de terminal/console moet gebruikt worden. Deze interface is heel klein en overdraagbaar. De tweede interface is gebouwd met de conio bibliotheek. Het biedt een ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een enkele toetsaanslag van een letter. Deze interface is snel, omdat het toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na afsluiten. Iemand die prefereert nummers te typen kan de B<-N> optie gebruiken. De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan de conio interface. De curses versie van wcd heeft een extra 'grafische' interface. Het laat de gebruiker een map kiezen via een vol-scherm interactieve mappenboom verkenner. Het heeft vim(1) gelijke navigatie en zoek methodes. Het kan geactiveerd worden met de optie B<-g>. Door de B<-o> optie te gebruiken kan men altijd terugvallen op de standaard in- en uitvoer interface. =head1 OPTIES =over 4 =item B<-a> Voeg huidig pad to aan het standaard boomdata-bestand. Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang duren. =item B<-aa> Voeg het huidige en alle bovenliggende paden toe aan het standaard boomdata-bestand. =item B<-A PAD> Scan mappenboom vanaf I en voeg toe aan het standaard boomdata-bestand. Voorbeelden: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share Op Windows kan men alle gedeelde mappen van een Windows LAN server scannen door iets te typen als: C. Zie ook opties B<-S> en B<-s> en B<-E>. =item B<-b> Verban het huidige pad. Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle treffers van deze map en zijn sub-mappen negeert. Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van jokertekens wordt ondersteund en namen worden vergeleken met het volledige pad. Verbannen paden worden niet uitgesloten van het scannen van de schijf. Gebruik optie B<-xf> om dat te doen. =item B<-c, --direct-cd> Directe CD modus. Standaard werkt wcd als volgt: 1. Probeer een treffer te vinden in een boomdata-bestand. 2. Wanneer geen treffer, probeer het getypte pad te openen. In directe CD modus werkt wcd in omgekeerde volgorde. 1. Probeer het getypte pad te openen. 2. Indien niet gelukt, probeer een treffer te vinden in een boomdata-bestand. =item B<-d SCHIJF> Stel schijf in voor stapel- en go-script (alleen DOS). Het stapelbestand en go-script worden standaard opgeslagen op schijf C: wanneer omgevingsvariabele I niet ingesteld is. Gebruik deze optie wanneer SCHIJF een alleen-lezen schijf is. Deze optie moet gebruikt worden vooraf aan stapel opties B<->, B<+> en B<=>. =item B<-e> Voeg huidig pad toe aan het extra boomdata-bestand. Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-bestand. =item B<-ee> Voeg het huidige en alle bovenliggende paden toe aan het extra boomdata-bestand. =item B<-E PAD> Scan mappenboom vanaf I en voeg het toe aan het Extra boomdata-bestand.Zie ook opties B<-A> en B<-S>. =item B<-f BESTAND> Lees boomdata-bestand I. Lees niet het standaard boomdata-bestand. =item B<+f BESTAND> Lees boomdata-bestand I bovenop het standaard boomdata-bestand. =item B<-g> Grafische interface (alleen in versie met curses interface). Wcd start een tekstuele curses gebaseerde 'grafische' interface. De gebruiker kan een map selecteren via een vol-scherm interactieve mappenverkenner. Het heeft een vim(1) achtige navigatie en zoek methode. Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het standaard en het extra boomdata-bestand staat. Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als een mappenboom De standaard boom opmaak is gelijk aan de boomopmaak van de originele NCD op DOS. Het verschil in opmaak is dat in NCD alle mappen van dezelfde diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk in NCD, omdat de maximale breedte van een mapnaam in DOS 12 (8.3) tekens was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de ander sub-tak. Het navigatie gedrag in wcd is exact hetzelfde als in de originele NCD. Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie door de boom mogelijk. Zie opties B<-Ta>, B<-TC>, en B<-TC> om het navigatiegedrag te veranderen. =item B<-gd> Dump de boomdatabestanden als een boom naar standaard uitvoer. =item B<-G PAD> Schrijf go-script in map I. Bijvoorbeeld op Unix, C zal een go-script schrijven in B. =item B<-GN, --no-go-script> Maak geen go-script aan. Deze optie kan gebruikt worden in combinatie met de optie B<-j> wanneer men wil dat wcd geen go-script aanmaakt. =item B<-h, --help> Toon helptext en sluit af. =item B<-i, --ignore-case> Hoofdletterongevoelig. DOS en Windows versies van wcd zijn standaard hoofdletterongevoelig. Unix/Cygwin versies zijn standaard hoofdlettergevoelig. =item B<+i, --no-ignore-case> Hoofdlettergevoelig. Zie ook optie B<-i>. =item B<-I, --ignore-diacritics> Ongevoelig voor diakritische tekens voor Latijnse geschriften. Letters met een diakritisch teken treffen hun basisletter zonder diakritisch teken. De volgende Latijnse coderingen worden ondersteund: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, en Unicode Latin-1, Latin Extended-A, en Latin Extended-B. Zie ook L =item B<+I, --no-ignore-diacritics> Gevoelig voor diakritische tekens (standaard). Zie ook optie B<-I>. =item B<-j, --just-go> Ga-nou-maar modus. In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen naar de volgende optie, en zo verder. Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere installatie methode gebruikt worden. Men zou de volgende functie kunnen maken voor een POSIX compatibele shell: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Wanneer je een oude shell gebruikt die geen "$()" opdracht vervanging ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent graves. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias maken: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Deze methode elimineert de noodzaak voor het go-script, zodat men de optie B<-GN> in combinatie met B<-j> kan gebruiken. =item B<-k, --keep-paths> Bewaar paden. Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie wordt dit gedrag uitgeschakeld. =item B<-K, --color> Gebruik kleuren in grafische modus. =item B<-l ALIAS> Noem het huidige pad I. Wcd plaatst het huidige pad met alias I in het alias-bestand. Aliassen zijn hoofdlettergevoelig. =item B<-m MAP> Maak map en voeg toe aan boomdata-bestand. =item B<-L, --license> Print de distributie licentie. =item B<-M MAP> Maak map en voeg toe aan extra boomdata-bestand. =item B<-n PAD> Lees relatief boomdata-bestand vanaf I. Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou al gemaakt moeten zijn met de wcd optie B<+S>. I mag ook direct naar een bestand wijzen. Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling C: wcd -n /mnt/network src Wcd opent het relatieve boomdata-bestand in C. The bestand bevat de paden relatief vanaf dat punt. =item B<+n PAD> Lees relatief boomdata-bestand bovenop het standaard boomdata-bestand. Zie optie B<-n>. =item B<-N, --numbers> Gebruik nummers in plaats van letters. Wcd met een conio of curses gebaseerde interface (zie paragraaf INTERFACE) presenteert een trefferlijst standaard genummerd met letters. Wanneer de optie B<-N> is gebruikt wordt de trefferlijst genummerd met nummers. Onafhankelijk van de optie B<-N> kan men een letter of een nummer typen om een selectie uit de lijst te maken. =item B<-o> Gebruik standaard invoer/uitvoer interface. Wanneer om een of andere reden de conio of curses interface van wcd niet werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd door het gebruik van de B<-o> optie. =item B<-od, --to-stdout> Dump alle treffers naar standaard uitvoer. =item B<-q, --quiet> Stillere werking. Het printen van de uiteindelijke treffer wordt onderdrukt. =item B<-r MAP> Verwijder map en verwijder uit boomdata-bestand. Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen uit het boomdata-bestand. =item B<-rmtree MAP> Recursief map verwijderen en verwijderen uit boomdata-bestand. Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert de mappen uit het boomdata-bestand. =item B<-s> (her)scannen schijf vanaf C<$HOME> map. Als I niet gedefinieerd is, wordt de schijf gescant vanaf hoofdmap /. Het bestaande standaard boomdata-bestand is overschreven. De standaard scan map kan overstemd worden met omgevingsvariabele C. Zie sectie OMGEVINGSVARIABELEN. =item B<-S PAD> Scan mappenboom vanaf I en overschrijf het standaard boomdata-bestand. Zie ook opties B<-A>, B<-s> en B<-E>. B.v. met optie B<-A> kun je een standaard boomdata-bestand maken naar eigen smaak. Bijvoorbeeld: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share Met de Windows versies kan men alle gedeelde mappen scannen van een Windows LAN server door iets een typen als: C. =item B<+S PAD> Scan schijf vanaf I en plaats relatieve paden in het relatieve boomdata-bestand. Dit bestand wordt gebruikt door de B<-n> en B<+n> opties van wcd. B.v. C. =item B<-t> Verwijder niet tmp koppelmap C (alleen Unix) Wcd verwijderd standaard C van de treffer. Map C wordt gebruikt door de 'auto-mounter'. Dit gedrag kan uitgeschakeld worden met de B<-t> optie. =item B<-T, --ascii-tree> Teken boom met ASCII tekens. Gebruik deze opties als lijntekens niet goed getoond worden in de terminal. =item B<-Ta, --alt-tree-nav> Alternatieve manier van navigeren in de grafische boom. In de standaard NCD stijl opmaak zet de B<-Ta> optie het springen naar ongerelateerde mappen uit. In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de navigatie in GUI bestandsverkenners zoals de Windows Verkenner of Linux KDE Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende beweging naar links gaat echt naar links. U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door te drukken. Wanneer alternatieve navigatie aan staat, ziet u een "A" in de rechter onderhoek. =item B<-TC, --center-tree> Gecentreerde weergave in de grafische boom. De geselecteerde map blijft in het midden van het scherm. De gecentreerde modus kan ook aan- en uitgeschakeld worden met de toets in de grafische boom. De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is gelijk aan hoe het in de originele NCD was. =item B<-Tc, --compact-tree> Standaard wordt de 'grafische' boom getekend op dezelfde manier zoals de originele NCD op DOS het deed. In DOS kon een pad in totaal slechts 66 tekens bevatten. Met de diepe mappenstructuur van vandaag kan de boom erg breed worden. Om dit te beheersen kan wcd de boom op een compacte manier tekenen, gelijk aan de meeste GUI mappenverkenners, met één map per regel. Gebruik optie B<-Tc> of schakel onmiddellijk met de toets. =item B<-Td, --cjk-width> Oude Oost-Aziatische CJK (Chinees, Japans, en Koreaans) fonts hebben bepaalde letters en lijnsymbolen met een kolombreedte van 2, terwijl de normale Unicode breedte voor deze tekens 1 kolom is. Bijvoorbeeld het Chinese CP936 raster font op Windows en het Simsun font. Gebruik deze optie voor een juiste uitlijning van de grafische boom wanneer een oud CJK font gebruikt wordt. Wanneer CJK modus actief is, ziet u een "C" in de rechter onderhoek. =item B<-u GEBRUIKER> Scan boomdata-bestand van een andere gebruiker gebaseerd op I, scan niet het eigen boomdata-bestand. Zie ook paragraaf OMGEVINGSVARIABELEN voor I. Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor gebruikers C is. Wcd zal zoeken naar C en C, in deze volgorde, en de eerste lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de basismap voor de thuismap van gebruikers C<\\users> is, dus wcd probeert te lezen C<\\users\GEBRUIKER\treedata.wcd> en C<\\users\GEBRUIKER\.wcd\treedata.wcd>. =item B<+u GEBRUIKER> Lees het standaard boomdata-bestand van GEBRUIKER bovenop uw eigen boomdata-bestand. =item B<-v, --verbose> Toon gedetailleerde berichten. Met deze optie toont wcd alle filters, verbannen mappen en uitsluitingen. =item B<-V, --version> Programmaversie tonen en afsluiten. =item B<-w, --wild-match-only> Alleen jokervergelijkingen. Behandel alle treffers als jokertreffers. =item B<-x PAD> I uitsluiten van scannen. Wanneer deze optie gebruikt is zal wcd I uitsluiten en al zijn sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden. Optie B<-x> kan meerder keren gebruikt worden. wcd -x -x -s Optie B<-x> moet vooraf gaan aan elke scan optie (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk van of omgevingsvariabele I or I gedefinieerd is. Wanneer I of I gedefinieerd is moet men de schijfletter specificeren. Een voorbeeld: wcd -x c:/temp -S c: Specificeer anders geen schijfletter. wcd -x /temp -s =item B<-xf BESTAND> Alle paden uit bestand I uitsluiten van scannen. Wanneer deze optie gebruikt is zal wcd alle paden genoemd in I uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, omdat het geldige tekens zijn in een mapnaam. Optie B<-xf> can meerdere keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix): wcd -xf ~/.ban.wcd -s Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met administratieve bestanden uit te sluiten, voeg een regel toe met C<*/.svn>. Optie B<-xf> moet vooraf gaan aan elke scan optie (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). =item B<-y, --assume-yes> Op alle vragen Ja als antwoord aannemen. Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie met optie B<-rmtree>. Deze optie moet voorafgaand gebruikt worden aan opties die tot ja/nee vragen kunnen leiden. =item B<-z GETAL> Stel maximum stapelgrootte in op GETAL. De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke stapel optie (B<->, B<+>, B<=>) gebruikt worden. Anders wordt de stapelgrootte teruggezet naar de standaard 10. Een correcte opdracht is: wcd -z 50 - De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute opdracht is: wcd - -z 50 Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. B<-z 50> wordt genegeerd. Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een POSIX compatibele shell zou dit zijn: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } =item B<-[GETAL]> Map GETAL keer op stapel zetten. Standaard is een. Ga een map terug. Opdracht C gaat een map terug. Voeg een nummer toe om meer mappen terug te gaan. B.v. opdracht C. De stapel is cyclisch. =item B<+[GETAL]> Map GETAL keer van stapel halen. Standaard is een. Ga een map vooruit. Opdracht C gaat een map vooruit. Voeg een nummer toe om meerdere mappen vooruit te gaan. B.v. opdracht C. De stapel is cyclisch. =item B<=> Stapel tonen. Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is gemarkeerd met een sterretje C<*>. =back =head1 INSTALLATIE De huidige werkmap in een Unix shell kan alleen veranderd worden door de ingebouwde cd(1) opdracht. Daarom wordt het programma altijd aangeroepen door een functie of alias. De functie of alias leest een script (go-script) in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de functie of alias gedefinieerd is. Een andere belangrijke invloed op uw installatie is de definitie van de omgevingsvariabelen I en I. Zie paragraaf OMGEVINGSVARIABELEN. =head2 Installatie voor POSIX type shells Voor een POSIX shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of MSYS, voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash gebruikt C<$HOME/.bashrc>): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Vervang I door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. De locatie van het go-script C is anders per shell. Wcd voor DJGPP DOS bash heeft een andere functie nodig. Het go-script wordt niet in map C geschreven, en wanneer I en I beide niet gedefinieerd zijn wordt het go-script geschreven in c:/. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } De WinZsh versie van wcd is ook een beetje anders. Geen C map. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Zie paragraaf BESTANDEN voor meer informatie. =head2 Installatie voor C-achtige shells (csh, tcsh) Voeg de volgende alias toe aan het shell opstartbestand C<$HOME/.cshrc> of C<$HOME/.tcshrc>: if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Vervang I door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. =head2 Windows Opdrachtprompt versie Pak het zip-bestand uit en voeg map C toe aan omgevingsvariabele I. In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap veranderen, maar een .bat bestand kan dat wel. Het batch script C draait het wcd programma dat een nieuw batch script C genereert. Daarna start C C die feitelijk de map verandert. =head2 Windows VISTA en hoger In een Windows VISTA en hoger Opdrachtprompt kan men beperkte toegang hebben tot mappen. Om toegang tot meer mappen te verkrijgen heeft men beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te selecteren I. =head2 Windows PowerShell versie Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie van dit profiel is opgeslagen in de $profile variabele. Het is vereist dat omgevingsvariabele I of I gedefinieerd is. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Vervang I met de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de bestandssysteem 'provider'. Geen andere 'providers'. =head2 OS/2 Opdrachtprompt versie In een OS/2 Opdrachtprompt (cmd.exe) kan een OS/2 programma niet de huidige werkmap veranderen. Dat is waarom wcd een opdracht-script genereert C welke uitgevoerd moet worden in de huidige shell. Het script C voert eerst C uit, die vervolgens het C script creëert. Daarna voert C het C script uit. =head1 LOKALISATIE =over 4 =item B The primaire taal wordt geselecteerd via de omgevingsvariabele I. De variabele I bestaat uit verschillende onderdelen. Het eerste deel is in kleine letters de taalcode. Het tweede deel is optioneel en is de landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook een optioneel derde deel: de tekencodering, voorafgegaan door een punt. Enkele voorbeelden voor een POSIX-shell: export LANG=nl Nederlands export LANG=nl_NL Nederlands, Nederland export LANG=nl_BE Nederlands, België export LANG=es_ES Spaans, Spanje export LANG=es_MX Spaans, Mexico export LANG=en_US.iso88591 Engels, VS, Latin-1 codering Voor een complete lijst van taal- en landcodes zie de gettext(1) handleiding: L Op Unix-systemen kunt u de opdracht locale(1) gebruiken om specifieke taalregio-informatie te verkrijgen. =item B Met de omgevingsvariabele I kunt u een prioriteitenlijst specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft voorrang aan I boven I. Bijvoorbeeld, eerst Nederlands en dan Duits: C. U moet eerst lokalisatie in werking stellen, door het instellen van I of I op een waarde ongelijk aan C, voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele I. Zie ook de gettext(1) handleiding: L Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt. =item B Met de omgevingsvariabele I kan de I die ingesteld werd tijdens compilatie worden overstemd. I wordt gebruikt om de taalbestanden te vinden. De GNU standaardwaarde is C. Door C te typen zal wcd de gebruikte I laten zien. Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het nodig zijn om omgevingsvariabele I te definiëren om te wijzen naar de locale map. Een voorbeeld voor Windows cmd: set WCDLOCALEDIR=c:/my_prefix/share/locale Een voorbeeld voor een POSIX shell: export WCDLOCALEDIR=$HOME/share/locale =item B Wanneer er meerdere maptreffers zijn presenteert wcd een gesorteerde lijst. Het sorteren hangt af van de lokalisatie instellingen. Wanneer de omgevingsvariabele I ingesteld is worden de treffers gesorteerd als in een woordenboek of telefoonboek in die taal. Bijvoorbeeld punten en streepjes worden genegeerd, of letters e met en zonder accent zijn gelijk, of sortering is ongevoelig voor hoofd en kleine letters. De sortering geeft prioriteit aan omgevingsvariabele I boven I. Wanneer u I gelijk maakt aan C of C, wordt sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal wilt, maar geen Nederlandse sortering, dan kunt u iets doen als: export LANG=nl_NL export LC_COLLATE=C =item B Met betrekking to tekencodering geeft Wcd prioriteit aan variabele I boven I. Bijvoorbeeld om de tekencodering op UTF-8 te zetten kan de volgende omgevings-instelling gemaakt worden. export LC_CTYPE=en_US.UTF-8 =item B Alle lokalisatie omgevingsvariabelen die beginnen met I worden overstemd de omgevingsvariabele I wanneer die ingesteld is. Wcd geeft prioriteit aan I boven I en I. =back =head2 WINDOWS CODETABELLEN Er zijn twee groepen van codetabellen, DOS codetabellen (OEM) en Windows codetabellen (ANSI). De standaard codering voor Windows, wanneer geconfigureerd met westerse regionale instellingen, is ANSI CP1252. Windows programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem ANSI codetabel. De Windows Opdrachtprompt gebruikt standaard een OEM codetabel (CP437 of CP850) voor compatibeliteit met DOS programma's. Als u een DOS versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, vanwege de DOS codetabel. Maar de DOS versie van wcd ontbeert ondersteuning voor lange mapnamen en netwerkschijven op Windows. De Windows versie van wcd is een echt Windows programma en zal de Windows systeem ANSI codetabel gebruiken. Dus op een Westers regionale Windows zal het de codetabel CP1252 gebruiken voor directory namen en berichten. Om een consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde codetabel, vertalen alle Windows versies van wcd ANSI uitvoer naar Unicode uitvoer in de Opdrachtprompt en PowerShell. Het Opdrachtprompt rastertypefont ondersteunt alleen de originele OEM codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar Lucida Console om Unicode (en ANSI) tekens correct te laten verschijnen. Niet-Unicode versies van Wcd I gebruiken gewone ANSI uitvoer. Voor deze oude versie moet de codetabel van de Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om wcd voor Windows goed te laten werken met speciale tekens zoals geaccentueerde tekens of een euroteken. De Windows systeem codetabel kan veranderd worden via het Configuratiescherm Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt veranderd met de C opdracht. Wanneer u C typet, wordt de actuele tekencodering getoond die door wcd gebruikt wordt. Type opdracht C op de actieve codetabel van de Opdrachtprompt te tonen. =head2 UNICODE Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is met Unicode ondersteuning type C. Als uw terminal en font het ondersteunen, zou u een euroteken en Chinese tekens (betekenis: "Chinees") moeten zien. Wcd is I omgezet naar Unicode. In de kern behandelt wcd alle data als een stroom van bytes. Alleen de regels die op het scherm geprint worden, worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van libc functies en heeft geen UTF-8 specifieke broncode. Zie ook L Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type C. Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode namen gebaseerd op I gelijkwaardigheid. Zonder Unicode normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. Zie ook L =head3 UTF-8 op Unix/Linux Om UTF-8 tekens te zien moet uw terminal ook UTF-8 ondersteunen. De xterm versie die meekomt met XFree86 4.0 of hoger bevat UTF-8 ondersteuning. Om het te activeren, start xterm(1) in een UTF-8 taalregio en gebruik een font met iso10646-1 codering, bijvoorbeeld met LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Moderne uitgaves van GNU/Linux ondersteunen standaard UTF-8. Andere multi-byte tekencoderingen zouden ook moeten werken, maar dat is niet getest. Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-bestanden. =head3 UTF-16 op Windows Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take Command of TCC/LE gemaakt door JP Software, dat gebruikt kan worden op oudere Windows versies (XP/Vista). In Windows zijn alle mapnamen op schijf gecodeerd in UTF-16 Unicode. Voor niet-Unicode Windows programma's worden de tekens vertaald naar de standaard ANSI codetabel. Voor tekens die geen onderdeel zijn van de regionale instelling is de vertaling niet mogelijk en niet-Unicode programma's printen in plaats daarvan een vraagteken of een verkeerd teken. Wcd met Unicode ondersteuning leest de UTF-16 gecodeerde mappennamen en zet ze intern om naar UTF-8. Alle boomdata-bestanden zijn gecodeerd in UTF-8 en niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script aanmaken gecodeerd in UTF-8. Alle versies van Windows PowerShell zijn in staat om in UTF-8 gecodeerde scripts te draaien, indien het script is voorzien van een UTF-8 BOM. Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te veranderen met een batch script naar een map met Unicode tekens in de naam. De mapnaam moet gecodeerd zijn in UTF-8, en het batch script moet I BOM bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op 65001 (UTF-8) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert zo'n go-script C. Eerst verandert het de codetabel naar 65001, verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de originele waarde. U moet het font instellen op True Type Lucida Console (niet raster type font) wanneer de letters niet correct verschijnen. De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen sinds versie 5.2.0, indien er een Byte Order Mark (BOM) in het bestand zit (zie L), maar kan niet veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn van de standaard systeem ANSI codetabel. De Unicode Windows versie van wcd schrijft een BOM in het UTF-8 gecodeerde boomdata-bestand sinds versie 5.2.0, wat ze ook leesbaar maakt voor kladblok. =head3 UTF-8 in Cygwin Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor dat de Windows UTF-16 Unicode namen vertaald worden naar UTF-8. Dus programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken gebruikmakend van UTF-8 codering als op Unix/Linux. Stel de tekencodering in op UTF-8 met de I of I omgevingsvariabele. Het kan nodig zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen op True Type Lucida Console (niet raster type font) wanneer u de standaard Cygwin console gebruikt. De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er wordt geen BOM geschreven in de boomdata-bestanden, en er wordt aangenomen dat ze gecodeerd zijn in de B lokalisatie tekencodering. =head1 BESTANDEN Wanneer omgevingsvariabele I ingesteld is zal wcd I gebruiken in plaats van I. Alle C<*.wcd> bestanden zijn tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows Opdrachtprompt versie gedraagt zich als de DOS versie. De Cygwin versie van wcd gedraagt zich als de Unix versie. =over 4 =item B Het programma. In Unix shells wordt het programma altijd aangeroepen door een functie of alias, omdat de huidige werkmap alleen veranderd kan worden door de ingebouwde cd opdracht. Zie ook paragraaf INSTALLATIE. =item B Dit is het standaard boomdata-bestand waarin wcd zoekt naar treffers. Wanneer het niet leesbaar is zal wcd een nieuwe aanmaken. DOS: \treedata.wcd of %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd =item B Een optioneel extra boomdata-bestand. Wanneer het bestaat en leesbaar is zal wcd ook in dit bestand proberen treffers te vinden. DOS: \extra.wcd of HOME%\extra.wcd Unix: $HOME/.extra.wcd =item B< ban-bestand> In dit optionele bestand plaatst wcd de verbannen paden. Zie optie B<-b>. Jokertekens worden ondersteund. DOS: \ban.wcd of %HOME%\ban.wcd Unix: $HOME/.ban.wcd =item B Optioneel bestand met wcd aliassen. Zie optie B<-I>. DOS: \alias.wcd of %HOME%\alias.wcd Unix: $HOME/.alias.wcd =item B In dit bestand slaat wcd zijn stapel op. De schijfletter kan veranderd worden met de B<-d> optie. DOS: c:\stack.wcd of %HOME%\stack.wcd Unix: $HOME/.stack.wcd De naam van het stapelbestand kan veranderd worden met omgevingsvariabele I. Zie paragraaf OMGEVINGSVARIABELEN. =item B Dit is het shell-script dat wcd elke keer creëert. Het wordt ingelezen via een functie of een alias. De schijfletter kan gewijzigd worden met de B<-d> optie. Wegens voorgeschiedenis redenen wordt het standaard geplaatst in C<$HOME/bin> op Unix systemen. De map van dit bestand kan gewijzigd worden met de optie B<-G>. DOS bash: c:/wcd.go of $HOME/wcd.go Windows Command Prompt: c:\wcdgo.bat of %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2 Opdrachtprompt: c:\wcdgo.cmd of %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go =item B Tekstbestand met relatieve paden vanaf I. Zie opties B<+S>, B<-n> en B<+n>. DOS: \rtdata.wcd Unix: /.rtdata.wcd =back =head1 OMGEVINGSVARIABELEN =over 4 =item B Wcd gebruikt standaard omgevingsvariabele I om te bepalen waar z'n bestanden op te slaan. Zie ook paragraaf BESTANDEN. Dit kan overstemd worden met omgevingsvariabele I. I bepaalt ook waar te beginnen met het scannen van de schijf wanneer optie B<-s> gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele I. Voor de Unix, Cygwin, Windows PowerShell, WinZsh en MSYS versie is het vereist dat I of I ingesteld is. Voor de andere versies van wcd is het gebruik van deze variabelen optioneel. Wanneer I ingesteld is op DOS/Windows, zal wcd al zijn bestanden (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map I plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd zal de schijf standaard scannen vanaf I. Schijven worden niet automatisch gescant door er naar te veranderen. Dat moet wcd expliciet opgedragen worden. B.v.: wcd -S c: -A d: -A e: Vergelijken van mappen is nu globaal over alle gescande schijven. =item B Omgevingsvariabele I kan gebruikt worden om de locatie van wcds bestanden te wijzigen. Wanneer zowel I als I ingesteld zijn, zal I gebruikt worden in plaats van I. In wcd versies voorafgaand aan 5.1.5 veranderde I ook de standaard scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert I niet de standaard scan-map. Zie optie B<-s>. Gebruik vanaf versie 5.1.5 omgevingsvariabele I om de standaard scan-map te overstemmen. Voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDHOME=C:\Users\erwin\wcd Een voorbeeld voor POSIX type shells: export WCDHOME="$HOME/.wcd" Een voorbeeld voor Csh type shells: setenv WCDHOME "$HOME/.wcd" =item B Gebruik omgevingsvariabele I om de standaard scan-map I te overstemmen. Gebruik een door dubbele punten gescheiden lijst (Unix) om meer dan een map te definiëren. Gebruik op DOS/Windows een lijst gescheiden door puntkomma's. Voorbeelden voor DOS, Windows, OS/2 Opdrachtprompt: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Een voorbeeld voor POSIX type shells: export WCDSCAN="$HOME:/projectdisk/projectX" Een voorbeeld voor Csh type shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" =item B Specificeer filters met omgevingsvariabele I. Alle mappen die niet treffen met het filter worden genegeerd. Een lijst kan gespecificeerd worden met het shell pad scheidingsteken. Gelijk aan het specificeren van de I variabele. Hoofdlettergevoeligheid wordt bepaald door het besturingssysteem. Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDFILTER=projects;doc Een voorbeeld voor POSIX type shells: export WCDFILTER="projects:doc" Een voorbeeld voor Csh type shells: setenv WCDFILTER "projects:doc" =item B De paden gespecificeerd met omgevingsvariabele I worden verbannen door wcd. Zie ook optie B<-b>. Specificeer een lijst van paden met het shell I scheidingsteken. =item B De paden gespecificeerd met omgevingsvariabele I worden uitgesloten door wcd. Zie ook opties B<-x> en B<-xf>. Specificeer een lijst van paden met het shell I scheidingsteken. Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDEXCLUDE=*/windows;*/temp;*CVS Een voorbeeld voor POSIX type shells: export WCDEXCLUDE="/dev:/tmp:*CVS" Een voorbeeld voor Csh type shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" =item B Stel de basis in de de thuismappen van de gebruikers. Op DOS/Windows is de standaard waarde C<\\users>. Op Unix/Cygwin is de standaard waarde C. Deze variabele wordt gebruikt om boomdata-bestanden van andere gebruikers te scannen. Zie ook opties B<-u> en B<+u>. In gedetailleerde uitvoer-modus zal wcd alle filters, verbanningen en uitsluitingen tonen. Zie ook optie B<-v>. =item B Wcd geeft prioriteit aan I boven de standaard stapelbestandsnaam (zie paragraaf BESTANDEN). Met deze variabele kan elke shell (of terminal) zijn eigen privé stapel voor mappen hebben. Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende interactieve shell te gebruiken. export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Voor een stapel per xterm(1), gebruik de xterm omgevingsvariabele I: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Voor GNU screen(1), gebruik een stapel per scherm: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW =item B Wanneer omgevingsvariabele I ingesteld is, controleert wcd met ncurses interface of er lokale terminal definities zijn voor op de standaard plek te kijken. Dit is nuttig wanneer terminal definities niet op een standaard plaats staan. Veel gebruikte standaard plaatsen zijn C en C. =item B Wcd met PDCurses interface herkent de omgevingsvariabele I. Wanneer deze omgevingsvariabele ingesteld is, zal PDCurses een kopie maken van de inhoud van het scherm op het moment dat wcd gestart is. Wanneer wcd afsluit zal het scherm hersteld worden. Een voorbeeld voor Windows Opdrachtprompt: set PDC_RESTORE_SCREEN=1 Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd mogelijk om alles te herstellen. Er kan wat rommel in de console geprint worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld. =item B Het printen van C<#!$SHELL> op de de eerste regel van het go-script voor POSIX type shell of C shell is nodig voor 8 bit tekens. Sommige shells denken anders dat het go-script een binair bestand is en willen het niet inlezen. In Cygwin Bash moet de variabele I ingesteld zijn met de C opdracht, anders kan wcd de variabele niet lezen. =item B Wcd voor DOS bash gebruikt C<$BASH> in plaats van C<$SHELL>, omdat C<$SHELL> verwijst naar de DOS Opdrachtprompt. Het kan nodig zijn dat men C<$BASH> met een C opdracht moet definiëren, anders kan wcd de variabele niet lezen. =back =head1 ZIE OOK sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), =head1 AUTEURS Wcd is geschreven door Erwin Waterlander Project beginpagina L SourceForge: L Freecode: L De opmaak van de handleiding was verzorgd door Jari Aalto . NCD was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's "Norton Utilities" omstreeks 1987. Zie ook L wcd-5.2.5/src/man/nl/man1/wcd.txt0000664000175000017500000014164212345660660016663 0ustar waterlanwaterlanNAAM wcd - Wherever Change Directory chdir voor DOS en Unix OVERZICHT wcd [opties] [map] BESCHRIJVING Overzicht Wcd is een commandoregel programma om snel van map te veranderen. Het bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt ook een schermvullende interactieve boomweergave met snelzoek functie. Wcd is gemodelleerd naar Norton Change Directory (NCD). NCD verscheen voor het eerst in *The Norton Utilities, Release 4*, for DOS in 1987, gepubliceerd door Peter Norton. Wcd is geschikt gemaakt voor verschillende commandoregel shells: DOS command.com, Windows cmd.exe en PowerShell, OS/2 cmd.exe, en Unix shells zoals Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en anderen draaiend op elk besturingssysteem. Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel ondersteuning voor Unicode. Zie paragraaf LOKALISTIE. Zie paragraaf INSTALLATIE hoe wcd voor persoonlijk gebruik in te stellen. Basisgebruik Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met een naam die begint met de naam die getypt is. Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map "/home/user/Desktop": wcd Desk Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen (meestal een). Jokertekens Wcd ondersteunt de volgende jokertekens: * treft een willekeurige reeks van tekens (nul of meer) ? treft een willekeurig teken [SET] treft willekeurige tekens in de gespecificeerde set, [!SET] of [^SET] treft willekeurige tekens niet in de gespecificeerde set. Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als *teken koppelteken teken* zoals in "0-9" of "A-Z". "[0-9a-zA-Z_]" is de minimale set van tekens toegestaan in de "[..]" patroon samenstelling. Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem ze ondersteunt. Om de speciale syntactische betekenis van elke van "[]*?!^-\"binnen of buiten een "[..]" samenstelling te onderdrukken en exact gelijke te treffen, laat het teken vooraf gaan door een backslash ("\") teken. Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. Bijvoorbeeld dit treft elke mapnaam die eindigt op "top". wcd *top Tref mappen die ergens "top" in de naam heeft: wcd *top* Tref elke map die die begint met "a", "b" or "c": wcd [a-c]* Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar een map die begint met "Desk" en wiens pad overeenkomt met **me/Desk**. wcd me/Desk Het is toegestaan om elke expressie met schuine strepen en jokertekens te typen. B.v.: wcd src*/*1?/a*2 Overig gebruik Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd worden met de -w optie. De interactieve mappen-verkenner kan met de optie -g gestart worden. wcd -g Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen van een netwerk. Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B.v.: wcd .. Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan veranderen, probeert hij deze te verwijderen uit het standaard boomdata-bestand. Niet uit het extra boomdata-bestand. Zie ook optie -k. Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel heeft een standaard grootte van 10 en is cyclisch. Zie opties -z, -, + en =. In een omgeving met meerdere gebruikers kan optie -u gebruikt worden om naar mappen van andere gebruikers te veranderen. Op DOS en Windows systemen maakt het niet uit of een slash "/" of een backslash "\" als mappen-scheidingsteken gebruikt wordt. Het is mogelijk op DOS en Windows systemen om tegelijk van schijf en map te veranderen door de mapnaam vooraf te laten gaan door de schijf naam. wcd d:games Windows UNC paden De Windows versies (Opdrachtprompt, PowerShell, MSYS, zsh, Cygwin) ondersteunen Windows SMB LAN UNC paden zonder schijfletter, zoals "\\servername\sharename". Wcd voor de Opdrachtprompt maakt gebruik van het "pushd" commando om automatisch een UNC pad toe te wijzen aan een schijfletter. In Windows PowerShell, MSYS, zsh en Cygwin worden UNC paden volledig ondersteund. De huidige werkmap kan een UNC pad zijn. Interfaces Wcd heeft drie verschillende interface om uit een lijst van treffers te kiezen. De interface kan gekozen worden bij het bouwen van Wcd. De eerste interface gebruikt standaard in- en uitvoer. Een genummerde lijst wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een nummber te typen gevolgd door . Deze interface biedt geen terug-blader functionaliteit bij een lange lijst. De terug-blader functionaliteit van de terminal/console moet gebruikt worden. Deze interface is heel klein en overdraagbaar. De tweede interface is gebouwd met de conio bibliotheek. Het biedt een ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een enkele toetsaanslag van een letter. Deze interface is snel, omdat het toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na afsluiten. Iemand die prefereert nummers te typen kan de -N optie gebruiken. De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan de conio interface. De curses versie van wcd heeft een extra 'grafische' interface. Het laat de gebruiker een map kiezen via een vol-scherm interactieve mappenboom verkenner. Het heeft vim(1) gelijke navigatie en zoek methodes. Het kan geactiveerd worden met de optie -g. Door de -o optie te gebruiken kan men altijd terugvallen op de standaard in- en uitvoer interface. OPTIES -a Voeg huidig pad to aan het standaard boomdata-bestand. Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang duren. -aa Voeg het huidige en alle bovenliggende paden toe aan het standaard boomdata-bestand. -A PAD Scan mappenboom vanaf *PATH* en voeg toe aan het standaard boomdata-bestand. Voorbeelden: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share Op Windows kan men alle gedeelde mappen van een Windows LAN server scannen door iets te typen als: "wcd -A \\servername". Zie ook opties -S en -s en -E. -b Verban het huidige pad. Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle treffers van deze map en zijn sub-mappen negeert. Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van jokertekens wordt ondersteund en namen worden vergeleken met het volledige pad. Verbannen paden worden niet uitgesloten van het scannen van de schijf. Gebruik optie -xf om dat te doen. -c, --direct-cd Directe CD modus. Standaard werkt wcd als volgt: 1. Probeer een treffer te vinden in een boomdata-bestand. 2. Wanneer geen treffer, probeer het getypte pad te openen. In directe CD modus werkt wcd in omgekeerde volgorde. 1. Probeer het getypte pad te openen. 2. Indien niet gelukt, probeer een treffer te vinden in een boomdata-bestand. -d SCHIJF Stel schijf in voor stapel- en go-script (alleen DOS). Het stapelbestand en go-script worden standaard opgeslagen op schijf C: wanneer omgevingsvariabele *HOME* niet ingesteld is. Gebruik deze optie wanneer SCHIJF een alleen-lezen schijf is. Deze optie moet gebruikt worden vooraf aan stapel opties -, + en =. -e Voeg huidig pad toe aan het extra boomdata-bestand. Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-bestand. -ee Voeg het huidige en alle bovenliggende paden toe aan het extra boomdata-bestand. -E PAD Scan mappenboom vanaf *PAD* en voeg het toe aan het Extra boomdata-bestand.Zie ook opties -A en -S. -f BESTAND Lees boomdata-bestand *BESTAND*. Lees niet het standaard boomdata-bestand. +f BESTAND Lees boomdata-bestand *BESTAND* bovenop het standaard boomdata-bestand. -g Grafische interface (alleen in versie met curses interface). Wcd start een tekstuele curses gebaseerde 'grafische' interface. De gebruiker kan een map selecteren via een vol-scherm interactieve mappenverkenner. Het heeft een vim(1) achtige navigatie en zoek methode. Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het standaard en het extra boomdata-bestand staat. Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als een mappenboom De standaard boom opmaak is gelijk aan de boomopmaak van de originele NCD op DOS. Het verschil in opmaak is dat in NCD alle mappen van dezelfde diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk in NCD, omdat de maximale breedte van een mapnaam in DOS 12 (8.3) tekens was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de ander sub-tak. Het navigatie gedrag in wcd is exact hetzelfde als in de originele NCD. Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie door de boom mogelijk. Zie opties -Ta, -TC, en -TC om het navigatiegedrag te veranderen. -gd Dump de boomdatabestanden als een boom naar standaard uitvoer. -G PAD Schrijf go-script in map *PAD*. Bijvoorbeeld op Unix, "wcd -G PAD" zal een go-script schrijven in PAD/wcd.go. -GN, --no-go-script Maak geen go-script aan. Deze optie kan gebruikt worden in combinatie met de optie -j wanneer men wil dat wcd geen go-script aanmaakt. -h, --help Toon helptext en sluit af. -i, --ignore-case Hoofdletterongevoelig. DOS en Windows versies van wcd zijn standaard hoofdletterongevoelig. Unix/Cygwin versies zijn standaard hoofdlettergevoelig. +i, --no-ignore-case Hoofdlettergevoelig. Zie ook optie -i. -I, --ignore-diacritics Ongevoelig voor diakritische tekens voor Latijnse geschriften. Letters met een diakritisch teken treffen hun basisletter zonder diakritisch teken. De volgende Latijnse coderingen worden ondersteund: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, en Unicode Latin-1, Latin Extended-A, en Latin Extended-B. Zie ook +I, --no-ignore-diacritics Gevoelig voor diakritische tekens (standaard). Zie ook optie -I. -j, --just-go Ga-nou-maar modus. In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen naar de volgende optie, en zo verder. Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere installatie methode gebruikt worden. Men zou de volgende functie kunnen maken voor een POSIX compatibele shell: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Wanneer je een oude shell gebruikt die geen "$()" opdracht vervanging ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent graves. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias maken: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Deze methode elimineert de noodzaak voor het go-script, zodat men de optie -GN in combinatie met -j kan gebruiken. -k, --keep-paths Bewaar paden. Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie wordt dit gedrag uitgeschakeld. -K, --color Gebruik kleuren in grafische modus. -l ALIAS Noem het huidige pad *ALIAS*. Wcd plaatst het huidige pad met alias *ALIAS* in het alias-bestand. Aliassen zijn hoofdlettergevoelig. -m MAP Maak map en voeg toe aan boomdata-bestand. -L, --license Print de distributie licentie. -M MAP Maak map en voeg toe aan extra boomdata-bestand. -n PAD Lees relatief boomdata-bestand vanaf *PAD*. Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou al gemaakt moeten zijn met de wcd optie +S. *PAD* mag ook direct naar een bestand wijzen. Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling "/mnt/network": wcd -n /mnt/network src Wcd opent het relatieve boomdata-bestand in "/mnt/network/". The bestand bevat de paden relatief vanaf dat punt. +n PAD Lees relatief boomdata-bestand bovenop het standaard boomdata-bestand. Zie optie -n. -N, --numbers Gebruik nummers in plaats van letters. Wcd met een conio of curses gebaseerde interface (zie paragraaf INTERFACE) presenteert een trefferlijst standaard genummerd met letters. Wanneer de optie -N is gebruikt wordt de trefferlijst genummerd met nummers. Onafhankelijk van de optie -N kan men een letter of een nummer typen om een selectie uit de lijst te maken. -o Gebruik standaard invoer/uitvoer interface. Wanneer om een of andere reden de conio of curses interface van wcd niet werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd door het gebruik van de -o optie. -od, --to-stdout Dump alle treffers naar standaard uitvoer. -q, --quiet Stillere werking. Het printen van de uiteindelijke treffer wordt onderdrukt. -r MAP Verwijder map en verwijder uit boomdata-bestand. Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen uit het boomdata-bestand. -rmtree MAP Recursief map verwijderen en verwijderen uit boomdata-bestand. Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert de mappen uit het boomdata-bestand. -s (her)scannen schijf vanaf $HOME map. Als *HOME* niet gedefinieerd is, wordt de schijf gescant vanaf hoofdmap /. Het bestaande standaard boomdata-bestand is overschreven. De standaard scan map kan overstemd worden met omgevingsvariabele "WCDSCAN". Zie sectie OMGEVINGSVARIABELEN. -S PAD Scan mappenboom vanaf *PAD* en overschrijf het standaard boomdata-bestand. Zie ook opties -A, -s en -E. B.v. met optie -A kun je een standaard boomdata-bestand maken naar eigen smaak. Bijvoorbeeld: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share Met de Windows versies kan men alle gedeelde mappen scannen van een Windows LAN server door iets een typen als: "wcd -S \\servernaam". +S PAD Scan schijf vanaf *PAD* en plaats relatieve paden in het relatieve boomdata-bestand. Dit bestand wordt gebruikt door de -n en +n opties van wcd. B.v. "wcd -n PAD src". -t Verwijder niet tmp koppelmap "/tmp_mnt" (alleen Unix) Wcd verwijderd standaard "/tmp_mnt/" van de treffer. Map "/tmp_mnt" wordt gebruikt door de 'auto-mounter'. Dit gedrag kan uitgeschakeld worden met de -t optie. -T, --ascii-tree Teken boom met ASCII tekens. Gebruik deze opties als lijntekens niet goed getoond worden in de terminal. -Ta, --alt-tree-nav Alternatieve manier van navigeren in de grafische boom. In de standaard NCD stijl opmaak zet de -Ta optie het springen naar ongerelateerde mappen uit. In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de navigatie in GUI bestandsverkenners zoals de Windows Verkenner of Linux KDE Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende beweging naar links gaat echt naar links. U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door te drukken. Wanneer alternatieve navigatie aan staat, ziet u een "A" in de rechter onderhoek. -TC, --center-tree Gecentreerde weergave in de grafische boom. De geselecteerde map blijft in het midden van het scherm. De gecentreerde modus kan ook aan- en uitgeschakeld worden met de toets in de grafische boom. De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is gelijk aan hoe het in de originele NCD was. -Tc, --compact-tree Standaard wordt de 'grafische' boom getekend op dezelfde manier zoals de originele NCD op DOS het deed. In DOS kon een pad in totaal slechts 66 tekens bevatten. Met de diepe mappenstructuur van vandaag kan de boom erg breed worden. Om dit te beheersen kan wcd de boom op een compacte manier tekenen, gelijk aan de meeste GUI mappenverkenners, met één map per regel. Gebruik optie -Tc of schakel onmiddellijk met de toets. -Td, --cjk-width Oude Oost-Aziatische CJK (Chinees, Japans, en Koreaans) fonts hebben bepaalde letters en lijnsymbolen met een kolombreedte van 2, terwijl de normale Unicode breedte voor deze tekens 1 kolom is. Bijvoorbeeld het Chinese CP936 raster font op Windows en het Simsun font. Gebruik deze optie voor een juiste uitlijning van de grafische boom wanneer een oud CJK font gebruikt wordt. Wanneer CJK modus actief is, ziet u een "C" in de rechter onderhoek. -u GEBRUIKER Scan boomdata-bestand van een andere gebruiker gebaseerd op *GEBRUIKER*, scan niet het eigen boomdata-bestand. Zie ook paragraaf OMGEVINGSVARIABELEN voor *WCDUSERSHOME*. Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor gebruikers "/home" is. Wcd zal zoeken naar "/home/GEBRUIKER/.treedata.wcd" en "/home/GEBRUIKER/.wcd/.treedata.wcd", in deze volgorde, en de eerste lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de basismap voor de thuismap van gebruikers "\\users" is, dus wcd probeert te lezen "\\users\GEBRUIKER\treedata.wcd" en "\\users\GEBRUIKER\.wcd\treedata.wcd". +u GEBRUIKER Lees het standaard boomdata-bestand van GEBRUIKER bovenop uw eigen boomdata-bestand. -v, --verbose Toon gedetailleerde berichten. Met deze optie toont wcd alle filters, verbannen mappen en uitsluitingen. -V, --version Programmaversie tonen en afsluiten. -w, --wild-match-only Alleen jokervergelijkingen. Behandel alle treffers als jokertreffers. -x PAD *PAD* uitsluiten van scannen. Wanneer deze optie gebruikt is zal wcd *PAD* uitsluiten en al zijn sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden. Optie -x kan meerder keren gebruikt worden. wcd -x -x -s Optie -x moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E). Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk van of omgevingsvariabele *HOME* or *WCDHOME* gedefinieerd is. Wanneer *HOME* of *WCDHOME* gedefinieerd is moet men de schijfletter specificeren. Een voorbeeld: wcd -x c:/temp -S c: Specificeer anders geen schijfletter. wcd -x /temp -s -xf BESTAND Alle paden uit bestand *BESTAND* uitsluiten van scannen. Wanneer deze optie gebruikt is zal wcd alle paden genoemd in *BESTAND* uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, omdat het geldige tekens zijn in een mapnaam. Optie -xf can meerdere keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix): wcd -xf ~/.ban.wcd -s Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met administratieve bestanden uit te sluiten, voeg een regel toe met "*/.svn". Optie -xf moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E). -y, --assume-yes Op alle vragen Ja als antwoord aannemen. Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie met optie -rmtree. Deze optie moet voorafgaand gebruikt worden aan opties die tot ja/nee vragen kunnen leiden. -z GETAL Stel maximum stapelgrootte in op GETAL. De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke stapel optie (-, +, =) gebruikt worden. Anders wordt de stapelgrootte teruggezet naar de standaard 10. Een correcte opdracht is: wcd -z 50 - De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute opdracht is: wcd - -z 50 Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. -z 50 wordt genegeerd. Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een POSIX compatibele shell zou dit zijn: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } -[GETAL] Map GETAL keer op stapel zetten. Standaard is een. Ga een map terug. Opdracht "wcd -" gaat een map terug. Voeg een nummer toe om meer mappen terug te gaan. B.v. opdracht "wcd -3". De stapel is cyclisch. +[GETAL] Map GETAL keer van stapel halen. Standaard is een. Ga een map vooruit. Opdracht "wcd +" gaat een map vooruit. Voeg een nummer toe om meerdere mappen vooruit te gaan. B.v. opdracht "wcd +2". De stapel is cyclisch. = Stapel tonen. Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is gemarkeerd met een sterretje "*". INSTALLATIE De huidige werkmap in een Unix shell kan alleen veranderd worden door de ingebouwde cd(1) opdracht. Daarom wordt het programma altijd aangeroepen door een functie of alias. De functie of alias leest een script (go-script) in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de functie of alias gedefinieerd is. Een andere belangrijke invloed op uw installatie is de definitie van de omgevingsvariabelen *HOME* en *WCDHOME*. Zie paragraaf OMGEVINGSVARIABELEN. Installatie voor POSIX type shells Voor een POSIX shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of MSYS, voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash gebruikt "$HOME/.bashrc"): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Vervang *PAD* door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. De locatie van het go-script "wcd.go" is anders per shell. Wcd voor DJGPP DOS bash heeft een andere functie nodig. Het go-script wordt niet in map "bin" geschreven, en wanneer *WCDHOME* en *HOME* beide niet gedefinieerd zijn wordt het go-script geschreven in c:/. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } De WinZsh versie van wcd is ook een beetje anders. Geen "bin" map. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Zie paragraaf BESTANDEN voor meer informatie. Installatie voor C-achtige shells (csh, tcsh) Voeg de volgende alias toe aan het shell opstartbestand "$HOME/.cshrc" of "$HOME/.tcshrc": if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Vervang *PAD* door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell. Windows Opdrachtprompt versie Pak het zip-bestand uit en voeg map "bin" toe aan omgevingsvariabele *PATH*. In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap veranderen, maar een .bat bestand kan dat wel. Het batch script "wcd.bat" draait het wcd programma dat een nieuw batch script "wcdgo.bat" genereert. Daarna start "wcd.bat" "wcdgo.bat" die feitelijk de map verandert. Windows VISTA en hoger In een Windows VISTA en hoger Opdrachtprompt kan men beperkte toegang hebben tot mappen. Om toegang tot meer mappen te verkrijgen heeft men beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te selecteren *Als Administrator uitvoeren*. Windows PowerShell versie Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie van dit profiel is opgeslagen in de $profile variabele. Het is vereist dat omgevingsvariabele *HOME* of *WCDHOME* gedefinieerd is. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Vervang *PAD* met de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de bestandssysteem 'provider'. Geen andere 'providers'. OS/2 Opdrachtprompt versie In een OS/2 Opdrachtprompt (cmd.exe) kan een OS/2 programma niet de huidige werkmap veranderen. Dat is waarom wcd een opdracht-script genereert "wcdgo.cmd" welke uitgevoerd moet worden in de huidige shell. Het script "wcd.cmd" voert eerst "wcdos2.exe" uit, die vervolgens het "wcdgo.cmd" script creëert. Daarna voert "wcd.cmd" het "wcdgo.cmd" script uit. LOKALISATIE LANG The primaire taal wordt geselecteerd via de omgevingsvariabele *LANG*. De variabele *LANG* bestaat uit verschillende onderdelen. Het eerste deel is in kleine letters de taalcode. Het tweede deel is optioneel en is de landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook een optioneel derde deel: de tekencodering, voorafgegaan door een punt. Enkele voorbeelden voor een POSIX-shell: export LANG=nl Nederlands export LANG=nl_NL Nederlands, Nederland export LANG=nl_BE Nederlands, België export LANG=es_ES Spaans, Spanje export LANG=es_MX Spaans, Mexico export LANG=en_US.iso88591 Engels, VS, Latin-1 codering Voor een complete lijst van taal- en landcodes zie de gettext(1) handleiding: Op Unix-systemen kunt u de opdracht locale(1) gebruiken om specifieke taalregio-informatie te verkrijgen. LANGUAGE Met de omgevingsvariabele *LANGUAGE* kunt u een prioriteitenlijst specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft voorrang aan *LANGUAGE* boven *LANG*. Bijvoorbeeld, eerst Nederlands en dan Duits: "LANGUAGE=nl:de". U moet eerst lokalisatie in werking stellen, door het instellen van *LANG* of *LC_ALL* op een waarde ongelijk aan "C", voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele *LANGUAGE*. Zie ook de gettext(1) handleiding: Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt. WCDLOCALEDIR Met de omgevingsvariabele *WCDLOCALEDIR* kan de *LOCALEDIR* die ingesteld werd tijdens compilatie worden overstemd. *LOCALEDIR* wordt gebruikt om de taalbestanden te vinden. De GNU standaardwaarde is "/usr/local/share/locale". Door "wcd -V" te typen zal wcd de gebruikte *LOCALEDIR* laten zien. Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het nodig zijn om omgevingsvariabele *WCDLOCALEDIR* te definiëren om te wijzen naar de locale map. Een voorbeeld voor Windows cmd: set WCDLOCALEDIR=c:/my_prefix/share/locale Een voorbeeld voor een POSIX shell: export WCDLOCALEDIR=$HOME/share/locale LC_COLLATE Wanneer er meerdere maptreffers zijn presenteert wcd een gesorteerde lijst. Het sorteren hangt af van de lokalisatie instellingen. Wanneer de omgevingsvariabele *LANG* ingesteld is worden de treffers gesorteerd als in een woordenboek of telefoonboek in die taal. Bijvoorbeeld punten en streepjes worden genegeerd, of letters e met en zonder accent zijn gelijk, of sortering is ongevoelig voor hoofd en kleine letters. De sortering geeft prioriteit aan omgevingsvariabele *LC_COLLATE* boven *LANG*. Wanneer u *LC_COLLATE* gelijk maakt aan "C" of "POSIX", wordt sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal wilt, maar geen Nederlandse sortering, dan kunt u iets doen als: export LANG=nl_NL export LC_COLLATE=C LC_CTYPE Met betrekking to tekencodering geeft Wcd prioriteit aan variabele *LC_CTYPE* boven *LANG*. Bijvoorbeeld om de tekencodering op UTF-8 te zetten kan de volgende omgevings-instelling gemaakt worden. export LC_CTYPE=en_US.UTF-8 LC_ALL Alle lokalisatie omgevingsvariabelen die beginnen met *LC* worden overstemd de omgevingsvariabele *LC_ALL* wanneer die ingesteld is. Wcd geeft prioriteit aan *LC_ALL* boven *LC_COLLATE* en *LC_CTYPE*. WINDOWS CODETABELLEN Er zijn twee groepen van codetabellen, DOS codetabellen (OEM) en Windows codetabellen (ANSI). De standaard codering voor Windows, wanneer geconfigureerd met westerse regionale instellingen, is ANSI CP1252. Windows programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem ANSI codetabel. De Windows Opdrachtprompt gebruikt standaard een OEM codetabel (CP437 of CP850) voor compatibeliteit met DOS programma's. Als u een DOS versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, vanwege de DOS codetabel. Maar de DOS versie van wcd ontbeert ondersteuning voor lange mapnamen en netwerkschijven op Windows. De Windows versie van wcd is een echt Windows programma en zal de Windows systeem ANSI codetabel gebruiken. Dus op een Westers regionale Windows zal het de codetabel CP1252 gebruiken voor directory namen en berichten. Om een consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde codetabel, vertalen alle Windows versies van wcd ANSI uitvoer naar Unicode uitvoer in de Opdrachtprompt en PowerShell. Het Opdrachtprompt rastertypefont ondersteunt alleen de originele OEM codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar Lucida Console om Unicode (en ANSI) tekens correct te laten verschijnen. Niet-Unicode versies van Wcd *voorafgaande aan versie 5.2.0* gebruiken gewone ANSI uitvoer. Voor deze oude versie moet de codetabel van de Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om wcd voor Windows goed te laten werken met speciale tekens zoals geaccentueerde tekens of een euroteken. De Windows systeem codetabel kan veranderd worden via het Configuratiescherm Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt veranderd met de "chcp" opdracht. Wanneer u "wcd -V" typet, wordt de actuele tekencodering getoond die door wcd gebruikt wordt. Type opdracht "chcp" op de actieve codetabel van de Opdrachtprompt te tonen. UNICODE Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is met Unicode ondersteuning type "wcd -V". Als uw terminal en font het ondersteunen, zou u een euroteken en Chinese tekens (betekenis: "Chinees") moeten zien. Wcd is *zacht* omgezet naar Unicode. In de kern behandelt wcd alle data als een stroom van bytes. Alleen de regels die op het scherm geprint worden, worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van libc functies en heeft geen UTF-8 specifieke broncode. Zie ook Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type "wcd -V". Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode namen gebaseerd op *compatibele* gelijkwaardigheid. Zonder Unicode normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. Zie ook UTF-8 op Unix/Linux Om UTF-8 tekens te zien moet uw terminal ook UTF-8 ondersteunen. De xterm versie die meekomt met XFree86 4.0 of hoger bevat UTF-8 ondersteuning. Om het te activeren, start xterm(1) in een UTF-8 taalregio en gebruik een font met iso10646-1 codering, bijvoorbeeld met LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Moderne uitgaves van GNU/Linux ondersteunen standaard UTF-8. Andere multi-byte tekencoderingen zouden ook moeten werken, maar dat is niet getest. Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-bestanden. UTF-16 op Windows Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take Command of TCC/LE gemaakt door JP Software, dat gebruikt kan worden op oudere Windows versies (XP/Vista). In Windows zijn alle mapnamen op schijf gecodeerd in UTF-16 Unicode. Voor niet-Unicode Windows programma's worden de tekens vertaald naar de standaard ANSI codetabel. Voor tekens die geen onderdeel zijn van de regionale instelling is de vertaling niet mogelijk en niet-Unicode programma's printen in plaats daarvan een vraagteken of een verkeerd teken. Wcd met Unicode ondersteuning leest de UTF-16 gecodeerde mappennamen en zet ze intern om naar UTF-8. Alle boomdata-bestanden zijn gecodeerd in UTF-8 en niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script aanmaken gecodeerd in UTF-8. Alle versies van Windows PowerShell zijn in staat om in UTF-8 gecodeerde scripts te draaien, indien het script is voorzien van een UTF-8 BOM. Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te veranderen met een batch script naar een map met Unicode tekens in de naam. De mapnaam moet gecodeerd zijn in UTF-8, en het batch script moet *geen* BOM bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op 65001 (UTF-8) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert zo'n go-script "wcdgo.bat". Eerst verandert het de codetabel naar 65001, verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de originele waarde. U moet het font instellen op True Type Lucida Console (niet raster type font) wanneer de letters niet correct verschijnen. De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen sinds versie 5.2.0, indien er een Byte Order Mark (BOM) in het bestand zit (zie ), maar kan niet veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn van de standaard systeem ANSI codetabel. De Unicode Windows versie van wcd schrijft een BOM in het UTF-8 gecodeerde boomdata-bestand sinds versie 5.2.0, wat ze ook leesbaar maakt voor kladblok. UTF-8 in Cygwin Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor dat de Windows UTF-16 Unicode namen vertaald worden naar UTF-8. Dus programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken gebruikmakend van UTF-8 codering als op Unix/Linux. Stel de tekencodering in op UTF-8 met de *LANG* of *LC_CTYPE* omgevingsvariabele. Het kan nodig zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen op True Type Lucida Console (niet raster type font) wanneer u de standaard Cygwin console gebruikt. De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er wordt geen BOM geschreven in de boomdata-bestanden, en er wordt aangenomen dat ze gecodeerd zijn in de Cygwin lokalisatie tekencodering. BESTANDEN Wanneer omgevingsvariabele *WCDHOME* ingesteld is zal wcd *WCDHOME* gebruiken in plaats van *HOME*. Alle "*.wcd" bestanden zijn tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows Opdrachtprompt versie gedraagt zich als de DOS versie. De Cygwin versie van wcd gedraagt zich als de Unix versie. wcd.exe Het programma. In Unix shells wordt het programma altijd aangeroepen door een functie of alias, omdat de huidige werkmap alleen veranderd kan worden door de ingebouwde cd opdracht. Zie ook paragraaf INSTALLATIE. standaard boomdata-bestand Dit is het standaard boomdata-bestand waarin wcd zoekt naar treffers. Wanneer het niet leesbaar is zal wcd een nieuwe aanmaken. DOS: \treedata.wcd of %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd extra boomdata-bestand Een optioneel extra boomdata-bestand. Wanneer het bestaat en leesbaar is zal wcd ook in dit bestand proberen treffers te vinden. DOS: \extra.wcd of HOME%\extra.wcd Unix: $HOME/.extra.wcd ban-bestand In dit optionele bestand plaatst wcd de verbannen paden. Zie optie -b. Jokertekens worden ondersteund. DOS: \ban.wcd of %HOME%\ban.wcd Unix: $HOME/.ban.wcd alias-bestand Optioneel bestand met wcd aliassen. Zie optie -I. DOS: \alias.wcd of %HOME%\alias.wcd Unix: $HOME/.alias.wcd stapel-bestand In dit bestand slaat wcd zijn stapel op. De schijfletter kan veranderd worden met de -d optie. DOS: c:\stack.wcd of %HOME%\stack.wcd Unix: $HOME/.stack.wcd De naam van het stapelbestand kan veranderd worden met omgevingsvariabele *WCDSTACKFILE*. Zie paragraaf OMGEVINGSVARIABELEN. go-script Dit is het shell-script dat wcd elke keer creëert. Het wordt ingelezen via een functie of een alias. De schijfletter kan gewijzigd worden met de -d optie. Wegens voorgeschiedenis redenen wordt het standaard geplaatst in "$HOME/bin" op Unix systemen. De map van dit bestand kan gewijzigd worden met de optie -G. DOS bash: c:/wcd.go of $HOME/wcd.go Windows Command Prompt: c:\wcdgo.bat of %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2 Opdrachtprompt: c:\wcdgo.cmd of %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go relatieve boomdata-bestand Tekstbestand met relatieve paden vanaf *MAP*. Zie opties +S, -n en +n. DOS: \rtdata.wcd Unix: /.rtdata.wcd OMGEVINGSVARIABELEN HOME Wcd gebruikt standaard omgevingsvariabele *HOME* om te bepalen waar z'n bestanden op te slaan. Zie ook paragraaf BESTANDEN. Dit kan overstemd worden met omgevingsvariabele *WCDHOME*. *HOME* bepaalt ook waar te beginnen met het scannen van de schijf wanneer optie -s gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele *WCDSCAN*. Voor de Unix, Cygwin, Windows PowerShell, WinZsh en MSYS versie is het vereist dat *HOME* of *WCDHOME* ingesteld is. Voor de andere versies van wcd is het gebruik van deze variabelen optioneel. Wanneer *HOME* ingesteld is op DOS/Windows, zal wcd al zijn bestanden (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map *HOME* plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd zal de schijf standaard scannen vanaf *HOME*. Schijven worden niet automatisch gescant door er naar te veranderen. Dat moet wcd expliciet opgedragen worden. B.v.: wcd -S c: -A d: -A e: Vergelijken van mappen is nu globaal over alle gescande schijven. WCDHOME Omgevingsvariabele *WCDHOME* kan gebruikt worden om de locatie van wcds bestanden te wijzigen. Wanneer zowel *HOME* als *WCDHOME* ingesteld zijn, zal *WCDHOME* gebruikt worden in plaats van *HOME*. In wcd versies voorafgaand aan 5.1.5 veranderde *WCDHOME* ook de standaard scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert *WCDHOME* niet de standaard scan-map. Zie optie -s. Gebruik vanaf versie 5.1.5 omgevingsvariabele *WCDSCAN* om de standaard scan-map te overstemmen. Voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDHOME=C:\Users\erwin\wcd Een voorbeeld voor POSIX type shells: export WCDHOME="$HOME/.wcd" Een voorbeeld voor Csh type shells: setenv WCDHOME "$HOME/.wcd" WCDSCAN Gebruik omgevingsvariabele *WCDSCAN* om de standaard scan-map *HOME* te overstemmen. Gebruik een door dubbele punten gescheiden lijst (Unix) om meer dan een map te definiëren. Gebruik op DOS/Windows een lijst gescheiden door puntkomma's. Voorbeelden voor DOS, Windows, OS/2 Opdrachtprompt: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Een voorbeeld voor POSIX type shells: export WCDSCAN="$HOME:/projectdisk/projectX" Een voorbeeld voor Csh type shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" WCDFILTER Specificeer filters met omgevingsvariabele *WCDFILTER*. Alle mappen die niet treffen met het filter worden genegeerd. Een lijst kan gespecificeerd worden met het shell pad scheidingsteken. Gelijk aan het specificeren van de *PATH* variabele. Hoofdlettergevoeligheid wordt bepaald door het besturingssysteem. Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDFILTER=projects;doc Een voorbeeld voor POSIX type shells: export WCDFILTER="projects:doc" Een voorbeeld voor Csh type shells: setenv WCDFILTER "projects:doc" WCDBAN De paden gespecificeerd met omgevingsvariabele *WCDBAN* worden verbannen door wcd. Zie ook optie -b. Specificeer een lijst van paden met het shell *PATH* scheidingsteken. WCDEXCLUDE De paden gespecificeerd met omgevingsvariabele *WCDEXCLUDE* worden uitgesloten door wcd. Zie ook opties -x en -xf. Specificeer een lijst van paden met het shell *PATH* scheidingsteken. Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt: set WCDEXCLUDE=*/windows;*/temp;*CVS Een voorbeeld voor POSIX type shells: export WCDEXCLUDE="/dev:/tmp:*CVS" Een voorbeeld voor Csh type shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" WCDUSERSHOME Stel de basis in de de thuismappen van de gebruikers. Op DOS/Windows is de standaard waarde "\\users". Op Unix/Cygwin is de standaard waarde "/home". Deze variabele wordt gebruikt om boomdata-bestanden van andere gebruikers te scannen. Zie ook opties -u en +u. In gedetailleerde uitvoer-modus zal wcd alle filters, verbanningen en uitsluitingen tonen. Zie ook optie -v. WCDSTACKFILE Wcd geeft prioriteit aan *WCDSTACKFILE* boven de standaard stapelbestandsnaam (zie paragraaf BESTANDEN). Met deze variabele kan elke shell (of terminal) zijn eigen privé stapel voor mappen hebben. Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende interactieve shell te gebruiken. export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Voor een stapel per xterm(1), gebruik de xterm omgevingsvariabele *WINDOWID*: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Voor GNU screen(1), gebruik een stapel per scherm: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW TERMINFO Wanneer omgevingsvariabele *TERMINFO* ingesteld is, controleert wcd met ncurses interface of er lokale terminal definities zijn voor op de standaard plek te kijken. Dit is nuttig wanneer terminal definities niet op een standaard plaats staan. Veel gebruikte standaard plaatsen zijn "/usr/lib/terminfo" en "/usr/share/terminfo". PDC_RESTORE_SCREEN Wcd met PDCurses interface herkent de omgevingsvariabele *PDC_RESTORE_SCREEN*. Wanneer deze omgevingsvariabele ingesteld is, zal PDCurses een kopie maken van de inhoud van het scherm op het moment dat wcd gestart is. Wanneer wcd afsluit zal het scherm hersteld worden. Een voorbeeld voor Windows Opdrachtprompt: set PDC_RESTORE_SCREEN=1 Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd mogelijk om alles te herstellen. Er kan wat rommel in de console geprint worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld. SHELL Het printen van "#!$SHELL" op de de eerste regel van het go-script voor POSIX type shell of C shell is nodig voor 8 bit tekens. Sommige shells denken anders dat het go-script een binair bestand is en willen het niet inlezen. In Cygwin Bash moet de variabele *SHELL* ingesteld zijn met de "export" opdracht, anders kan wcd de variabele niet lezen. BASH Wcd voor DOS bash gebruikt $BASH in plaats van $SHELL, omdat $SHELL verwijst naar de DOS Opdrachtprompt. Het kan nodig zijn dat men $BASH met een "export" opdracht moet definiëren, anders kan wcd de variabele niet lezen. ZIE OOK sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), AUTEURS Wcd is geschreven door Erwin Waterlander Project beginpagina SourceForge: Freecode: De opmaak van de handleiding was verzorgd door Jari Aalto . NCD was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's "Norton Utilities" omstreeks 1987. Zie ook wcd-5.2.5/src/man/nl/man1/wcd.htm0000664000175000017500000016031512345660661016633 0ustar waterlanwaterlan wcd 5.2.5 - Wherever Change Directory

NAAM

wcd - Wherever Change Directory

chdir voor DOS en Unix

OVERZICHT

    wcd [opties] [map]

BESCHRIJVING

Overzicht

Wcd is een commandoregel programma om snel van map te veranderen. Het bespaart tijd tijdens het typen. Men hoeft alleen maar een deel van de mapnaam te typen en wcd springt er heen. Wcd heeft een snelle selectie methode wanneer er meerdere treffers zijn, en biedt de mogelijkheid om aliassen van mappen aan te maken en om mappen in de ban te doen. Wcd biedt ook een schermvullende interactieve boomweergave met snelzoek functie.

Wcd is gemodelleerd naar Norton Change Directory (NCD). NCD verscheen voor het eerst in The Norton Utilities, Release 4, for DOS in 1987, gepubliceerd door Peter Norton.

Wcd is geschikt gemaakt voor verschillende commandoregel shells: DOS command.com, Windows cmd.exe en PowerShell, OS/2 cmd.exe, en Unix shells zoals Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), en C (csh) shell en anderen draaiend op elk besturingssysteem.

Wcd ondersteunt 8 bit tekensets op alle systemen, en heeft optioneel ondersteuning voor Unicode. Zie paragraaf LOKALISTIE.

Zie paragraaf INSTALLATIE hoe wcd voor persoonlijk gebruik in te stellen.

Basisgebruik

Standaard, wanneer geen jokertekens gebruikt worden, zoekt wcd een map met een naam die begint met de naam die getypt is.

Bijvoorbeeld deze opdracht zal veranderen naar de huidige gebruikers map /home/user/Desktop:

    wcd Desk

Wanneer er meerdere treffers zijn zal wcd een lijst presenteren van alle treffers. De gebruiker kan een keuze maken met enkele toetsaanslagen (meestal een).

Jokertekens

Wcd ondersteunt de volgende jokertekens:

    *       treft een willekeurige reeks van tekens (nul of meer)
    ?       treft een willekeurig teken
    [SET]   treft willekeurige tekens in de gespecificeerde set,
    [!SET]  of [^SET] treft willekeurige tekens niet in de
            gespecificeerde set.

Een set wordt samengesteld uit tekens of reeksen; een reeks ziet er uit als teken koppelteken teken zoals in 0-9 of A-Z. [0-9a-zA-Z_] is de minimale set van tekens toegestaan in de [..] patroon samenstelling. Internationale tekens (d.w.z. 8 bit tekens) zijn toegestaan als het systeem ze ondersteunt. Om de speciale syntactische betekenis van elke van []*?!^-\binnen of buiten een [..] samenstelling te onderdrukken en exact gelijke te treffen, laat het teken vooraf gaan door een backslash (\) teken.

Het gebruik van jokertekens maakt krachtige zoekmethodes mogelijk. Bijvoorbeeld dit treft elke mapnaam die eindigt op "top".

    wcd *top

Tref mappen die ergens "top" in de naam heeft:

    wcd *top*

Tref elke map die die begint met "a", "b" or "c":

    wcd [a-c]*

Het is ook mogelijk om een deel van het pad op te geven. Hier zoekt Wcd naar een map die begint met "Desk" en wiens pad overeenkomt met *me/Desk*.

    wcd me/Desk

Het is toegestaan om elke expressie met schuine strepen en jokertekens te typen. B.v.:

    wcd src*/*1?/a*2

Overig gebruik

Wanneer geen jokertekens gebruikt zijn en wcd vindt een perfecte treffer, zullen alle niet exacte treffers genegeerd worden. Dit gedrag kan gewijzigd worden met de -w optie.

De interactieve mappen-verkenner kan met de optie -g gestart worden.

    wcd -g

Wcd genereert een boomdata-bestand waarin de map gezocht wordt. Op Unix en Windows voegt wcd ook symbolische koppelingen toe wanneer de schijf gescand wordt, maar deze worden niet gevolgd. Wanneer symbolische koppelingen gevolgd worden, zou wcd oneindige lussen kunnen scannen, of zeer grote delen van een netwerk.

Wcd kan ook veranderen naar mappen die niet in het boomdata-bestand staan. B.v.:

    wcd ..

Wanneer wcd een treffer heeft gevonden, maar niet naar de map kan veranderen, probeert hij deze te verwijderen uit het standaard boomdata-bestand. Niet uit het extra boomdata-bestand. Zie ook optie -k.

Wcd houdt een mappenstapel bij die opgeslagen wordt op schijf. De stapel heeft een standaard grootte van 10 en is cyclisch. Zie opties -z, -, + en =.

In een omgeving met meerdere gebruikers kan optie -u gebruikt worden om naar mappen van andere gebruikers te veranderen.

Op DOS en Windows systemen maakt het niet uit of een slash "/" of een backslash "\" als mappen-scheidingsteken gebruikt wordt.

Het is mogelijk op DOS en Windows systemen om tegelijk van schijf en map te veranderen door de mapnaam vooraf te laten gaan door de schijf naam.

    wcd d:games

Windows UNC paden

De Windows versies (Opdrachtprompt, PowerShell, MSYS, zsh, Cygwin) ondersteunen Windows SMB LAN UNC paden zonder schijfletter, zoals \\servername\sharename. Wcd voor de Opdrachtprompt maakt gebruik van het "pushd" commando om automatisch een UNC pad toe te wijzen aan een schijfletter. In Windows PowerShell, MSYS, zsh en Cygwin worden UNC paden volledig ondersteund. De huidige werkmap kan een UNC pad zijn.

Interfaces

Wcd heeft drie verschillende interface om uit een lijst van treffers te kiezen. De interface kan gekozen worden bij het bouwen van Wcd.

De eerste interface gebruikt standaard in- en uitvoer. Een genummerde lijst wordt in de terminal geprint. De gebruiker kan kiezen uit de lijst door een nummber te typen gevolgd door <Enter>. Deze interface biedt geen terug-blader functionaliteit bij een lange lijst. De terug-blader functionaliteit van de terminal/console moet gebruikt worden. Deze interface is heel klein en overdraagbaar.

De tweede interface is gebouwd met de conio bibliotheek. Het biedt een ingebouwde terug-blader functie. De gebruiker wordt een lijst gepresenteerd, genummerd met letters. Het kiezen uit de lijst kan gedaan worden met een enkele toetsaanslag van een letter. Deze interface is snel, omdat het toetsaanslagen bespaart. Wanneer mogelijk wordt het scherm hersteld na afsluiten. Iemand die prefereert nummers te typen kan de -N optie gebruiken.

De derde bibliotheek is gebouwd met de curses bibliotheek. Het is gelijk aan de conio interface. De curses versie van wcd heeft een extra 'grafische' interface. Het laat de gebruiker een map kiezen via een vol-scherm interactieve mappenboom verkenner. Het heeft vim(1) gelijke navigatie en zoek methodes. Het kan geactiveerd worden met de optie -g.

Door de -o optie te gebruiken kan men altijd terugvallen op de standaard in- en uitvoer interface.

OPTIES

-a

Voeg huidig pad to aan het standaard boomdata-bestand.

Gebruik deze optie om snel het huidige pad toe te voegen aan het standaard boomdata-bestand. Het opnieuw scannen van de complete schijf kan soms lang duren.

-aa

Voeg het huidige en alle bovenliggende paden toe aan het standaard boomdata-bestand.

-A PAD

Scan mappenboom vanaf PATH en voeg toe aan het standaard boomdata-bestand. Voorbeelden:

    wcd -A .
    wcd -A /home -A /etc
    wcd -A d: -A e: -A \\server\share

Op Windows kan men alle gedeelde mappen van een Windows LAN server scannen door iets te typen als: wcd -A \\servername.

Zie ook opties -S en -s en -E.

-b

Verban het huidige pad.

Wcd plaatst het huidige pad in het ban-bestand. Dit betekent dat wcd alle treffers van deze map en zijn sub-mappen negeert.

Het ban-bestand kan gewijzigd worden met een tekstbewerker. Gebruik van jokertekens wordt ondersteund en namen worden vergeleken met het volledige pad.

Verbannen paden worden niet uitgesloten van het scannen van de schijf. Gebruik optie -xf om dat te doen.

-c, --direct-cd

Directe CD modus. Standaard werkt wcd als volgt:

    1. Probeer een treffer te vinden in een boomdata-bestand.
    2. Wanneer geen treffer, probeer het getypte pad te openen.

In directe CD modus werkt wcd in omgekeerde volgorde.

    1. Probeer het getypte pad te openen.
    2. Indien niet gelukt, probeer een treffer te vinden in een boomdata-bestand.
-d SCHIJF

Stel schijf in voor stapel- en go-script (alleen DOS).

Het stapelbestand en go-script worden standaard opgeslagen op schijf C: wanneer omgevingsvariabele HOME niet ingesteld is. Gebruik deze optie wanneer SCHIJF een alleen-lezen schijf is. Deze optie moet gebruikt worden vooraf aan stapel opties -, + en =.

-e

Voeg huidig pad toe aan het extra boomdata-bestand.

Gebruik deze optie om snel het huidige toe te voegen aan het extra boomdata-bestand.

-ee

Voeg het huidige en alle bovenliggende paden toe aan het extra boomdata-bestand.

-E PAD

Scan mappenboom vanaf PAD en voeg het toe aan het Extra boomdata-bestand.Zie ook opties -A en -S.

-f BESTAND

Lees boomdata-bestand BESTAND. Lees niet het standaard boomdata-bestand.

+f BESTAND

Lees boomdata-bestand BESTAND bovenop het standaard boomdata-bestand.

-g

Grafische interface (alleen in versie met curses interface).

Wcd start een tekstuele curses gebaseerde 'grafische' interface. De gebruiker kan een map selecteren via een vol-scherm interactieve mappenverkenner. Het heeft een vim(1) achtige navigatie en zoek methode.

Wanneer geen zoekstring gegeven is presenteert wcd de gehele boom die in het standaard en het extra boomdata-bestand staat.

Wanneer een zoekstring gegeven is wordt de trefferlijst gepresenteerd als een mappenboom

De standaard boom opmaak is gelijk aan de boomopmaak van de originele NCD op DOS. Het verschil in opmaak is dat in NCD alle mappen van dezelfde diepteniveau verticaal uitgelijnd waren over de hele boom. Dit was mogelijk in NCD, omdat de maximale breedte van een mapnaam in DOS 12 (8.3) tekens was. Op moderne besturingssystemen kunnen namen erg lang zijn. Daarom zijn mappen met dezelfde diepte in wcd niet verticaal uitgelijnd over de hele boom, maar alleen in sub-takken. Daarom is er wat zijdelingse beweging wanneer recht omhoog of omlaag bewogen wordt van de ene sub-tak naar de ander sub-tak.

Het navigatie gedrag in wcd is exact hetzelfde als in de originele NCD. Bijvoorbeeld wanneer je de Omlaag knopt drukt ga je omlaag naar de volgende map met dezelfde diepte, springend over takken. Dit maakt snelle navigatie door de boom mogelijk.

Zie opties -Ta, -TC, en -TC om het navigatiegedrag te veranderen.

-gd

Dump de boomdatabestanden als een boom naar standaard uitvoer.

-G PAD

Schrijf go-script in map PAD. Bijvoorbeeld op Unix, wcd -G PAD zal een go-script schrijven in PAD/wcd.go.

-GN, --no-go-script

Maak geen go-script aan. Deze optie kan gebruikt worden in combinatie met de optie -j wanneer men wil dat wcd geen go-script aanmaakt.

-h, --help

Toon helptext en sluit af.

-i, --ignore-case

Hoofdletterongevoelig. DOS en Windows versies van wcd zijn standaard hoofdletterongevoelig. Unix/Cygwin versies zijn standaard hoofdlettergevoelig.

+i, --no-ignore-case

Hoofdlettergevoelig. Zie ook optie -i.

-I, --ignore-diacritics

Ongevoelig voor diakritische tekens voor Latijnse geschriften. Letters met een diakritisch teken treffen hun basisletter zonder diakritisch teken. De volgende Latijnse coderingen worden ondersteund: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, en Unicode Latin-1, Latin Extended-A, en Latin Extended-B. Zie ook http://nl.wikipedia.org/wiki/Diakritisch_teken

+I, --no-ignore-diacritics

Gevoelig voor diakritische tekens (standaard). Zie ook optie -I.

-j, --just-go

Ga-nou-maar modus.

In deze modus zal wcd geen lijst tonen wanneer er meer dan een map is die treft met de ingegeven map. Wcd zal veranderen naar de eerste optie. Wanneer wcd opnieuw aangeroepen wordt met hetzelfde argument, zal wcd veranderen naar de volgende optie, en zo verder.

Wcd print de map waar naar te gaan naar standaard uitvoer. Zo kan een andere installatie methode gebruikt worden. Men zou de volgende functie kunnen maken voor een POSIX compatibele shell:

    wcd ()
    {
        cd "$($HOME/bin/wcd.exe -j $@)"
    }

Wanneer je een oude shell gebruikt die geen "$()" opdracht vervanging ondersteunt, moet je de oude stijl opdrachtvervanging gebruiken met accent graves.

    wcd ()
    {
        cd "`$HOME/bin/wcd.exe -j $@`"
    }

Op Windows systemen, wanneer men 4NT shell draait, kan men de volgende alias maken:

    alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`

Deze methode elimineert de noodzaak voor het go-script, zodat men de optie -GN in combinatie met -j kan gebruiken.

-k, --keep-paths

Bewaar paden.

Bewaar paden in boomdata-bestanden wanneer wcd er niet naar kan veranderen. Het standaard gedrag van wcd is dat het probeert de paden te verwijderen uit het boomdata-bestand wanneer wcd niet naar ze kan veranderen. Met deze optie wordt dit gedrag uitgeschakeld.

-K, --color

Gebruik kleuren in grafische modus.

-l ALIAS

Noem het huidige pad ALIAS. Wcd plaatst het huidige pad met alias ALIAS in het alias-bestand. Aliassen zijn hoofdlettergevoelig.

-m MAP

Maak map en voeg toe aan boomdata-bestand.

-L, --license

Print de distributie licentie.

-M MAP

Maak map en voeg toe aan extra boomdata-bestand.

-n PAD

Lees relatief boomdata-bestand vanaf PAD.

Lees niet het standaard boomdata-bestand. Het relatieve boomdata-bestand zou al gemaakt moeten zijn met de wcd optie +S. PAD mag ook direct naar een bestand wijzen.

Een voorbeeld. Stel een ander systeem is gekoppend aan koppeling /mnt/network:

    wcd -n /mnt/network src

Wcd opent het relatieve boomdata-bestand in /mnt/network/. The bestand bevat de paden relatief vanaf dat punt.

+n PAD

Lees relatief boomdata-bestand bovenop het standaard boomdata-bestand. Zie optie -n.

-N, --numbers

Gebruik nummers in plaats van letters.

Wcd met een conio of curses gebaseerde interface (zie paragraaf INTERFACE) presenteert een trefferlijst standaard genummerd met letters. Wanneer de optie -N is gebruikt wordt de trefferlijst genummerd met nummers. Onafhankelijk van de optie -N kan men een letter of een nummer typen om een selectie uit de lijst te maken.

-o

Gebruik standaard invoer/uitvoer interface.

Wanneer om een of andere reden de conio of curses interface van wcd niet werkt kan men terugvallen op de standaard invoer/uitvoer interface van wcd door het gebruik van de -o optie.

-od, --to-stdout

Dump alle treffers naar standaard uitvoer.

-q, --quiet

Stillere werking. Het printen van de uiteindelijke treffer wordt onderdrukt.

-r MAP

Verwijder map en verwijder uit boomdata-bestand.

Als de map leeg is zal wcd het verwijderen, en proberen het te verwijderen uit het boomdata-bestand.

-rmtree MAP

Recursief map verwijderen en verwijderen uit boomdata-bestand.

Wcd zal de map verwijderen en al zijn sub-mappen en bestanden, en verwijdert de mappen uit het boomdata-bestand.

-s

(her)scannen schijf vanaf $HOME map. Als HOME niet gedefinieerd is, wordt de schijf gescant vanaf hoofdmap /.

Het bestaande standaard boomdata-bestand is overschreven.

De standaard scan map kan overstemd worden met omgevingsvariabele WCDSCAN. Zie sectie OMGEVINGSVARIABELEN.

-S PAD

Scan mappenboom vanaf PAD en overschrijf het standaard boomdata-bestand. Zie ook opties -A, -s en -E. B.v. met optie -A kun je een standaard boomdata-bestand maken naar eigen smaak. Bijvoorbeeld:

Unix:

    wcd -S /
    wcd -S /home -A /etc -A /usr

DOS/Windows:

    wcd -S c:/
    wcd -S c: -A d: -A \\server\share

Met de Windows versies kan men alle gedeelde mappen scannen van een Windows LAN server door iets een typen als: wcd -S \\servernaam.

+S PAD

Scan schijf vanaf PAD en plaats relatieve paden in het relatieve boomdata-bestand. Dit bestand wordt gebruikt door de -n en +n opties van wcd. B.v. wcd -n PAD src.

-t

Verwijder niet tmp koppelmap /tmp_mnt (alleen Unix)

Wcd verwijderd standaard /tmp_mnt/ van de treffer. Map /tmp_mnt wordt gebruikt door de 'auto-mounter'. Dit gedrag kan uitgeschakeld worden met de -t optie.

-T, --ascii-tree

Teken boom met ASCII tekens. Gebruik deze opties als lijntekens niet goed getoond worden in de terminal.

-Ta, --alt-tree-nav

Alternatieve manier van navigeren in de grafische boom.

In de standaard NCD stijl opmaak zet de -Ta optie het springen naar ongerelateerde mappen uit.

In compacte-boom-modus maakt de alternatieve mode de navigatie gelijk aan de navigatie in GUI bestandsverkenners zoals de Windows Verkenner of Linux KDE Konqueror. Omhoog en Omlaag drukken beweegt de geselecteerde map één regel op en neer. Links drukken vouwt eerst de sub-mappen in en de volgende beweging naar links gaat echt naar links.

U kunt onmiddellijk tussen standaard en alternatief navigeren schakelen door <Shift-A> te drukken.

Wanneer alternatieve navigatie aan staat, ziet u een "A" in de rechter onderhoek.

-TC, --center-tree

Gecentreerde weergave in de grafische boom. De geselecteerde map blijft in het midden van het scherm. De gecentreerde modus kan ook aan- en uitgeschakeld worden met de <t> toets in de grafische boom.

De standaard niet-gecentreerde weergave, die boombeweging minimaliseert, is gelijk aan hoe het in de originele NCD was.

-Tc, --compact-tree

Standaard wordt de 'grafische' boom getekend op dezelfde manier zoals de originele NCD op DOS het deed. In DOS kon een pad in totaal slechts 66 tekens bevatten. Met de diepe mappenstructuur van vandaag kan de boom erg breed worden. Om dit te beheersen kan wcd de boom op een compacte manier tekenen, gelijk aan de meeste GUI mappenverkenners, met één map per regel. Gebruik optie -Tc of schakel onmiddellijk met de <m> toets.

-Td, --cjk-width

Oude Oost-Aziatische CJK (Chinees, Japans, en Koreaans) fonts hebben bepaalde letters en lijnsymbolen met een kolombreedte van 2, terwijl de normale Unicode breedte voor deze tekens 1 kolom is. Bijvoorbeeld het Chinese CP936 raster font op Windows en het Simsun font. Gebruik deze optie voor een juiste uitlijning van de grafische boom wanneer een oud CJK font gebruikt wordt.

Wanneer CJK modus actief is, ziet u een "C" in de rechter onderhoek.

-u GEBRUIKER

Scan boomdata-bestand van een andere gebruiker gebaseerd op GEBRUIKER, scan niet het eigen boomdata-bestand. Zie ook paragraaf OMGEVINGSVARIABELEN voor WCDUSERSHOME.

Op Unix/Cygwin wordt aangenomen dat de basismap voor de thuismap voor gebruikers /home is. Wcd zal zoeken naar /home/GEBRUIKER/.treedata.wcd en /home/GEBRUIKER/.wcd/.treedata.wcd, in deze volgorde, en de eerste lezen die bestaat en leesbaar is. Op DOS/Windows wordt aangenomen dat de basismap voor de thuismap van gebruikers \\users is, dus wcd probeert te lezen \\users\GEBRUIKER\treedata.wcd en \\users\GEBRUIKER\.wcd\treedata.wcd.

+u GEBRUIKER

Lees het standaard boomdata-bestand van GEBRUIKER bovenop uw eigen boomdata-bestand.

-v, --verbose

Toon gedetailleerde berichten. Met deze optie toont wcd alle filters, verbannen mappen en uitsluitingen.

-V, --version

Programmaversie tonen en afsluiten.

-w, --wild-match-only

Alleen jokervergelijkingen. Behandel alle treffers als jokertreffers.

-x PAD

PAD uitsluiten van scannen.

Wanneer deze optie gebruikt is zal wcd PAD uitsluiten en al zijn sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden. Optie -x kan meerder keren gebruikt worden.

    wcd -x <path1> -x <path2> -s

Optie -x moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E).

Op DOS/Windows systemen moet men de schijfletter specificeren afhankelijk van of omgevingsvariabele HOME or WCDHOME gedefinieerd is. Wanneer HOME of WCDHOME gedefinieerd is moet men de schijfletter specificeren. Een voorbeeld:

    wcd -x c:/temp -S c:

Specificeer anders geen schijfletter.

    wcd -x /temp -s
-xf BESTAND

Alle paden uit bestand BESTAND uitsluiten van scannen.

Wanneer deze optie gebruikt is zal wcd alle paden genoemd in BESTAND uitsluiten en al hun sub-mappen wanneer wcd een schijf scant. Jokertekens worden ondersteund en vergeleken met absolute paden, een pad per regel. Wees bewust dat wcd spaties aan het begin of einde op een regel niet zal negeren, omdat het geldige tekens zijn in een mapnaam. Optie -xf can meerdere keren gebruikt worden. Wanneer men alle verbannen paden wil uitsluiten van scannen zou het volgende gedaan kunnen worden (voorbeeld voor wcd op Unix):

    wcd -xf ~/.ban.wcd -s

Jokertekens worden ondersteund. Om bijvoorbeeld al uw Subversion mappen met administratieve bestanden uit te sluiten, voeg een regel toe met */.svn.

Optie -xf moet vooraf gaan aan elke scan optie (-s, -S, +S, -A, -E).

-y, --assume-yes

Op alle vragen Ja als antwoord aannemen.

Wcd zal de gebruiker geen ja/nee vraag stellen, maar neemt aan dat de gebruiker ja antwoordt op alle vragen. Dit kan gebruikt worden in combinatie met optie -rmtree. Deze optie moet voorafgaand gebruikt worden aan opties die tot ja/nee vragen kunnen leiden.

-z GETAL

Stel maximum stapelgrootte in op GETAL.

De standaard grootte van de stapel is 10. Stapelwerking kan uitgezet worden door de grootte op 0 in te stellen. Deze optie moet voorafgaand aan elke stapel optie (-, +, =) gebruikt worden. Anders wordt de stapelgrootte teruggezet naar de standaard 10.

Een correcte opdracht is:

    wcd -z 50 -

De nieuwe stapelgrootte zal 50 zijn, wcd gaat een map terug. Een foute opdracht is:

    wcd - -z 50

Wcd gaat een map terug, de stapel krijgt de standaard grootte 10. -z 50 wordt genegeerd.

Voeg deze optie als eerste toe aan uw wcd alias of functie. B.v. voor een POSIX compatibele shell zou dit zijn:

    wcd ()
    {
        wcd.exe -z 50 "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }
-[GETAL]

Map GETAL keer op stapel zetten. Standaard is een.

Ga een map terug. Opdracht wcd - gaat een map terug. Voeg een nummer toe om meer mappen terug te gaan. B.v. opdracht wcd -3. De stapel is cyclisch.

+[GETAL]

Map GETAL keer van stapel halen. Standaard is een.

Ga een map vooruit. Opdracht wcd + gaat een map vooruit. Voeg een nummer toe om meerdere mappen vooruit te gaan. B.v. opdracht wcd +2. De stapel is cyclisch.

=

Stapel tonen.

Gebruik deze optie als u niet meer weet waar u in de stapel zit. De stapel wordt getoond en u kan een nummer kiezen. De huidige plaats in de stapel is gemarkeerd met een sterretje *.

INSTALLATIE

De huidige werkmap in een Unix shell kan alleen veranderd worden door de ingebouwde cd(1) opdracht. Daarom wordt het programma altijd aangeroepen door een functie of alias. De functie of alias leest een script (go-script) in dat gegenereerd is door het wcd programma. Wcd kan alleen werken nadat de functie of alias gedefinieerd is.

Een andere belangrijke invloed op uw installatie is de definitie van de omgevingsvariabelen HOME en WCDHOME. Zie paragraaf OMGEVINGSVARIABELEN.

Installatie voor POSIX type shells

Voor een POSIX shell (ksh, bash, zsh, etc) op Unix, Linux, Cygwin, of MSYS, voeg de volgende functie toe aan het shell opstartbestand (b.v. Bash gebruikt $HOME/.bashrc):

    wcd ()
    {
        <PAD>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }

Vervang PAD door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell.

De locatie van het go-script wcd.go is anders per shell.

Wcd voor DJGPP DOS bash heeft een andere functie nodig. Het go-script wordt niet in map bin geschreven, en wanneer WCDHOME en HOME beide niet gedefinieerd zijn wordt het go-script geschreven in c:/.

    wcd ()
    {
        <PAD>/wcd.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

De WinZsh versie van wcd is ook een beetje anders. Geen bin map.

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

Zie paragraaf BESTANDEN voor meer informatie.

Installatie voor C-achtige shells (csh, tcsh)

Voeg de volgende alias toe aan het shell opstartbestand $HOME/.cshrc of $HOME/.tcshrc:

    if ( ${?WCDHOME} ) then
        alias wcd "<PAD>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "<PAD>/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

Vervang PAD door de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Laad de shell initialisatiebestanden opnieuw of start een nieuwe shell.

Windows Opdrachtprompt versie

Pak het zip-bestand uit en voeg map bin toe aan omgevingsvariabele PATH.

In Windows Opdrachtprompt kan een Windows programma niet de huidige werkmap veranderen, maar een .bat bestand kan dat wel. Het batch script wcd.bat draait het wcd programma dat een nieuw batch script wcdgo.bat genereert. Daarna start wcd.bat wcdgo.bat die feitelijk de map verandert.

Windows VISTA en hoger

In een Windows VISTA en hoger Opdrachtprompt kan men beperkte toegang hebben tot mappen. Om toegang tot meer mappen te verkrijgen heeft men beheerdersrechten nodig. U kunt een Opdrachtprompt met beheerdersrechten verkrijgen door rechts te klikken op het Opdrachtprompt icoon en dan te selecteren Als Administrator uitvoeren.

Windows PowerShell versie

Voeg de volgende functie toe aan uw PowerShell gebruikersprofiel. De locatie van dit profiel is opgeslagen in de $profile variabele. Het is vereist dat omgevingsvariabele HOME of WCDHOME gedefinieerd is.

    function wcd
    {
        <PAD>\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

Vervang PAD met de locatie waar het uitvoerbare wcd bestand geïnstalleerd is. Start een nieuwe PowerShell. Wcd voor PowerShell ondersteund alleen de bestandssysteem 'provider'. Geen andere 'providers'.

OS/2 Opdrachtprompt versie

In een OS/2 Opdrachtprompt (cmd.exe) kan een OS/2 programma niet de huidige werkmap veranderen. Dat is waarom wcd een opdracht-script genereert wcdgo.cmd welke uitgevoerd moet worden in de huidige shell. Het script wcd.cmd voert eerst wcdos2.exe uit, die vervolgens het wcdgo.cmd script creëert. Daarna voert wcd.cmd het wcdgo.cmd script uit.

LOKALISATIE

LANG

The primaire taal wordt geselecteerd via de omgevingsvariabele LANG. De variabele LANG bestaat uit verschillende onderdelen. Het eerste deel is in kleine letters de taalcode. Het tweede deel is optioneel en is de landcode in hoofdletters, voorafgegaan door een liggend streepje. Er is ook een optioneel derde deel: de tekencodering, voorafgegaan door een punt. Enkele voorbeelden voor een POSIX-shell:

    export LANG=nl               Nederlands
    export LANG=nl_NL            Nederlands, Nederland
    export LANG=nl_BE            Nederlands, België
    export LANG=es_ES            Spaans, Spanje
    export LANG=es_MX            Spaans, Mexico
    export LANG=en_US.iso88591   Engels, VS, Latin-1 codering

Voor een complete lijst van taal- en landcodes zie de gettext(1) handleiding: http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes Op Unix-systemen kunt u de opdracht locale(1) gebruiken om specifieke taalregio-informatie te verkrijgen.

LANGUAGE

Met de omgevingsvariabele LANGUAGE kunt u een prioriteitenlijst specificeren van talen, gescheiden door dubbele punten. Dos2unix geeft voorrang aan LANGUAGE boven LANG. Bijvoorbeeld, eerst Nederlands en dan Duits: LANGUAGE=nl:de. U moet eerst lokalisatie in werking stellen, door het instellen van LANG of LC_ALL op een waarde ongelijk aan C, voordat u een talen-prioriteitenlijst kunt gebruiken via de variabele LANGUAGE. Zie ook de gettext(1) handleiding: http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

Als u een taal kiest die niet beschikbaar is, worden de standaard Engelse berichten gebruikt.

WCDLOCALEDIR

Met de omgevingsvariabele WCDLOCALEDIR kan de LOCALEDIR die ingesteld werd tijdens compilatie worden overstemd. LOCALEDIR wordt gebruikt om de taalbestanden te vinden. De GNU standaardwaarde is /usr/local/share/locale. Door wcd -V te typen zal wcd de gebruikte LOCALEDIR laten zien.

Als u wcd geïnstalleerd heeft in een andere map dan de standaard map kan het nodig zijn om omgevingsvariabele WCDLOCALEDIR te definiëren om te wijzen naar de locale map.

Een voorbeeld voor Windows cmd:

    set WCDLOCALEDIR=c:/my_prefix/share/locale

Een voorbeeld voor een POSIX shell:

    export WCDLOCALEDIR=$HOME/share/locale
LC_COLLATE

Wanneer er meerdere maptreffers zijn presenteert wcd een gesorteerde lijst. Het sorteren hangt af van de lokalisatie instellingen. Wanneer de omgevingsvariabele LANG ingesteld is worden de treffers gesorteerd als in een woordenboek of telefoonboek in die taal. Bijvoorbeeld punten en streepjes worden genegeerd, of letters e met en zonder accent zijn gelijk, of sortering is ongevoelig voor hoofd en kleine letters.

De sortering geeft prioriteit aan omgevingsvariabele LC_COLLATE boven LANG. Wanneer u LC_COLLATE gelijk maakt aan C of POSIX, wordt sortering met lokalisatie uitgeschakeld. Bijvoorbeeld als u Nederlandse taal wilt, maar geen Nederlandse sortering, dan kunt u iets doen als:

    export LANG=nl_NL
    export LC_COLLATE=C
LC_CTYPE

Met betrekking to tekencodering geeft Wcd prioriteit aan variabele LC_CTYPE boven LANG. Bijvoorbeeld om de tekencodering op UTF-8 te zetten kan de volgende omgevings-instelling gemaakt worden.

    export LC_CTYPE=en_US.UTF-8
LC_ALL

Alle lokalisatie omgevingsvariabelen die beginnen met LC worden overstemd de omgevingsvariabele LC_ALL wanneer die ingesteld is. Wcd geeft prioriteit aan LC_ALL boven LC_COLLATE en LC_CTYPE.

WINDOWS CODETABELLEN

Er zijn twee groepen van codetabellen, DOS codetabellen (OEM) en Windows codetabellen (ANSI). De standaard codering voor Windows, wanneer geconfigureerd met westerse regionale instellingen, is ANSI CP1252. Windows programma's, bijvoorbeeld kladblok, gebruiken deze standaard systeem ANSI codetabel. De Windows Opdrachtprompt gebruikt standaard een OEM codetabel (CP437 of CP850) voor compatibeliteit met DOS programma's. Als u een DOS versie van Wcd in een Windows Opdrachtprompt gebruikt zal het werken, vanwege de DOS codetabel. Maar de DOS versie van wcd ontbeert ondersteuning voor lange mapnamen en netwerkschijven op Windows.

De Windows versie van wcd is een echt Windows programma en zal de Windows systeem ANSI codetabel gebruiken. Dus op een Westers regionale Windows zal het de codetabel CP1252 gebruiken voor directory namen en berichten. Om een consistente uitvoer te verkrijgen, onafhankelijk van de ingestelde codetabel, vertalen alle Windows versies van wcd ANSI uitvoer naar Unicode uitvoer in de Opdrachtprompt en PowerShell.

Het Opdrachtprompt rastertypefont ondersteunt alleen de originele OEM codetabel van Windows, dus u moet het Opdrachtprompt font veranderen naar Lucida Console om Unicode (en ANSI) tekens correct te laten verschijnen.

Niet-Unicode versies van Wcd voorafgaande aan versie 5.2.0 gebruiken gewone ANSI uitvoer. Voor deze oude versie moet de codetabel van de Opdrachtprompt gelijk gemaakt worden aan de systeem codetabel (naar 1252) om wcd voor Windows goed te laten werken met speciale tekens zoals geaccentueerde tekens of een euroteken.

De Windows systeem codetabel kan veranderd worden via het Configuratiescherm Klok, taal en land/regio opties. De Windows Opdrachtprompt codetabel wordt veranderd met de chcp opdracht.

Wanneer u wcd -V typet, wordt de actuele tekencodering getoond die door wcd gebruikt wordt. Type opdracht chcp op de actieve codetabel van de Opdrachtprompt te tonen.

UNICODE

Wcd heeft optioneel ondersteuning voor Unicode. Om te zien of wcd gebouwd is met Unicode ondersteuning type wcd -V. Als uw terminal en font het ondersteunen, zou u een euroteken en Chinese tekens (betekenis: "Chinees") moeten zien.

Wcd is zacht omgezet naar Unicode. In de kern behandelt wcd alle data als een stroom van bytes. Alleen de regels die op het scherm geprint worden, worden terstond omgezet naar Unicode brede tekens. Wcd hangt volledig af van libc functies en heeft geen UTF-8 specifieke broncode. Zie ook http://www.cl.cam.ac.uk/~mgk25/unicode.html

Wcd heeft optioneel ondersteuning voor Unicode vergelijkingen met normalisatie. Om er achter te komen of Wcd normalisatie ondersteunt type wcd -V. Wcd met Unicode normalisatie ondersteuning vergelijkt Unicode namen gebaseerd op compatibele gelijkwaardigheid. Zonder Unicode normalisatie worden treffen namen een gelijke wanneer ze binair gelijk zijn. Zie ook http://en.wikipedia.org/wiki/Unicode_normalization

UTF-8 op Unix/Linux

Om UTF-8 tekens te zien moet uw terminal ook UTF-8 ondersteunen. De xterm versie die meekomt met XFree86 4.0 of hoger bevat UTF-8 ondersteuning. Om het te activeren, start xterm(1) in een UTF-8 taalregio en gebruik een font met iso10646-1 codering, bijvoorbeeld met

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

Moderne uitgaves van GNU/Linux ondersteunen standaard UTF-8. Andere multi-byte tekencoderingen zouden ook moeten werken, maar dat is niet getest.

Wcd veronderstelt dat de boomdata-bestanden gecodeerd zijn in de lokale tekencodering. Er worden geen Byte Order Marks geschreven in de boomdata-bestanden.

UTF-16 op Windows

Op Windows wordt Unicode in alle versies van PowerShell ondersteund, en in Windows Opdrachtprompt op Windows 7 (of hoger). Unicode werkt ook in Take Command of TCC/LE gemaakt door JP Software, dat gebruikt kan worden op oudere Windows versies (XP/Vista).

In Windows zijn alle mapnamen op schijf gecodeerd in UTF-16 Unicode. Voor niet-Unicode Windows programma's worden de tekens vertaald naar de standaard ANSI codetabel. Voor tekens die geen onderdeel zijn van de regionale instelling is de vertaling niet mogelijk en niet-Unicode programma's printen in plaats daarvan een vraagteken of een verkeerd teken.

Wcd met Unicode ondersteuning leest de UTF-16 gecodeerde mappennamen en zet ze intern om naar UTF-8. Alle boomdata-bestanden zijn gecodeerd in UTF-8 en niet compatibel met de niet-Unicode versie van Wcd. Wcd zal een go-script aanmaken gecodeerd in UTF-8.

Alle versies van Windows PowerShell zijn in staat om in UTF-8 gecodeerde scripts te draaien, indien het script is voorzien van een UTF-8 BOM.

Sinds Windows 7 is het mogelijk om in Windows Opdrachtprompt van map te veranderen met een batch script naar een map met Unicode tekens in de naam. De mapnaam moet gecodeerd zijn in UTF-8, en het batch script moet geen BOM bevatten. De actieve codetabel van de Opdrachtprompt moet gezet zijn op 65001 (UTF-8) vooraf aan de cd opdracht. Wcd voor Opdrachtprompt creëert zo'n go-script wcdgo.bat. Eerst verandert het de codetabel naar 65001, verandert dan de map, en tenslotte wordt de codetabel terug gezet naar de originele waarde.

U moet het font instellen op True Type Lucida Console (niet raster type font) wanneer de letters niet correct verschijnen.

De niet-Unicode Windows versie van Wcd kan Unicode boomdata-bestanden lezen sinds versie 5.2.0, indien er een Byte Order Mark (BOM) in het bestand zit (zie http://en.wikipedia.org/wiki/Byte_order_mark), maar kan niet veranderen naar mappen met Unicode tekens in de naam die geen onderdeel zijn van de standaard systeem ANSI codetabel. De Unicode Windows versie van wcd schrijft een BOM in het UTF-8 gecodeerde boomdata-bestand sinds versie 5.2.0, wat ze ook leesbaar maakt voor kladblok.

UTF-8 in Cygwin

Cygwin ondersteunt Unicode sinds versie 1.7. De Cygwin laag zorgt er voor dat de Windows UTF-16 Unicode namen vertaald worden naar UTF-8. Dus programma's, zoals wcd, hoeven hier niet bewust van te zijn en kunnen werken gebruikmakend van UTF-8 codering als op Unix/Linux. Stel de tekencodering in op UTF-8 met de LANG of LC_CTYPE omgevingsvariabele. Het kan nodig zijn dat u de schijven opnieuw moet scannen. U dient het font in te stellen op True Type Lucida Console (niet raster type font) wanneer u de standaard Cygwin console gebruikt.

De Cygwin versie gedraagt zich exact gelijk aan de Unix versie van wcd. Er wordt geen BOM geschreven in de boomdata-bestanden, en er wordt aangenomen dat ze gecodeerd zijn in de Cygwin lokalisatie tekencodering.

BESTANDEN

Wanneer omgevingsvariabele WCDHOME ingesteld is zal wcd WCDHOME gebruiken in plaats van HOME. Alle *.wcd bestanden zijn tekstbestanden. Ze kunnen bewerkt worden met een tekstbewerker. De Windows Opdrachtprompt versie gedraagt zich als de DOS versie. De Cygwin versie van wcd gedraagt zich als de Unix versie.

wcd.exe

Het programma. In Unix shells wordt het programma altijd aangeroepen door een functie of alias, omdat de huidige werkmap alleen veranderd kan worden door de ingebouwde cd opdracht. Zie ook paragraaf INSTALLATIE.

standaard boomdata-bestand

Dit is het standaard boomdata-bestand waarin wcd zoekt naar treffers. Wanneer het niet leesbaar is zal wcd een nieuwe aanmaken.

    DOS: \treedata.wcd of %HOME%\treedata.wcd
    Unix: $HOME/.treedata.wcd
extra boomdata-bestand

Een optioneel extra boomdata-bestand. Wanneer het bestaat en leesbaar is zal wcd ook in dit bestand proberen treffers te vinden.

    DOS: \extra.wcd of HOME%\extra.wcd
    Unix: $HOME/.extra.wcd
ban-bestand

In dit optionele bestand plaatst wcd de verbannen paden. Zie optie -b. Jokertekens worden ondersteund.

    DOS: \ban.wcd of %HOME%\ban.wcd
    Unix: $HOME/.ban.wcd
alias-bestand

Optioneel bestand met wcd aliassen. Zie optie -I.

    DOS: \alias.wcd of %HOME%\alias.wcd
    Unix: $HOME/.alias.wcd
stapel-bestand

In dit bestand slaat wcd zijn stapel op. De schijfletter kan veranderd worden met de -d optie.

    DOS: c:\stack.wcd of %HOME%\stack.wcd
    Unix: $HOME/.stack.wcd

De naam van het stapelbestand kan veranderd worden met omgevingsvariabele WCDSTACKFILE. Zie paragraaf OMGEVINGSVARIABELEN.

go-script

Dit is het shell-script dat wcd elke keer creëert. Het wordt ingelezen via een functie of een alias. De schijfletter kan gewijzigd worden met de -d optie. Wegens voorgeschiedenis redenen wordt het standaard geplaatst in $HOME/bin op Unix systemen. De map van dit bestand kan gewijzigd worden met de optie -G.

    DOS bash: c:/wcd.go of $HOME/wcd.go
    Windows Command Prompt: c:\wcdgo.bat of %HOME%\wcdgo.bat
    Windows PowerShell: $env:HOME\wcdgo.ps1
    WinZsh: $HOME/wcd.go
    Cygwin/MSYS: $HOME/bin/wcd.go
    OS/2 Opdrachtprompt: c:\wcdgo.cmd of %HOME%\wcdgo.cmd
    Unix: $HOME/bin/wcd.go
relatieve boomdata-bestand

Tekstbestand met relatieve paden vanaf MAP. Zie opties +S, -n en +n.

    DOS: <path>\rtdata.wcd
    Unix: <path>/.rtdata.wcd

OMGEVINGSVARIABELEN

HOME

Wcd gebruikt standaard omgevingsvariabele HOME om te bepalen waar z'n bestanden op te slaan. Zie ook paragraaf BESTANDEN. Dit kan overstemd worden met omgevingsvariabele WCDHOME.

HOME bepaalt ook waar te beginnen met het scannen van de schijf wanneer optie -s gebruikt wordt. Dit kan overstemd worden met omgevingsvariabele WCDSCAN.

Voor de Unix, Cygwin, Windows PowerShell, WinZsh en MSYS versie is het vereist dat HOME of WCDHOME ingesteld is. Voor de andere versies van wcd is het gebruik van deze variabelen optioneel.

Wanneer HOME ingesteld is op DOS/Windows, zal wcd al zijn bestanden (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in map HOME plaatsen. Het gedrag van wcd is dan gelijk aan de Unix versie van wcd. Wcd zal de schijf standaard scannen vanaf HOME. Schijven worden niet automatisch gescant door er naar te veranderen. Dat moet wcd expliciet opgedragen worden. B.v.:

    wcd -S c: -A d: -A e:

Vergelijken van mappen is nu globaal over alle gescande schijven.

WCDHOME

Omgevingsvariabele WCDHOME kan gebruikt worden om de locatie van wcds bestanden te wijzigen. Wanneer zowel HOME als WCDHOME ingesteld zijn, zal WCDHOME gebruikt worden in plaats van HOME.

In wcd versies voorafgaand aan 5.1.5 veranderde WCDHOME ook de standaard scan-map. Dit is veranderd. Sinds versie 5.1.5 verandert WCDHOME niet de standaard scan-map. Zie optie -s. Gebruik vanaf versie 5.1.5 omgevingsvariabele WCDSCAN om de standaard scan-map te overstemmen.

Voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:

    set WCDHOME=C:\Users\erwin\wcd

Een voorbeeld voor POSIX type shells:

    export WCDHOME="$HOME/.wcd"

Een voorbeeld voor Csh type shells:

    setenv WCDHOME "$HOME/.wcd"
WCDSCAN

Gebruik omgevingsvariabele WCDSCAN om de standaard scan-map HOME te overstemmen. Gebruik een door dubbele punten gescheiden lijst (Unix) om meer dan een map te definiëren. Gebruik op DOS/Windows een lijst gescheiden door puntkomma's.

Voorbeelden voor DOS, Windows, OS/2 Opdrachtprompt:

    set WCDSCAN=C:\Users\erwin;D:\data

    set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX

Een voorbeeld voor POSIX type shells:

    export WCDSCAN="$HOME:/projectdisk/projectX"

Een voorbeeld voor Csh type shells:

    setenv WCDSCAN "$HOME:/projectdisk/projectX"
WCDFILTER

Specificeer filters met omgevingsvariabele WCDFILTER. Alle mappen die niet treffen met het filter worden genegeerd. Een lijst kan gespecificeerd worden met het shell pad scheidingsteken. Gelijk aan het specificeren van de PATH variabele. Hoofdlettergevoeligheid wordt bepaald door het besturingssysteem.

Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:

    set WCDFILTER=projects;doc

Een voorbeeld voor POSIX type shells:

    export WCDFILTER="projects:doc"

Een voorbeeld voor Csh type shells:

    setenv WCDFILTER "projects:doc"
WCDBAN

De paden gespecificeerd met omgevingsvariabele WCDBAN worden verbannen door wcd. Zie ook optie -b. Specificeer een lijst van paden met het shell PATH scheidingsteken.

WCDEXCLUDE

De paden gespecificeerd met omgevingsvariabele WCDEXCLUDE worden uitgesloten door wcd. Zie ook opties -x en -xf. Specificeer een lijst van paden met het shell PATH scheidingsteken.

Een voorbeeld voor DOS, Windows, OS/2 Opdrachtprompt:

    set WCDEXCLUDE=*/windows;*/temp;*CVS

Een voorbeeld voor POSIX type shells:

    export WCDEXCLUDE="/dev:/tmp:*CVS"

Een voorbeeld voor Csh type shells:

    setenv WCDEXCLUDE "/dev:/tmp:*CVS"
WCDUSERSHOME

Stel de basis in de de thuismappen van de gebruikers. Op DOS/Windows is de standaard waarde \\users. Op Unix/Cygwin is de standaard waarde /home. Deze variabele wordt gebruikt om boomdata-bestanden van andere gebruikers te scannen. Zie ook opties -u en +u. In gedetailleerde uitvoer-modus zal wcd alle filters, verbanningen en uitsluitingen tonen. Zie ook optie -v.

WCDSTACKFILE

Wcd geeft prioriteit aan WCDSTACKFILE boven de standaard stapelbestandsnaam (zie paragraaf BESTANDEN). Met deze variabele kan elke shell (of terminal) zijn eigen privé stapel voor mappen hebben.

Om een uniek tijdgebaseerde YYYYMMDD-HHMMSS bestand voor elke geopende interactieve shell te gebruiken.

    export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)

Voor een stapel per xterm(1), gebruik de xterm omgevingsvariabele WINDOWID:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID

Voor GNU screen(1), gebruik een stapel per scherm:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
TERMINFO

Wanneer omgevingsvariabele TERMINFO ingesteld is, controleert wcd met ncurses interface of er lokale terminal definities zijn voor op de standaard plek te kijken. Dit is nuttig wanneer terminal definities niet op een standaard plaats staan. Veel gebruikte standaard plaatsen zijn /usr/lib/terminfo en /usr/share/terminfo.

PDC_RESTORE_SCREEN

Wcd met PDCurses interface herkent de omgevingsvariabele PDC_RESTORE_SCREEN. Wanneer deze omgevingsvariabele ingesteld is, zal PDCurses een kopie maken van de inhoud van het scherm op het moment dat wcd gestart is. Wanneer wcd afsluit zal het scherm hersteld worden. Een voorbeeld voor Windows Opdrachtprompt:

    set PDC_RESTORE_SCREEN=1

Wcd laat maar een kleine buffer opslaan. Daardoor is het niet altijd mogelijk om alles te herstellen. Er kan wat rommel in de console geprint worden als wcd afsluit wanneer u een grote bufferbreedte heeft ingesteld.

SHELL

Het printen van #!$SHELL op de de eerste regel van het go-script voor POSIX type shell of C shell is nodig voor 8 bit tekens. Sommige shells denken anders dat het go-script een binair bestand is en willen het niet inlezen. In Cygwin Bash moet de variabele SHELL ingesteld zijn met de export opdracht, anders kan wcd de variabele niet lezen.

BASH

Wcd voor DOS bash gebruikt $BASH in plaats van $SHELL, omdat $SHELL verwijst naar de DOS Opdrachtprompt. Het kan nodig zijn dat men $BASH met een export opdracht moet definiëren, anders kan wcd de variabele niet lezen.

ZIE OOK

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

AUTEURS

Wcd is geschreven door Erwin Waterlander <waterlan@xs4all.nl>

Project beginpagina http://waterlan.home.xs4all.nl/

SourceForge: http://sourceforge.net/projects/wcd/

Freecode: http://freecode.com/projects/wcd/

De opmaak van de handleiding was verzorgd door Jari Aalto <jari.aalto@cante.net>.

NCD was oorspronkelijk geschreven door Brad Kingsbury voor Peter Norton's "Norton Utilities" omstreeks 1987. Zie ook http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml

wcd-5.2.5/src/man/uk/0000775000175000017500000000000012345660655014513 5ustar waterlanwaterlanwcd-5.2.5/src/man/uk/man1/0000775000175000017500000000000012345660661015344 5ustar waterlanwaterlanwcd-5.2.5/src/man/uk/man1/wcd.po0000664000175000017500000044674312345115600016467 0ustar waterlanwaterlan# Ukrainian translation of wcd-man # Copyright 2014 Erwin Waterlander (msgids) # This file is distributed under the same license as the wcd package. # # Yuri Chornoivan , 2014. msgid "" msgstr "" "Project-Id-Version: wcd-man-5.2.5-beta12\n" "POT-Creation-Date: 2014-05-27 23:08+0300\n" "PO-Revision-Date: 2014-06-08 10:20+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.5\n" #. type: =head1 #: wcd.pod:43 msgid "NAME" msgstr "НАЗВА" #. type: textblock #: wcd.pod:45 msgid "wcd - Wherever Change Directory" msgstr "wcd - довільна зміна каталогу (Wherever Change Directory)" #. type: textblock #: wcd.pod:47 msgid "chdir for DOS and Unix" msgstr "засіб для зміни каталогу (chdir) у DOS та Unix" #. type: =head1 #: wcd.pod:49 msgid "SYNOPSIS" msgstr "КОРОТКИЙ ОПИС" #. type: verbatim #: wcd.pod:51 #, no-wrap msgid "" " wcd [options] [directory]\n" "\n" msgstr "" " wcd [параметри] [каталог]\n" "\n" #. type: =head1 #: wcd.pod:53 msgid "DESCRIPTION" msgstr "ОПИС" #. type: =head2 #: wcd.pod:55 msgid "Overview" msgstr "Огляд" #. type: textblock #: wcd.pod:57 msgid "Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search." msgstr "Wcd — програма, що керується з командного рядка і надає змогу швидко змінювати каталоги. Вона економить час на введенні даних з клавіатури. Достатньо ввести лише частину назву каталогу і wcd перейде до цього каталогу. У wcd передбачено можливості пришвидшення вибору потрібного варіанта з декількох, створення альтернативних назв каталогів та блокування каталогів. Крім того, у wcd ви зможете скористатися повноекранною інтерактивною навігацією деревом каталогів з швидким пошуком." #. type: textblock #: wcd.pod:63 msgid "Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in I, for DOS in 1987, published by Peter Norton." msgstr "Ідеї wcd часткового запозичено з Norton Change Directory (NCD). Першу версію NCD у I для DOS було випущено 1987 року компанією Пітера Нортона (Peter Norton)." #. type: textblock #: wcd.pod:66 msgid "Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system." msgstr "Wcd було портовано на різні командні оболонки: command.com для DOS, cmd.exe та PowerShell для Windows, cmd.exe для OS/2 і командні оболонки Unix, зокрема Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) та C (csh), а також інші оболонки, що працюють у будь-якій операційній системі." #. type: textblock #: wcd.pod:71 msgid "Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section LOCALIZATION." msgstr "У Wcd передбачено підтримку 8-бітових наборів символів на усіх системах та додаткову підтримку Unicode. Докладніше про це у розділі «ЛОКАЛІЗАЦІЯ»." #. type: textblock #: wcd.pod:74 msgid "See section INSTALLATION how to setup wcd for personal use." msgstr "Щоб дізнатися більше про налаштовування wcd для особистого користування, зверніться до розділу «ВСТАНОВЛЕННЯ»." #. type: =head2 #: wcd.pod:76 msgid "Basic use" msgstr "Основні прийоми використання" #. type: textblock #: wcd.pod:78 msgid "By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name." msgstr "Типово (якщо не використано символів-замінників), wcd шукає каталог, назва якого починається з введених вами символів." #. type: textblock #: wcd.pod:81 msgid "For instance this command will change to directory to the current user's C
:" msgstr "Наприклад, вказана нижче команда змінить каталог на каталог поточного користувача C
:" #. type: verbatim #: wcd.pod:84 #, no-wrap msgid "" " wcd Desk\n" "\n" msgstr "" " wcd Desk\n" "\n" #. type: textblock #: wcd.pod:86 msgid "When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one)." msgstr "Якщо буде виявлено декілька відповідників, wcd покаже користувачеві список цих відповідників. Після цього користувач зможе вибрати потрібний варіант декількома натисканнями клавіш (найчастіше, достатньо одного натискання)." #. type: =head2 #: wcd.pod:90 msgid "Wildcards" msgstr "Шаблони-замінники" #. type: textblock #: wcd.pod:92 msgid "Wcd supports following wildcards:" msgstr "У wcd передбачено підтримку таких символів-замінників:" #. type: verbatim #: wcd.pod:94 #, no-wrap msgid "" " * matches any sequence of characters (zero or more)\n" " ? matches any character\n" " [SET] matches any character in the specified set,\n" " [!SET] or [^SET] matches any character not in the specified set.\n" "\n" msgstr "" " * відповідає будь-якій послідовності символів (нульової або більшої довжини)\n" " ? відповідає довільному символу\n" " [НАБІР] відповідає довільному символу з вказаного набору,\n" " [!НАБІР] або [^НАБІР] відповідає будь-якому символу, що не належить до вказаного набору.\n" "\n" #. type: textblock #: wcd.pod:99 msgid "A set is composed of characters or ranges; a range looks like I as in C<0-9> or C. The C<[0-9a-zA-Z_]> is the minimal set of characters allowed in the C<[..]> pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of C<[]*?!^-\\> inside or outside a C<[..]> construct and match the character exactly, precede the character with a backslash (C<\\>) marker." msgstr "Набір символів може складатися з окремих символів або діапазонів символів. Діапазон слід вказувати так: I<символ дефіс символ>, наприклад, C<0-9> або C. Мінімальним набором символів у конструкції C<[..]> є C<[0-9a-zA-Z_]>. Можна використовувати символи з розширеного набору (тобто 8-бітові символи), якщо у системі передбачено підтримку цих символів. Щоб придушити використання символів з набору C<[]*?!^-\\> для побудови синтаксичних лексем у межах конструкцій C<[..]> тобто їхнього буквального використання, додавайте перед цими символами символ зворотної риски (C<\\>)." #. type: textblock #: wcd.pod:108 msgid "Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with \"top\":" msgstr "Використання символів-замінників надає доступ до досить потужних можливостей з пошуку. Наприклад, за допомогою вказаного нижче виразу можна знайти будь-який каталог, назва якого завершується на «top»:" #. type: verbatim #: wcd.pod:111 #, no-wrap msgid "" " wcd *top\n" "\n" msgstr "" " wcd *top\n" "\n" #. type: textblock #: wcd.pod:113 msgid "Match directories that have \"top\" anywhere in the name:" msgstr "Знайти каталоги, у назві яких будь-де міститься частина «top»:" #. type: verbatim #: wcd.pod:115 #, no-wrap msgid "" " wcd *top*\n" "\n" msgstr "" " wcd *top*\n" "\n" #. type: textblock #: wcd.pod:117 msgid "Match any directory name that begins with \"a\", \"b\" or \"c\":" msgstr "Знайти будь-який каталог, назва якого починається з «a», «b» або «c»:" #. type: verbatim #: wcd.pod:119 #, no-wrap msgid "" " wcd [a-c]*\n" "\n" msgstr "" " wcd [a-c]*\n" "\n" #. type: textblock #: wcd.pod:121 msgid "It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with \"Desk\" and which path matches I<*me/Desk*>." msgstr "Крім того, можна вказати частину шляху до каталогу. У наведеному нижче прикладі wcd шукатиме каталог, назва якого починається з «Desk», шлях якого відповідає шаблону I<*me/Desk*>." #. type: verbatim #: wcd.pod:124 #, no-wrap msgid "" " wcd me/Desk\n" "\n" msgstr "" " wcd me/Desk\n" "\n" #. type: textblock #: wcd.pod:126 msgid "It is allowed to type any kind of expression with slashes and wildcards. E.g.:" msgstr "Можна використовувати будь-який вираз, що містить риски та символи замінники. Приклад:" #. type: verbatim #: wcd.pod:129 #, no-wrap msgid "" " wcd src*/*1?/a*2\n" "\n" msgstr "" " wcd src*/*1?/a*2\n" "\n" #. type: =head2 #: wcd.pod:131 msgid "Other uses" msgstr "Інші варіанти використання" #. type: textblock #: wcd.pod:133 msgid "If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the B<-w> option." msgstr "Якщо у виразі не використано символів-замінників, а wcd знаходить повний відповідник з вказаним шляхом і назвою, wcd типово проігнорує усі відповідники, які могло б бути знайдено з використанням символів-замінників. Типову поведінку програми можна змінити за допомогою параметра B<-w>." #. type: textblock #: wcd.pod:136 msgid "The interactive directory tree browser can be started by using option B<-g>." msgstr "Інтерактивний навігатор ієрархією каталогів можна запустити за допомогою параметра B<-g>." #. type: verbatim #: wcd.pod:138 #, no-wrap msgid "" " wcd -g\n" "\n" msgstr "" " wcd -g\n" "\n" #. type: textblock #: wcd.pod:140 msgid "Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network." msgstr "Wcd створює файл даних ієрархії (treedata) у каталогах, звідки виконується пошук. У системах Unix та Windows wcd додає символічні посилання на файл treedata під час сканування диска, але не переходить за створеними посиланнями. Перехід за посиланнями може призвести до зациклювання wcd у ієрархії каталогів або сканування великих масивів каталогів у мережі." #. type: textblock #: wcd.pod:145 msgid "Wcd can also change to directories that are not in the treedata file. E.g.:" msgstr "Крім того, wcd може переходити до каталогів, яких немає у файлі treedata. Приклад:" #. type: verbatim #: wcd.pod:147 #, no-wrap msgid "" " wcd ..\n" "\n" msgstr "" " wcd ..\n" "\n" #. type: textblock #: wcd.pod:149 msgid "If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option B<-k>." msgstr "Якщо wcd буде виявлено відповідник критерію пошуку, але програма не зможе перейти до цього каталогу, буде виконано спробу вилучення каталогу з типового файла treedata, але не з додаткового файла treedata. Див. також параметр B<-k>." #. type: textblock #: wcd.pod:153 msgid "Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options B<-z>, B<->, B<+> and B<=>." msgstr "Wcd зберігає на диску стос переходів за каталогами. Типовим обсягом стосу є 10. Перехід стосом здійснюється циклічно. Див. параметри B<-z>, B<->, B<+> та B<=>." #. type: textblock #: wcd.pod:157 msgid "In multi-user environments option B<-u> can be used to change to directories of other users." msgstr "У середовищах з декількома користувачами для переходу до каталогів, що належать іншим користувачам, можна скористатися параметром B<-u>." #. type: textblock #: wcd.pod:161 msgid "On DOS and Windows systems it does not matter if you use a slash \"/\" or a backslash \"\\\" as a directory separator." msgstr "У операційних системах DOS і Windows можна використовувати як роздільник між каталогами як символ «/», так і символ «\\»." #. type: textblock #: wcd.pod:164 msgid "It is possible on DOS and Windows systems to change drive and directory in one go by preceding the directory name with the drive name." msgstr "У системах DOS та Windows передбачено можливість переходу до каталогу на іншому диску. Для цього достатньо перед назвою каталогу на диску вказати назву диска." #. type: verbatim #: wcd.pod:167 #, no-wrap msgid "" " wcd d:games\n" "\n" msgstr "" " wcd d:games\n" "\n" #. type: =head2 #: wcd.pod:171 msgid "Windows UNC paths" msgstr "Шляхи UNC Windows" #. type: textblock #: wcd.pod:173 msgid "The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB LAN UNC paths without drive letter such as C<\\\\servername\\sharename>. Wcd for Windows Command Prompt makes use of the \"pushd\" command to automatically map a UNC path to a drive letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current working directory can be a UNC path." msgstr "У версіях для Windows (для командного рядка, PowerShell, MSYS, zsh, cygwin) передбачено підтримку шляхів UNC LAN Windows для SMB без літер дисків, наприклад C<\\\\назва_сервера\\назва_ресурсу>. У wcd для командного рядка Windows для автоматичного прив’язування шляху UNC до літери диска використовується команда «pushd». У In Windows PowerShell, MSYS, zsh та Cygwin передбачено повноцінну підтримку шляхів UNC. Шлях UNC може бути поточним робочим каталогом." #. type: =head2 #: wcd.pod:181 msgid "Interfaces" msgstr "Інтерфейси" #. type: textblock #: wcd.pod:183 msgid "Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time." msgstr "У wcd передбачено три різні інтерфейси вибору потрібного варіанта зі списку відповідників. Інтерфейс можна вибрати під час збирання програми." #. type: textblock #: wcd.pod:186 msgid "The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by . This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable." msgstr "Першим інтерфейсом є звичайні інтерфейси введення та виведення (stdin/stdout). До термінала буде виведено нумерований список варіантів. Користувач зможе вибрати відповідний варіант введенням його номера з наступним натисканням клавіші . У цьому інтерфейсі не передбачено можливостей гортання для довгих списків. Для цього доведеться користуватися можливостями з гортання термінала або консолі. Код цього інтерфейсу доволі малий і портований." #. type: textblock #: wcd.pod:192 msgid "The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the B<-N> option." msgstr "Другий інтерфейс побудовано на основі бібліотеки conio. У ньому передбачено можливості гортання. Користувачу буде показано список з літерним позначенням пунктів. Для вибору пункту у списку достатньо натиснути клавішу з відповідною літерою. Цей інтерфейс працює швидше, оскільки треба натискати менше клавіш. Після вибору варіанта, якщо це можливо, зображення на екрані буде відновлено до стану перед показом варіантів. Якщо користувач надає перевагу цифровому позначенню пунктів, можна скористатися параметром B<-N>." #. type: textblock #: wcd.pod:199 msgid "The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a vim(1) like navigation and search method. It can be activated with option B<-g>." msgstr "Третій інтерфейс побудовано на основі бібліотеки curses. Він подібний до інтерфейсу на основі conio. Версія wcd на основі curses має додатковий «графічний» інтерфейс. За його допомогою користувач зможе вибрати каталог у повноекранному інтерактивному навігаторі ієрархією каталогів. Передбачено навігацію та пошук у стилі vim(1). Задіяти цей інтерфейс можна за допомогою параметра B<-g>." #. type: textblock #: wcd.pod:205 msgid "By using the B<-o> option one can always fall back to the stdin/stdout interface." msgstr "За допомогою параметра командного рядка B<-o> програму можна завжди перевести до стандартного інтерфейсу stdin/stdout." #. type: =head1 #: wcd.pod:208 msgid "OPTIONS" msgstr "ПАРАМЕТРИ" #. type: =item #: wcd.pod:212 msgid "B<-a>" msgstr "B<-a>" #. type: textblock #: wcd.pod:214 msgid "Add current path to the default treedata file." msgstr "Додати поточний шлях до типового файла ієрархії." #. type: textblock #: wcd.pod:216 msgid "Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases." msgstr "За допомогою цього параметра можна швидко додати поточний шлях до типового файла ієрархії каталогів. Повторне сканування усього диска у певних випадках може бути досить тривалою справою." #. type: =item #: wcd.pod:219 msgid "B<-aa>" msgstr "B<-aa>" #. type: textblock #: wcd.pod:221 msgid "Add current and all parent paths to the default treedata file." msgstr "Додати поточний і усі батьківські шляхи до типового файла ієрархії каталогів (treedata)." #. type: =item #: wcd.pod:223 msgid "B<-A PATH>" msgstr "B<-A ШЛЯХ>" #. type: textblock #: wcd.pod:225 msgid "Scan directory tree from I and append to the default treedata file. Examples:" msgstr "Сканувати ієрархію каталогів, починаючи з каталогу I<ШЛЯХ>, і дописати усі виявлені каталоги до файла ієрархії каталогів (treedata). Приклади:" #. type: verbatim #: wcd.pod:228 #, no-wrap msgid "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" msgstr "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:232 msgid "On Windows one can scan all shared directories of a Windows LAN server by typing something like: C." msgstr "У Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: C." #. type: textblock #: wcd.pod:236 msgid "See also option B<-S> and B<-s> and B<-E>." msgstr "Див. також параметри B<-S>, B<-s> та B<-E>." #. type: =item #: wcd.pod:238 msgid "B<-b>" msgstr "B<-b>" #. type: textblock #: wcd.pod:240 msgid "Ban current path." msgstr "Заблокувати поточний шлях." #. type: textblock #: wcd.pod:242 msgid "Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories." msgstr "Wcd додає поточний шлях до файла блокування. Це означає, що wcd ігноруватиме усі відповідники з поточного каталогу і усіх його підкаталогів." #. type: textblock #: wcd.pod:245 msgid "The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path." msgstr "Файл блокувань (ban) можна редагувати у текстовому редакторі. Передбачено підтримку символів-замінників. Відповідність назв встановлюється за абсолютними шляхами." #. type: textblock #: wcd.pod:248 msgid "Banned paths are not excluded from scanning the disk. To do that use option B<-xf>." msgstr "Заблоковані шляхи не виключаються зі шляхів сканування диска. Щоб виключити заблоковані шляхи, скористайтеся параметром B<-xf>." #. type: =item #: wcd.pod:251 msgid "B<-c, --direct-cd>" msgstr "B<-c, --direct-cd>" #. type: textblock #: wcd.pod:253 msgid "Direct CD mode. By default wcd works as follows:" msgstr "Безпосередній режим CD. Типово, wcd працює так:" #. type: verbatim #: wcd.pod:255 #, no-wrap msgid "" " 1. Try to find a match in the treedata file(s)\n" " 2. If no match, try to open the directory you typed.\n" "\n" msgstr "" " 1. Спробувати знайти відповідник у файлах ієрархії (treedata).\n" " 2. Якщо нічого не знайдено, спробувати відкрити каталог, назву якого було введено.\n" "\n" #. type: textblock #: wcd.pod:258 msgid "In direct CD mode wcd works in reversed order." msgstr "У безпосередньому режимі CD wcd виконує обробку запиту у зворотному порядку." #. type: verbatim #: wcd.pod:260 #, no-wrap msgid "" " 1. Try to open the directory you typed.\n" " 2. If not, try to find a match in the treedata file(s).\n" "\n" msgstr "" " 1. Cпробувати відкрити каталог, назву якого було введено.\n" " 2. Якщо не вдалося, знайти відповідник у файлах ієрархії (treedata).\n" "\n" #. type: =item #: wcd.pod:264 msgid "B<-d DRIVE>" msgstr "B<-d ДИСК>" #. type: textblock #: wcd.pod:266 msgid "Set drive for stack and go file (DOS only)." msgstr "Встановити диск для файла стосу і переходу (лише для DOS)." #. type: textblock #: wcd.pod:268 msgid "The stack file and the go-script are by default stored on drive C: if environment variable I is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options B<->, B<+> and B<=>." msgstr "Типово, файл стосу та скрипт переходу зберігаються на диску C:, якщо не встановлено значення змінної середовища I. Цим параметром можна скористатися, якщо диск C: захищено від запису. Цей параметр слід вказувати перед параметрами роботи зі стосом B<->, B<+> та B<=>." #. type: =item #: wcd.pod:273 msgid "B<-e>" msgstr "B<-e>" #. type: textblock #: wcd.pod:275 msgid "Add current path to the extra treedata file." msgstr "Додати поточний шлях до додаткового файла ієрархії." #. type: textblock #: wcd.pod:277 msgid "Use this option to quickly add the current path to the extra treedata file." msgstr "За допомогою цього параметр можна швидко додати поточний шлях до додаткового файла ієрархії." #. type: =item #: wcd.pod:279 msgid "B<-ee>" msgstr "B<-ee>" #. type: textblock #: wcd.pod:281 msgid "Add current and all parent paths to extra treedata file." msgstr "Додати поточний і усі батьківські шляхи до додаткового файла ієрархії каталогів (treedata)." #. type: =item #: wcd.pod:283 msgid "B<-E PATH>" msgstr "B<-E ШЛЯХ>" #. type: textblock #: wcd.pod:285 msgid "Scan directory tree from I and append to Extra treedata file. See also options B<-A> and B<-S>." msgstr "Сканувати ієрархію каталогів, починаючи з каталогу I<ШЛЯХ>, і дописати усі виявлені каталоги до додаткового файла ієрархії каталогів (treedata). Див. також параметри B<-A> та B<-S>." #. type: =item #: wcd.pod:288 msgid "B<-f FILE>" msgstr "B<-f ФАЙЛ>" #. type: textblock #: wcd.pod:290 msgid "Read treedata file I. Do not read the default treedata file." msgstr "Прочитати файл даних ієрархії каталогів I<ФАЙЛ>. Не виконувати читання з типового файла ієрархії каталогів." #. type: =item #: wcd.pod:292 msgid "B<+f FILE>" msgstr "B<+f ФАЙЛ>" #. type: textblock #: wcd.pod:294 msgid "Read treedata file I in addition to the default treedata file." msgstr "Прочитати дані з файла ієрархії каталогів I<ФАЙЛ> на додачу до даних з типового файла даних ієрархії каталогів." #. type: =item #: wcd.pod:296 msgid "B<-g>" msgstr "B<-g>" #. type: textblock #: wcd.pod:298 msgid "Graphical interface (only in version with curses interface)." msgstr "Графічний інтерфейс (лише у версії з інтерфейсом на основі curses)." #. type: textblock #: wcd.pod:300 msgid "Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a vim(1) like navigation and search method." msgstr "Wcd запускає текстовий «графічний» інтерфейс на основі curses. Користувач може вибрати каталог за допомогою повноекранного інтерактивного навігатора ієрархією каталогів. Передбачено навігацію і пошук у стилі vim(1)." #. type: textblock #: wcd.pod:304 msgid "If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files." msgstr "Якщо рядок пошуку не вказано, wcd показує усю ієрархію каталогів з типового та додаткового файлів даних ієрархії." #. type: textblock #: wcd.pod:307 msgid "If a search string is given the match list is presented as a directory tree." msgstr "Якщо рядок пошуку вказано, список відповідників буде показано як ієрархію каталогів." #. type: textblock #: wcd.pod:310 msgid "The default tree layout is similar to the tree layout of the original NCD on DOS. The difference in layout is that in NCD all directories of a same depth level were vertically aligned over the whole tree. This was possible in NCD, because the maximum width of a directory name in DOS was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch." msgstr "Типове компонування ієрархії подібне до компонування каталогів у початковій версії NCD у DOS. Різниця у компонуванні полягає у тому, що у NCD усі каталоги одного рівня було вирівняно однаковим відступом у всьому дереві. Це було можливим у NCD, оскільки максимальна довжина назви каталогу у DOS дорівнювала 12 (8.3) символам. У сучасних операційних системах назви каталогів можуть бути дуже довгими і різниця у довжинах може бути дуже великою. Тому теки однакового рівня вкладеності не вирівняно за однією лінією за усією ієрархією каталогів у wcd, а лише за гілками ієрархії. Отже, під час руху вгору-вниз ієрархією каталогів користувач спостерігатиме за зсувами списку у різні боки." #. type: textblock #: wcd.pod:320 msgid "The navigation behaviour in Wcd is exactly the same as in the original NCD. For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree." msgstr "Навігаційна поведінка у wcd абсолютно збігається з початковою версією NCD. Наприклад, якщо ви натиснете клавішу зі стрілкою вниз, ви перейдете до наступного каталогу з тим самим рівнем вкладеності, переходячи гілками ієрархії. Це пришвидшує навігацію ієрархією каталогів." #. type: textblock #: wcd.pod:325 msgid "See options B<-Ta>, B<-TC>, and B<-Tc> to change the navigation behaviour." msgstr "Поведінку засобу навігації можна змінити за допомогою параметрів B<-Ta>, B<-TC> та B<-Tc>." #. type: =item #: wcd.pod:327 msgid "B<-gd>" msgstr "B<-gd>" #. type: textblock #: wcd.pod:329 msgid "Dump the treedata files as a tree to stdout." msgstr "Створити дамп файлів ієрархії каталогів (treedata) і вивести дані до стандартного виведення (stdout)." #. type: =item #: wcd.pod:331 msgid "B<-G PATH>" msgstr "B<-G ШЛЯХ>" #. type: textblock #: wcd.pod:333 msgid "Write go-script in directory I. For instance on Unix, C will write a go-script B." msgstr "Записати скрипт переходу у каталозі I<ШЛЯХ>. Наприклад, у Unix, C призведе до запису скрипту переходу до B<ШЛЯХ/wcd.go>." #. type: =item #: wcd.pod:336 msgid "B<-GN, --no-go-script>" msgstr "B<-GN, --no-go-script>" #. type: textblock #: wcd.pod:338 msgid "Do not create go-script. This option can be used in combination with the option B<-j> if one does not want wcd to create a go-script." msgstr "Не створювати скрипт переходу. Цим параметром можна скористатися у поєднанні з параметром B<-j>, якщо з якихось причин створення wcd скрипту переходу є небажаним." #. type: =item #: wcd.pod:341 msgid "B<-h, --help>" msgstr "B<-h, --help>" #. type: textblock #: wcd.pod:343 msgid "Show help and exit." msgstr "Показати довідку щодо використання і завершити роботу." #. type: =item #: wcd.pod:345 msgid "B<-i, --ignore-case>" msgstr "B<-i, --ignore-case>" #. type: textblock #: wcd.pod:347 msgid "Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default." msgstr "Ігнорувати регістр символів. У версіях wcd для DOS та Windows така поведінка є типовою. У версіях для Unix/Cygwin регістр типово враховується." #. type: =item #: wcd.pod:351 msgid "B<+i, --no-ignore-case>" msgstr "B<+i, --no-ignore-case>" #. type: textblock #: wcd.pod:353 msgid "Regard case. See also option B<-i>." msgstr "Брати до уваги регістр символів. Див. також параметр B<-i>." #. type: =item #: wcd.pod:355 msgid "B<-I, --ignore-diacritics>" msgstr "B<-I, --ignore-diacritics>" #. type: textblock #: wcd.pod:357 msgid "Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. See also L" msgstr "Ігнорувати діакритичні знаки для писемностей на основі латиниці. Програма вважатиме літери з діакритичними знаками еквівалентними до їхніх відповідників без діакритичних знаків. Передбачено підтримку таких кодувань латиниці: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2 та Unicode Latin-1, Latin Extended-A, а також Latin Extended-B. Див. також L" #. type: =item #: wcd.pod:364 msgid "B<+I, --no-ignore-diacritics>" msgstr "B<+I, --no-ignore-diacritics>" #. type: textblock #: wcd.pod:366 msgid "Regard diacritics (default). See also option B<-I>." msgstr "Брати до уваги діакритичні позначки (типово). Див. також параметр B<-I>." #. type: =item #: wcd.pod:368 msgid "B<-j, --just-go>" msgstr "B<-j, --just-go>" #. type: textblock #: wcd.pod:370 msgid "Just go mode." msgstr "Режим простого переходу." #. type: textblock #: wcd.pod:372 msgid "In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on." msgstr "У цьому режимі wcd не показуватиме списку, якщо для вказаної назви буде знайдено декілька відповідників. Wcd просто перейде до першого ж відповідника. Якщо wcd буде викликано знову з тими самими аргументами, програма змінить каталог на наступний пункт у списку тощо." #. type: textblock #: wcd.pod:377 msgid "Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a POSIX compatible shell:" msgstr "Wcd виведе назву каталогу, що якого переходитиме до стандартного виведення (stdout). Отже можна скористатися декількома способами встановлення. Можна створити таку функцію для сумісної з POSIX командної оболонки:" #. type: verbatim #: wcd.pod:381 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:386 msgid "When you are using an old shell that doesn't support \"$()\" command substitution you have to use old style command substitution with back-quotes." msgstr "Якщо ви користуєтеся застарілою командною оболонкою, у якій не передбачено підтримки заміни команди «$()», вам доведеться скористатися підставлянням команди у застарілому стилі з одинарними відкривними лапками." #. type: verbatim #: wcd.pod:389 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:395 msgid "On Windows systems, if one is running 4NT shell, one could make the following alias:" msgstr "У системах Windows, якщо використано командну оболонку 4NT, можна створити такі альтернативні назви:" #. type: verbatim #: wcd.pod:398 #, no-wrap msgid "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" msgstr "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" #. type: textblock #: wcd.pod:401 msgid "This method eliminates the need of the go-script, so one can use option B<-GN> in combination with B<-j>." msgstr "Подібний метод усуває потребу у скрипті переходу, отже, параметр B<-j> можна використати у поєднанні з параметром B<-GN>." #. type: =item #: wcd.pod:404 msgid "B<-k, --keep-paths>" msgstr "B<-k, --keep-paths>" #. type: textblock #: wcd.pod:406 msgid "Keep paths." msgstr "Зберігати шляхи." #. type: textblock #: wcd.pod:408 msgid "Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off." msgstr "Зберігати шляхи до файла даних ієрархії каталогів, якщо wcd не може перейти до відповідного каталогу. Типовою поведінкою програми є вилучення шляхів з файла даних ієрархії, якщо wcd не може перейти до відповідного каталогу. Якщо буде використано цей параметр, програма не вилучатиме відповідних записів каталогів." #. type: =item #: wcd.pod:412 msgid "B<-K, --color>" msgstr "B<-K, --color>" #. type: textblock #: wcd.pod:414 msgid "Use colors in graphical mode." msgstr "Використовувати кольори у графічному режимі." #. type: =item #: wcd.pod:416 msgid "B<-l ALIAS>" msgstr "B<-l АЛЬТЕРНАТИВНА НАЗВА>" #. type: textblock #: wcd.pod:418 msgid "Name the current path with I. Wcd places the current path with alias I in the alias file. Aliases are case sensitive." msgstr "Надати поточному шляху альтернативну назву I<АЛЬТЕРНАТИВНА НАЗВА>. Wcd запише поточний шлях з його альтернативною назвою до файла альтернативних назв. Альтернативні назви з різним регістром символів вважаються різними." #. type: =item #: wcd.pod:421 msgid "B<-m DIR>" msgstr "B<-m КАТАЛОГ>" #. type: textblock #: wcd.pod:423 msgid "Make directory and add to treedata file." msgstr "Створити каталог і додати його до файла даних ієрархії." #. type: =item #: wcd.pod:425 msgid "B<-L, --license>" msgstr "B<-L, --license>" #. type: textblock #: wcd.pod:427 msgid "Print the distribution license." msgstr "Вивести дані щодо умов ліцензування." #. type: =item #: wcd.pod:429 msgid "B<-M DIR>" msgstr "B<-M КАТАЛОГ>" #. type: textblock #: wcd.pod:431 msgid "Make directory and add to extra treedata file." msgstr "Створити каталог і додати його до додаткового файла даних ієрархії." #. type: =item #: wcd.pod:433 msgid "B<-n PATH>" msgstr "B<-n ШЛЯХ>" #. type: textblock #: wcd.pod:435 msgid "Read relative treedata file from I." msgstr "Прочитати відносний файл даних ієрархії каталогів з каталогу I<ШЛЯХ>." #. type: textblock #: wcd.pod:437 msgid "Do not read the default treedata file. The relative treedata file should already have been created using the wcd B<+S> option. I may also point to a file directly." msgstr "Не виконувати читання з типового файла даних ієрархії каталогів. Файл даних відносних шляхів до каталогів має бути вже створено за допомогою параметра wcd B<+S>. Крім того, I<ШЛЯХ> може безпосередньо вказувати на файл." #. type: textblock #: wcd.pod:441 msgid "An example. Suppose another system has been mounted to mount point C:" msgstr "Приклад. Припустімо, що іншу систему змонтовано до точки монтування C:" #. type: verbatim #: wcd.pod:444 #, no-wrap msgid "" " wcd -n /mnt/network src\n" "\n" msgstr "" " wcd -n /mnt/network src\n" "\n" #. type: textblock #: wcd.pod:446 msgid "Wcd opens the relative treedata file in C. The file contains the paths relative from that point." msgstr "Wcd відкриває файл даних відносних шляхів до каталогів у C. У цьому файлі містяться шляхи відносно відповідного каталогу." #. type: =item #: wcd.pod:449 msgid "B<+n PATH>" msgstr "B<+n ШЛЯХ>" #. type: textblock #: wcd.pod:451 msgid "Read relative treedata file in addition to the default treedata file. See option B<-n>." msgstr "Прочитати дані з файла даних відносної ієрархії каталогів на додачу до даних з типового файла даних ієрархії каталогів. Див. параметр B<-n>." #. type: =item #: wcd.pod:454 msgid "B<-N, --numbers>" msgstr "B<-N, --numbers>" #. type: textblock #: wcd.pod:456 msgid "Use numbers instead of letters." msgstr "Використовувати числа замість літер." #. type: textblock #: wcd.pod:458 msgid "Wcd with a conio or curses based interface (see section INTERFACE) presents a match list by default numbered with letters. When the B<-N> option is used the match list is numbered with numbers. Regardless of the B<-N> option one can type a letter or numbers to make a selection from the list of matches." msgstr "Wcd з інтерфейсом на основі conio або curses (див. розділ «ІНТЕРФЕЙС») типово показує список варіантів з пунктами, позначеними літерами. Якщо використано параметр B<-N>, пункти у списку буде пронумеровано. Незалежно дві параметра B<-N>, користувач може натиснути клавішу з літерою або номером для вибору пункту зі списку відповідників." #. type: =item #: wcd.pod:463 msgid "B<-o>" msgstr "B<-o>" #. type: textblock #: wcd.pod:465 msgid "Use stdin/stdout interface." msgstr "Використовувати інтерфейс stdin/stdout." #. type: textblock #: wcd.pod:467 msgid "When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the B<-o> option." msgstr "Якщо з певних причин інтерфейсом на основі conio або curses у wcd не можна або не бажано користуватися, користувач може перемкнути програму на інтерфейс stdin/stdout за допомогою параметра B<-o>." #. type: =item #: wcd.pod:471 msgid "B<-od, --to-stdout>" msgstr "B<-od, --to-stdout>" #. type: textblock #: wcd.pod:473 msgid "Dump all matches to stdout." msgstr "Вивести усі відповідники до stdout." #. type: =item #: wcd.pod:475 msgid "B<-q, --quiet>" msgstr "B<-q, --quiet>" #. type: textblock #: wcd.pod:477 msgid "Quieter operation. Printing of the final match is suppressed." msgstr "Менше повідомлень. Останній відповідник не виводиться до консолі." #. type: =item #: wcd.pod:479 msgid "B<-r DIR>" msgstr "B<-r КАТАЛОГ>" #. type: textblock #: wcd.pod:481 msgid "Remove directory and remove from the treedata file." msgstr "Вилучити каталог і відповідний запис з файла даних ієрархії каталогів." #. type: textblock #: wcd.pod:483 msgid "If the directory is empty, wcd will remove it, and try to remove it from the treedata file." msgstr "Якщо каталог є порожнім, wcd вилучить його і спробує вилучити відповідний запис з файла даних ієрархії каталогів." #. type: =item #: wcd.pod:486 msgid "B<-rmtree DIR>" msgstr "B<-rmtree КАТАЛОГ>" #. type: textblock #: wcd.pod:488 msgid "Recursively remove directory and remove from the treedata file." msgstr "Рекурсивно вилучити каталог і відповідні записи з файла даних ієрархії каталогів." #. type: textblock #: wcd.pod:490 msgid "Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file." msgstr "Wcd вилучить каталог та усі його підкаталоги та файли і витре записи відповідних каталогів з файла даних ієрархії каталогів." #. type: =item #: wcd.pod:493 msgid "B<-s>" msgstr "B<-s>" #. type: textblock #: wcd.pod:495 msgid "(re)Scan disk from C<$HOME> directory. If I is not defined the disk is scanned from root directory /." msgstr "Виконати сканування або повторне сканування диска, починаючи з каталогу I<$HOME>. Якщо значення змінної HOME не визначено, сканування диска виконуватиметься, починаючи з кореневого каталогу, /." #. type: textblock #: wcd.pod:498 msgid "The existing default treedata file is overwritten." msgstr "Наявний типовий файл даних ієрархії каталогів буде перезаписано." #. type: textblock #: wcd.pod:500 msgid "The default scan directory can be overruled with environment variable C. See section ENVIRONMENT VARIABLES." msgstr "Типовий каталог сканування можна перевизначити за допомогою змінної середовища C. Див. розділ «ЗМІННІ СЕРЕДОВИЩА»." #. type: =item #: wcd.pod:503 msgid "B<-S PATH>" msgstr "B<-S ШЛЯХ>" #. type: textblock #: wcd.pod:505 msgid "Scan directory tree from I and overwrite the default treedata file. See also options B<-A>, B<-s> and B<-E>. E.g. with option B<-A> you can create a default treedata file of your choice. Examples:" msgstr "Виконати сканування ієрархії каталогів, починаючи з каталогу I<ШЛЯХ>, і перезаписати типовий файл даних ієрархії каталогів. Див. також параметри B<-A>, B<-s> та B<-E>. Наприклад, з параметром B<-A> ви можете створити типовий файл даних ієрархії каталогів за вашим вибором. Приклади:" #. type: textblock #: wcd.pod:509 msgid "Unix:" msgstr "Unix:" #. type: verbatim #: wcd.pod:511 #, no-wrap msgid "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" msgstr "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" #. type: textblock #: wcd.pod:514 msgid "DOS/Windows:" msgstr "DOS/Windows:" #. type: verbatim #: wcd.pod:516 #, no-wrap msgid "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" msgstr "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:519 msgid "With the Windows versions one can scan all shared directories of a Windows LAN server by typing something like: C." msgstr "У версіях для Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: C." #. type: =item #: wcd.pod:523 msgid "B<+S PATH>" msgstr "B<+S ШЛЯХ>" #. type: textblock #: wcd.pod:525 msgid "Scan disk from I and place relative paths in a relative treedata file. This file is used by the B<-n> and B<+n> options of wcd. E.g. C." msgstr "Сканувати диск, починаючи з каталогу I<ШЛЯХ>, і замінити відносні шляхи у файлі даних відносної ієрархії каталогів. Цей файл використовується, якщо додано параметри B<-n> і B<+n>. Приклад: C." #. type: =item #: wcd.pod:529 msgid "B<-t>" msgstr "B<-t>" #. type: textblock #: wcd.pod:531 msgid "Do not strip tmp mount dir C (Unix only)" msgstr "Не вилучати із записів рядок тимчасового каталогу монтування, C (лише у Unix)" #. type: textblock #: wcd.pod:533 msgid "Wcd strips by default C from the match. Directory C is used by the auto-mounter. This behaviour can be turned off with the B<-t> option." msgstr "Типово, wcd вилучає C з відповідників. Каталог C використовується засобом автоматичного монтування. Таку обробку можна вимкнути за допомогою параметра B<-t>." #. type: =item #: wcd.pod:537 msgid "B<-T, --ascii-tree>" msgstr "B<-T, --ascii-tree>" #. type: textblock #: wcd.pod:539 msgid "Draw tree with ASCII characters. Use this option if line drawing characters are not displayed properly in your terminal." msgstr "Малювати ієрархію за допомогою символів ASCII. Скористайтеся цим параметром, якщо символи малювання ліній у терміналі буде показано з помилками." #. type: =item #: wcd.pod:542 msgid "B<-Ta, --alt-tree-nav>" msgstr "B<-Ta, --alt-tree-nav>" #. type: textblock #: wcd.pod:544 msgid "Alternative way of navigation in the graphical tree." msgstr "Альтернативний режим навігації у форматі графічної ієрархії каталогів." #. type: textblock #: wcd.pod:546 msgid "In the default NCD style tree layout the B<-Ta> option disables jumping to unrelated directories." msgstr "У типовому режимі компонування ієрархії у стилі NCD параметр B<-Ta> вимикає перехід до непов’язаних каталогів." #. type: textblock #: wcd.pod:549 msgid "In compact tree mode the alternative mode makes navigation similar to navigation in GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left." msgstr "У режимі компактної ієрархії альтернативний режим робить навігацію подібною до навігації у програмах для керування файлами з графічним інтерфейсом, зокрема Провіднику Windows або KDE Konqueror у Linux. Натискання клавіш зі стрілками вгору і вниз пересуває позначення теки на один рядок вгору або вниз. Першим натисканням клавіші зі стрілкою ліворуч можна згорнути підтеки, наступне натискання — перехід ліворуч." #. type: textblock #: wcd.pod:555 msgid "You can switch on-the-fly between default and alternative navigation by pressing ." msgstr "Перемкнутися між режимами типової і альтернативної навігації без перезапуску програми можна за допомогою натискання комбінації клавіш Shift-A." #. type: textblock #: wcd.pod:558 msgid "When alternative navigation mode is on, you will see an \"A\" in the lower right corner." msgstr "Якщо увімкнено режим альтернативної навігації, у нижньому правому куті екрана ви побачите літеру «A»." #. type: =item #: wcd.pod:560 msgid "B<-TC, --center-tree>" msgstr "B<-TC, --center-tree>" #. type: textblock #: wcd.pod:562 msgid "Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key in the graphical tree." msgstr "Центрований режим перегляду у графічній ієрархії. Позначений каталог залишається посередині екрана. Центрований режим можна увімкнути або вимкнути за допомогою натискання клавіші «t» у режимі графічної ієрархії." #. type: textblock #: wcd.pod:566 msgid "The standard non-centered behaviour, which minimises tree movement, is the same as in the original NCD." msgstr "Стандартний нецентрований режим, який мінімізує рух самої ієрархії на екрані, аналогічний до оригінального режиму NCD." #. type: =item #: wcd.pod:569 msgid "B<-Tc, --compact-tree>" msgstr "B<-Tc, --compact-tree>" #. type: textblock #: wcd.pod:571 msgid "By default the 'graphical' tree is drawn the same way as the original NCD on DOS did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use option B<-Tc> or switch on-the-fly with the key." msgstr "Типово, «графічну» ієрархію буде намальовано у той самий спосіб, як це робила початкова версія NCD для DOS. У DOS шлях до каталогу може складатися не більше ніж з 66 символів. Використання сучасної структури каталогів, без обмежень на довжину шляхів, може призвести до значного перевищення ширини ієрархії. Щоб подолати ці труднощі, wcd може малювати ієрархію каталогів у компактному форматі, подібному до формату більшості програм для керування файлами з графічним інтерфейсом, по одній теці на рядок. Увімкнути відповідний режим можна за допомогою параметра B<-Tc> або перемикання натисканням клавіші «m»." #. type: =item #: wcd.pod:578 msgid "B<-Td, --cjk-width>" msgstr "B<-Td, --cjk-width>" #. type: textblock #: wcd.pod:580 msgid "Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese CP936 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy CJK font is used." msgstr "У застарілих шрифтах для показу ієрогліфів східноазійських мов (китайської, японської та корейської) частина символів ієрогліфів та символів малювання ліній займають дві позиції замість звичайної для Unicode ширини цих символів у одну позицію. Прикладами таких шрифтів є растровий шрифт Chinese CP936 для Windows та шрифт Simsun. За допомогою цього параметра можна забезпечити правильний показ графічної ієрархії каталогів з використанням застарілих шрифтів з ієрогліфами." #. type: textblock #: wcd.pod:586 msgid "When CJK mode is on, you will see a \"C\" in the lower right corner." msgstr "Якщо увімкнено режим ієрогліфів, у нижньому правому куті екрана ви побачите літеру «C»." #. type: =item #: wcd.pod:588 msgid "B<-u USER>" msgstr "B<-u КОРИСТУВАЧ>" #. type: textblock #: wcd.pod:590 msgid "Scan treedata file of another user based on I, do not scan your own default treedata file. See also section ENVIRONMENT VARIABLES for I." msgstr "Сканувати файл даних ієрархії іншого користувача, I<КОРИСТУВАЧ>, не сканувати типовий файл ієрархії поточного користувача. Див. також розділ ЗМІННІ СЕРЕДОВИЩА, а саме запис щодо змінної I." #. type: textblock #: wcd.pod:593 msgid "On Unix/Cygwin the base directory for user home directories is assumed to be C. Wcd will look for C and C, in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be C<\\\\users>, so wcd tries to read C<\\\\users\\USER\\treedata.wcd> and C<\\\\users\\USER\\.wcd\\treedata.wcd>." msgstr "У Unix/Cygwin базовим каталогом для домашніх каталогів користувачів вважається C
. Wcd шукатиме файли C
та C
, саме у цьому порядку, і читатиме дані з першого ж із цих файлів, який буде знайдено і який виявиться придатним до читання. У DOS/Windows базовим каталогом для домашніх каталогів користувачів вважається C<\\\\users>, отже, wcd намагається прочитати дані з файлів C<\\\\users\\USER\\treedata.wcd> та C<\\\\users\\USER\\.wcd\\treedata.wcd>." #. type: =item #: wcd.pod:601 msgid "B<+u USER>" msgstr "B<+u КОРИСТУВАЧ>" #. type: textblock #: wcd.pod:603 msgid "Read default treedata file of USER in addition to your own treedata file." msgstr "Прочитати дані з типового файла ієрархії каталогів користувача КОРИСТУВАЧ на додачу до даних з типового файла даних ієрархії каталогів вашого користувача." #. type: =item #: wcd.pod:606 msgid "B<-v, --verbose>" msgstr "B<-v, --verbose>" #. type: textblock #: wcd.pod:608 msgid "Display verbose messages. With this option wcd prints all filters, bans and excludes." msgstr "Показувати докладні повідомлення. З цим параметром wcd виводитиме усі фільтри, блокування та виключення." #. type: =item #: wcd.pod:611 msgid "B<-V, --version>" msgstr "B<-V, --version>" #. type: textblock #: wcd.pod:613 msgid "Print version information and exit." msgstr "Показати дані щодо версії і завершити роботу." #. type: =item #: wcd.pod:615 msgid "B<-w, --wild-match-only>" msgstr "B<-w, --wild-match-only>" #. type: textblock #: wcd.pod:617 msgid "Wild matching only. Treat all matches as wild matches." msgstr "Встановлення відповідність для неточних відповідників, лише якщо використано символи-замінники." #. type: =item #: wcd.pod:619 msgid "B<-x PATH>" msgstr "B<-x ШЛЯХ>" #. type: textblock #: wcd.pod:621 msgid "Exclude I from scanning." msgstr "Виключити I<ШЛЯХ> зі сканування." #. type: textblock #: wcd.pod:623 msgid "When this option is used wcd will exclude I and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option B<-x> can be used multiple times." msgstr "Якщо буде використано цей параметр, wcd виключить шлях з назвою I<ШЛЯХ> та усі його підкаталоги з переліку шляхів для сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Параметр B<-x> у команді можна використовувати декілька разів." #. type: verbatim #: wcd.pod:627 #, no-wrap msgid "" " wcd -x -x -s\n" "\n" msgstr "" " wcd -x <шлях1> -x <шлях2> -s\n" "\n" #. type: textblock #: wcd.pod:629 msgid "Option B<-x> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." msgstr "Параметр B<-x> слід вказувати до усіх параметрів сканування (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #. type: textblock #: wcd.pod:633 msgid "On DOS/Windows systems one must specify the drive letter depending on if environment variable I or I is set. If I or I is set one needs to specify the drive letter. An example:" msgstr "У системах DOS/Windows слід вказати літеру диска, якщо не визначено змінної середовища I або I. Приклад:" #. type: verbatim #: wcd.pod:637 #, no-wrap msgid "" " wcd -x c:/temp -S c:\n" "\n" msgstr "" " wcd -x c:/temp -S c:\n" "\n" #. type: textblock #: wcd.pod:639 msgid "Otherwise do not specify drive letter." msgstr "У інших випадках літеру диска не слід вказувати." #. type: verbatim #: wcd.pod:641 #, no-wrap msgid "" " wcd -x /temp -s\n" "\n" msgstr "" " wcd -x /temp -s\n" "\n" #. type: =item #: wcd.pod:644 msgid "B<-xf FILE>" msgstr "B<-xf ФАЙЛ>" #. type: textblock #: wcd.pod:646 msgid "Exclude all paths listed in I from scanning." msgstr "Виключити зі сканування усі шляхи, вказані у файлі I<ФАЙЛ>." #. type: textblock #: wcd.pod:648 msgid "When this option is used wcd will exclude all paths listed in I and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option B<-xf> can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix):" msgstr "Якщо використано цей параметр, wcd виключить усі шляхи зі списку у файлі I<ФАЙЛ> та усі підкаталоги цих шляхів зі сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Шляхи має бути вказано по одному на рядок. Слід пам’ятати, що wcd ігноруватиме початкові та завершальні пробіли у рядку, оскільки такі пробіли є некоректними символами у назвах каталогів. Параметр B<-xf> можна вказувати декілька разів. Якщо ви хочете виключити усі заблоковані шляхи зі сканування, можна зробити так (приклад для wcd у unix):" #. type: verbatim #: wcd.pod:656 #, no-wrap msgid "" " wcd -xf ~/.ban.wcd -s\n" "\n" msgstr "" " wcd -xf ~/.ban.wcd -s\n" "\n" #. type: textblock #: wcd.pod:658 msgid "Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with C<*/.svn>." msgstr "Передбачено підтримку символів-замінників. Наприклад, щоб виключити усі каталоги Subversion з файлами, призначеними для адміністрування копії сховища, додайте рядок C<*/.svn>." #. type: textblock #: wcd.pod:661 msgid "Option B<-xf> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." msgstr "Параметр B<-xf> слід вказувати до усіх параметрів сканування (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #. type: =item #: wcd.pod:664 msgid "B<-y, --assume-yes>" msgstr "B<-y, --assume-yes>" #. type: textblock #: wcd.pod:666 msgid "Assume Yes on all queries." msgstr "Вважати відповіддю на всі питання «так»." #. type: textblock #: wcd.pod:668 msgid "Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option B<-rmtree>. This option must be used in front of options that can lead to yes/no questions." msgstr "Wcd не проситиме користувача підтвердити дію відповіддю «так» або «ні», відповіддю завжди вважається «так». Цей параметр можна поєднати з параметром B<-rmtree>. Параметр слід вказувати до параметрів, використання яких може призвести до появи питань, на які має відповідати користувач." #. type: =item #: wcd.pod:673 msgid "B<-z NUMBER>" msgstr "B<-z ЧИСЛО>" #. type: textblock #: wcd.pod:675 msgid "Set maximum stack size to NUMBER." msgstr "Встановити для максимального розміру стосу значення ЧИСЛО." #. type: textblock #: wcd.pod:677 msgid "The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (B<->,B<+>,B<=>). Otherwise the size of the stack will be set back to the default 10." msgstr "Типовим розміром стосу є 10. Дії зі стосом можна вимкнути встановленням значення 0. Цей параметр слід використовувати перед будь-якими іншими параметрами, що призводять до дій зі стосом (B<->,B<+>,B<=>). Якщо цього не зробити, стосу буде повернуто типовий розмір 10." #. type: textblock #: wcd.pod:682 msgid "A correct command is:" msgstr "Правильна команда:" #. type: verbatim #: wcd.pod:684 #, no-wrap msgid "" " wcd -z 50 -\n" "\n" msgstr "" " wcd -z 50 -\n" "\n" #. type: textblock #: wcd.pod:686 msgid "The new stack size will be 50, wcd will go one directory back. A wrong command is:" msgstr "Новим розміром стосу буде 50, wcd перейде на один крок назад у стосі. Помилковою була б така команда:" #. type: verbatim #: wcd.pod:689 #, no-wrap msgid "" " wcd - -z 50\n" "\n" msgstr "" " wcd - -z 50\n" "\n" #. type: textblock #: wcd.pod:691 msgid "Wcd goes one directory back, the stack gets the default size 10. The B<-z 50> is ignored." msgstr "Wcd повернеться на один каталог назад у стосі, розміру ж стосу буде повернуто типове значення 10. Параметр B<-z 50> буде проігноровано." #. type: textblock #: wcd.pod:694 msgid "Add this option as the first option to your wcd alias or function. E.g. for the a POSIX compatible shell this would be:" msgstr "Додайте цей параметр як перший параметр до альтернативної команди wcd або функції, де ця програма використовується. Приклад для сумісних з POSIX командних оболонок:" #. type: verbatim #: wcd.pod:697 #, no-wrap msgid "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: =item #: wcd.pod:703 msgid "B<-[NUMBER]>" msgstr "B<-[ЧИСЛО]>" #. type: textblock #: wcd.pod:705 msgid "Push dir NUMBER of times. Default is one." msgstr "Повернутися на ЧИСЛО пунктів назад у стосі. Типовим є значення у один пункт." #. type: textblock #: wcd.pod:707 msgid "Go back a directory. Command C goes one directory back. To go more directories back add a number to it. E.g. command C. The stack is cyclic." msgstr "Повернутися на один каталог назад. Команда C поверне вас на один каталог назад. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: C. Перехід стосом каталогів є циклічним." #. type: =item #: wcd.pod:711 msgid "B<+[NUMBER]>" msgstr "B<+[ЧИСЛО]>" #. type: textblock #: wcd.pod:713 msgid "Pop dir NUMBER of times. Default is one." msgstr "Перейти вперед на ЧИСЛО пунктів у стосі. Типовим є значення у один пункт." #. type: textblock #: wcd.pod:715 msgid "Go forward a directory. Command C goes one directory forward. To go more directories forward add a number to it. E.g. command C. The stack is cyclic." msgstr "Перейти вперед на один каталог. Команда C призведе до переходу на один каталог вперед. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: C. Перехід стосом каталогів є циклічним." #. type: =item #: wcd.pod:719 msgid "B<=>" msgstr "B<=>" #. type: textblock #: wcd.pod:721 msgid "Show stack." msgstr "Показати стос." #. type: textblock #: wcd.pod:723 msgid "Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk C<*>." msgstr "Скористайтеся цим параметром, якщо ви призабули скільки пунктів залишилося попереду і позаду у стосі. У відповідь на команду з цим параметром програма виведе вміст стосу для наступного вибору номера пункту. Поточне місце у стосі буде позначено зірочкою, C<*>." #. type: =head1 #: wcd.pod:729 msgid "INSTALLATION" msgstr "ВСТАНОВЛЕННЯ" #. type: textblock #: wcd.pod:731 msgid "The current working directory of a Unix shell can only be changed by the builtin cd(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined." msgstr "Поточний робочий каталог командної оболонки Unix можна змінити лише за допомогою вбудованої команди cd(1). Тому програму завжди викликають функцією або за альтернативною назвою. Ця функція або альтернативна назва зберігається у скрипті командної оболонки (скрипті переходу), який створюється програмою wcd. Wcd може працювати лише після визначення функції або альтернативної назви." #. type: textblock #: wcd.pod:737 msgid "Another important influence on your installation is the definition of environment variables I and I. See section ENVIRONMENT VARIABLES." msgstr "Іншим варіантом внесення змін до поведінки встановленої вами програми є визначення значень змінних середовища I та I. Див. розділ ЗМІННІ СЕРЕДОВИЩА." #. type: =head2 #: wcd.pod:741 msgid "Install for POSIX type shells" msgstr "Встановлення для командних оболонок типу POSIX" #. type: textblock #: wcd.pod:743 msgid "For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the following function to the shell startup file (e.g. Bash uses C<$HOME/.bashrc>):" msgstr "Для командних оболонок POSIX (ksh, bash, zsh, etc.) у Unix, Linux, Cygwin або типовій оболонці MSYS додайте таку функцію до файла запуску оболонки (наприклад, у Bash використовується файл C<$HOME/.bashrc>):" #. type: verbatim #: wcd.pod:747 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " <ШЛЯХ>/wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:753 msgid "Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell." msgstr "Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку." #. type: textblock #: wcd.pod:756 msgid "The location of the go-script C differs per shell." msgstr "Розташування скрипту переходу, C, є різним для різних оболонок." #. type: textblock #: wcd.pod:758 msgid "Wcd for DJGPP DOS bash requires a different function. The go script is not written in a directory C, and if I and I are both not defined the go-script is written on c:/." msgstr "Wcd для bash у DJGPP DOS потрібна інша функція. Скрипт переходу не буде записано до каталогу C і, якщо одночасно визначено I та I, скрипт переходу буде записано до c:/." #. type: verbatim #: wcd.pod:762 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " <ШЛЯХ>/wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:768 msgid "The WinZsh version of wcd is also a bit different. No C directory." msgstr "Версія wcd для WinZsh теж має свої особливості. Немає каталогу C." #. type: verbatim #: wcd.pod:770 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " <ШЛЯХ>/wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:776 msgid "See section FILES for more information." msgstr "Докладніший опис можна знайти у розділі «ФАЙЛИ»." #. type: =head2 #: wcd.pod:778 msgid "Install for C-alike shells (csh, tcsh)" msgstr "Встановлення для C-подібних командних оболонок (csh, tcsh)" #. type: textblock #: wcd.pod:780 msgid "Add the following alias to the shell startup file C<$HOME/.cshrc> or C<$HOME/.tcshrc> :" msgstr "Додайте такі альтернативні назви до файла запуску оболонки, C<$HOME/.cshrc> або C<$HOME/.tcshrc> :" #. type: verbatim #: wcd.pod:783 #, no-wrap msgid "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" msgstr "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"<ШЛЯХ>/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"<ШЛЯХ>/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" #. type: textblock #: wcd.pod:789 msgid "Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell." msgstr "Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку." #. type: =head2 #: wcd.pod:793 msgid "Windows Command Prompt version" msgstr "Версія для командного рядка Windows" #. type: textblock #: wcd.pod:795 msgid "Unpack the zip file and add directory C to your environment variable I." msgstr "Розпакуйте архів zip і додайте каталог C до вашої змінної середовища I." #. type: textblock #: wcd.pod:798 msgid "In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip C runs the wcd program which generates a new batch script C. Then C runs C which actually changes the directory." msgstr "Програма для Windows, що працює у вікні командної оболонки Windows (Command Prompt) не може змінити поточного каталогу, але це може зробити скрипт .bat. Пакетний скрипт C» запускає програму wcd, яка створює новий пакетний скрипт, C. Після цього C запускає скрипт C, який здійснює зміну каталогу." #. type: =head2 #: wcd.pod:803 msgid "Windows VISTA and higher" msgstr "Windows VISTA та новіші версії" #. type: textblock #: wcd.pod:805 msgid "In a Windows VISTA and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select I." msgstr "У командній оболонці Windows VISTA та новіших версій користувачі мають обмежений доступ до каталогів. Що отримати доступ до усіх каталогів, вам знадобляться права доступу адміністратора. Запустити командну оболонку з правами адміністратора можна так: наведіть вказівник миші на піктограму командної оболонки, клацніть правою кнопкою миші і виберіть у контекстному меню пункт I<Запуск від імені адміністратора>." #. type: =head2 #: wcd.pod:810 msgid "Windows PowerShell version" msgstr "Версія для Windows PowerShell" #. type: textblock #: wcd.pod:812 msgid "Add the following function to your PowerShell user profile. The location of this profile is stored in the $profile variable. It is required that one of the environment variables I or I is defined." msgstr "Додайте вказану нижче функцію до вашого профілю користувача PowerShell. Дані щодо місця зберігання цього профілю зберігаються у змінній $profile. Слід також визначити змінну середовища I або I." #. type: verbatim #: wcd.pod:816 #, no-wrap msgid "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" msgstr "" " function wcd\n" " {\n" " <ШЛЯХ>\\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" #. type: textblock #: wcd.pod:822 msgid "Replace I with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers." msgstr "Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Запустіть новий сеанс роботи у PowerShell. У Wcd для PowerShell передбачено роботу лише з файловими системами. Забезпечення роботи з іншими джерелами файлових даних не передбачено." #. type: =head2 #: wcd.pod:826 msgid "OS/2 Command Prompt version" msgstr "Версія для командного рядка OS/2" #. type: textblock #: wcd.pod:828 msgid "In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work directory. That is why wcd generates a command script C which must be executed in the current shell. The script C first executes C, which creates the C script. Then C executes the C script." msgstr "У командній оболонці OS/2 (cmd.exe) програма OS/2 не може змінювати робочого каталогу. Ось чому wcd створює командний скрипт (C), який має бути виконано у поточній оболонці. Скрипт C спочатку запускає програму C, яка створює скрипт C. Після цього C запускає скрипт wcdgo.cmd." #. type: =head1 #: wcd.pod:835 msgid "LOCALIZATION" msgstr "ЛОКАЛІЗАЦІЯ" #. type: =item #: wcd.pod:839 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:841 msgid "The primary language is selected with the environment variable I. The I variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells:" msgstr "Основна мова визначається за допомогою змінної середовища I. Значення змінної I складається з декількох частин. Перша частина записується малими літерами і визначає код мови. Друга частина є необов’язковою, визначає код країни і записується прописними літерами, відокремлюється від першої частини символом підкреслювання. Передбачено також необов’язкову третю частину: кодування. Ця частина відокремлюється від другої частини крапкою. Ось декілька прикладів для командних оболонок стандартного типу POSIX:" #. type: verbatim #: wcd.pod:848 #, no-wrap msgid "" " export LANG=nl Dutch\n" " export LANG=nl_NL Dutch, The Netherlands\n" " export LANG=nl_BE Dutch, Belgium\n" " export LANG=es_ES Spanish, Spain\n" " export LANG=es_MX Spanish, Mexico\n" " export LANG=en_US.iso88591 English, USA, Latin-1 encoding\n" "\n" msgstr "" " export LANG=uk українська\n" " export LANG=uk_UA українська, Україна\n" " export LANG=ru_UA російська, Україна\n" " export LANG=es_ES іспанська, Іспанія\n" " export LANG=es_MX іспанська, Мексика\n" " export LANG=en_USiso88591 англійська, США, кодування Latin-1\n" "\n" #. type: textblock #: wcd.pod:855 msgid "For a complete list of language and country codes see the gettext(1) manual: L On Unix systems you can use to command locale(1) to get locale specific information." msgstr "Повний список мов та кодів краї наведено у підручнику з gettext(1): L. У системах Unix для отримання даних щодо локалі можна скористатися командою locale(1)." #. type: =item #: wcd.pod:861 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:863 msgid "With the I environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to I over I. For instance, first Dutch and then German: C. You have to first enable localization, by setting I or I to a value other than I, before you can use a language priority list through the I variable. See also the gettext(1) manual: L" msgstr "За допомогою змінної середовища I ви можете вказати список пріоритетності мов. Записи у списку слід відокремлювати двокрапками. Програма wcd надає перевагу I над I. Наприклад, перша голландська, далі німецька: C. Спочатку вам слід увімкнути локалізацію, встановивши для змінної I (або I) значення, відмінне від I. Далі ви зможете використовувати список пріоритетності мов за допомогою змінної I. Додаткові відомості можна знайти у підручнику з gettext: L" #. type: textblock #: wcd.pod:871 msgid "If you select a language which is not available you will get the standard English messages." msgstr "Якщо вами буде вибрано мову, перекладу якою немає, буде показано стандартні повідомлення англійською мовою." #. type: =item #: wcd.pod:874 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:876 msgid "With the environment variable I the I used during compilation and installation of wcd can be overruled. I is used by wcd with native language support to find the language files. The GNU default value is C. By typing C wcd will print the I that is used." msgstr "За допомогою визначення змінної середовища I можна перевизначити значення I, вказане під час збирання та встановлення програми. Змінна I використовується wcd з підтримкою перекладів для пошуку файлів перекладів. Типовим значенням для системи GNU є C. Дізнатися про поточне значення змінної I можна за допомогою команди C." #. type: textblock #: wcd.pod:882 msgid "If you have installed wcd in a different directory than the default directory you may need to set the environment variable I to point to the locale directory." msgstr "Якщо ви встановили wcd до каталогу, відмінного від типового, вам варто встановити значення змінної середовища I так, щоб вона вказувала на каталог з файлами перекладів." #. type: textblock #: wcd.pod:887 msgid "An example for Windows cmd:" msgstr "Приклад для cmd у Windows:" #. type: verbatim #: wcd.pod:889 #, no-wrap msgid "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" msgstr "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" #. type: textblock #: wcd.pod:892 msgid "An example for a POSIX shell:" msgstr "Приклад для оболонки POSIX:" #. type: verbatim #: wcd.pod:894 #, no-wrap msgid "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" msgstr "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" #. type: =item #: wcd.pod:896 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:898 msgid "When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment I has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored." msgstr "Якщо wcd вдасться знайти декілька відповідників вказаного користувачем каталогу, програма покаже упорядкований список варіантів. Спосіб упорядковування залежить від параметрів локалі. Якщо у середовищі встановлено значення змінної I, відповідники буде упорядковано відповідно до порядку, який використовується у словниках або телефонних книгах відповідною мовою. Наприклад, буде проігноровано крапки і дефіси, літери з акцентами вважатимуться еквівалентними до літер без акцентів, ігноруватимуться відмінності у написанні великими чи малими літерами." #. type: textblock #: wcd.pod:904 msgid "The sorting gives preference to environment variable I over I. If you make I equal to C or C, locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this:" msgstr "Під час визначення параметрів упорядковування перевага надається змінній середовища I, а не змінній I. Якщо ви вкажете для I значення C або C, упорядковування за параметрами локалі буде вимкнено. Наприклад, якщо ви хочете скористатися українською мовою інтерфейсу, але не хочете використовувати українські параметри упорядковування, ви можете зробити так:" #. type: verbatim #: wcd.pod:909 #, no-wrap msgid "" " export LANG=nl_NL\n" " export LC_COLLATE=C\n" "\n" msgstr "" " export LANG=uk_UA\n" " export LC_COLLATE=C\n" "\n" #. type: =item #: wcd.pod:912 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:914 msgid "With regard to character encoding Wcd will give preference to variable I over I. For instance to set character encoding to UTF-8 the following environment setting can be done." msgstr "Під час визначення параметрів кодування у wcd надається перевага змінній I, а не I. Наприклад, щоб встановити кодування символів UTF-8, слід скористатися такою командою:" #. type: verbatim #: wcd.pod:918 #, no-wrap msgid "" " export LC_CTYPE=en_US.UTF-8\n" "\n" msgstr "" " export LC_CTYPE=en_US.UTF-8\n" "\n" #. type: =item #: wcd.pod:920 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:922 msgid "All locale environment variables that start with I are overruled by the environment variable I if it is defined. Wcd gives preference to I over I and I." msgstr "Усі змінні середовища, пов’язані з локаллю, назви яких починаються з I, можна перевизначити за допомогою змінної середовища I. Wcd надає перевагу значенню I над значеннями I та I." #. type: =head2 #: wcd.pod:929 msgid "WINDOWS CODE PAGES" msgstr "ТАБЛИЦІ КОДУВАНЬ WINDOWS" #. type: textblock #: wcd.pod:931 msgid "There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI). The default encoding for Windows, when configured with Western regional settings, is ANSI CP1252. Windows programs, for instance notepad, use this default system ANSI code page. The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility with DOS programs. If you use a DOS version of wcd in a Windows console it will work, because of the DOS code page. But the DOS version of wcd lacks support for long directory names and network drives on Windows." msgstr "Існує дві групи кодових сторінок: кодові сторінки DOS (OEM) та кодові сторінки Windows (ANSI). Типовим кодуванням для Windows, якщо систему налаштовано на західноєвропейські параметри регіону, є ANSI CP1252. У програмах Windows, наприклад у notepad, використовується ця типова загальносистемна кодова сторінка ANSI. У консолі Windows типово використовується кодова сторінка OEM (CP437 або CP850) для сумісності з програмами DOS. Якщо ви використовуєте версію wcd для DOS у консолі Windows, програма не працюватиме, оскільки у ній використовується кодова сторінка DOS. Але у версії wcd для DOS не передбачено підтримку довгих назв каталогів та мережевих дисків у Windows." #. type: textblock #: wcd.pod:940 msgid "The Windows version of wcd is a native Windows program and will use the Windows system ANSI code page. So on a Western regional Windows it will use code page CP1252 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate ANSI output to Unicode output in the Command Prompt and PowerShell." msgstr "Версія wcd для Windows є типовою програмою Windows, вона використовуватиме загальносистемну кодову сторінку ANSI Windows. Отже, у західноєвропейській локалізації Windows програма використовуватиме кодову сторінку CP1252 для назв каталогів та повідомлень. З метою забезпечення однорідності виведення даних, незалежно від активної кодової сторінки, усі версії wcd для Windows перетворюють виведені дані у форматі ANSI у формат Unicode у командній оболонці та PowerShell." #. type: textblock #: wcd.pod:946 msgid "The console raster font only supports the original OEM code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and ANSI) letters appear correctly." msgstr "У консольних растрових шрифтах передбачено оригінальну кодову сторінку OEM, що встановлюється разом з Windows, отже, вам слід змінити шрифт консолі на Lucida Console, щоб літери з Unicode (та ANSI) було показано належним чином." #. type: textblock #: wcd.pod:950 msgid "Non-Unicode versions of Wcd I use plain ANSI output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol." msgstr "Версії wcd без підтримки Unicode I<до версії 5.2.0> виводять дані у форматі ANSI. Для цих застарілих версій кодову сторінку консолі слід зробити еквівалентною до загальносистемної кодової сторінки (змінюється на 1252), щоб забезпечити належну роботу wcd для Windows зі спеціальними символами, зокрема символами з акцентами, символами кирилиці та символом євро." #. type: textblock #: wcd.pod:955 msgid "The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the C command." msgstr "Загальносистемну кодову сторінку Windows можна змінити за допомогою регіональних параметрів «Панелі керування». Кодову сторінку консолі Windows можна змінити за допомогою команди C." #. type: textblock #: wcd.pod:958 msgid "When you type C, the actual character encoding used by wcd is shown. Type the command C to display the active code page of the Windows console." msgstr "Програма виводить дані щодо справжнього кодування символів у відповідь на команду C. Щоб визначити активну кодову сторінку консолі Windows, введіть команду C." #. type: =head2 #: wcd.pod:963 msgid "UNICODE" msgstr "UNICODE" #. type: textblock #: wcd.pod:965 msgid "Wcd has optional support for Unicode. To see if wcd was built with Unicode support type C. If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: \"Chinese\")." msgstr "У wcd може бути передбачено підтримку Unicode. Щоб визначити, чи було зібрано wcd з підтримкою Unicode, скористайтеся командою C. Якщо у вашому терміналі або консолі та шрифті передбачено підтримку, ви зможете бачити символ євро та китайські ієрогліфи." #. type: textblock #: wcd.pod:970 msgid "Wcd has been I converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also L" msgstr "Перетворення у Unicode у wcd виконується I<програмно>. У ядрі програми усі дані обробляються як потік даних. У широкі символи Unicode перетворюються лише рядки, що виводяться на екран. Wcd повністю покладається на функції libc і не містить специфічного для UTF-8 коду. Див. також L" #. type: textblock #: wcd.pod:976 msgid "Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type C. Wcd with Unicode normalization support will match Unicode names based on I equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also L" msgstr "У wcd передбачено необов’язкову підтримку встановлення відповідності за Unicode з нормалізацією. Щоб визначити, чи передбачено у wcd підтримку нормалізації, скористайтеся командою C. У wcd з підтримкою нормалізації Unicode відповідність назв Unicode виконується на основі I<сумісної> еквівалентності. Без підтримки нормалізації Unicode відповідність назв встановлюється за двійковою еквівалентністю. Див. також L" #. type: =head3 #: wcd.pod:983 msgid "UTF-8 on Unix/Linux" msgstr "UTF-8 у Unix/Linux" #. type: textblock #: wcd.pod:985 msgid "In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance with" msgstr "Щоб у вашій консолі або терміналі можна було переглядати символи UTF-8, у консолі і терміналі також має бути передбачено підтримку UTF-8. У версії xterm, яка постачається разом з XFree86 4.0 або наступними версіями, передбачено підтримку UTF-8. Щоб задіяти цю підтримку, запустіть xterm(1) у локалі UTF-8 і скористайтеся шрифтом з кодуванням iso10646-1, наприклад за допомогою такої команди:" #. type: verbatim #: wcd.pod:990 #, no-wrap msgid "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" msgstr "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" #. type: textblock #: wcd.pod:992 msgid "Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character encodings should also work, but that has not been tested." msgstr "У сучасних дистрибутивах GNU/Linux типовою використовується кодування UTF-8. Можна працювати і з іншими багатобайтовими кодуваннями символів, але належного тестування працездатності з цими кодуванням не виконувалося." #. type: textblock #: wcd.pod:995 msgid "Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files." msgstr "У wcd припускається, що кодуванням файлів даних ієрархії каталогів є кодування символів поточної локалі. До файлів даних ієрархії каталогів символ позначки порядку байтів (BOM) не записується." #. type: =head3 #: wcd.pod:999 msgid "UTF-16 on Windows" msgstr "UTF-16 у Windows" #. type: textblock #: wcd.pod:1001 msgid "On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP Software, which can be used on older Windows versions (XP/Vista)." msgstr "У Windows підтримку Unicode передбачено у всіх версіях PowerShell та у командній оболонці Windows у Windows 7 (та новіших версіях). Unicode також працює у Take Command або TCC/LE створених JP Software, якими можна скористатися у старіших версіях Windows (XP/Vista)." #. type: textblock #: wcd.pod:1006 msgid "On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default ANSI code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead." msgstr "У Windows усі назви каталогів на диску кодуються за допомогою UTF-16. У програмах Windows без підтримки Unicode символи Unicode перетворюються у символи типової кодової сторінки ANSI. Для символів, які не є частиною регіонального кодування, це перетворення є неможливим, отже програми без підтримки Unicode виводитимуть замість них символ знаку питання або помилковий символ." #. type: textblock #: wcd.pod:1012 msgid "Wcd with Unicode support will read the UTF-16 encoded directory names and converts them internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8." msgstr "Wcd з підтримкою Unicode читатиме закодовані у UTF-16 назви каталогів і перетворюватиме дані до UTF-8 у внутрішньому коді. Усі дані файлів ієрархії каталогів буде закодовано у UTF-8. Ці дані є несумісними з версіями wcd без підтримки Unicode. Wcd створить скрипт переходу у кодуванні UTF-8." #. type: textblock #: wcd.pod:1017 msgid "All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided there is an UTF-8 BOM in the script." msgstr "Усі версії Windows PowerShell можуть запускати скрипти у кодуванні UTF-8, якщо у скрипті є символ BOM UTF-8." #. type: textblock #: wcd.pod:1020 msgid "Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in UTF-8, and the batch script must I have a BOM. The active code page of the Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will create such a go script C. It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page." msgstr "Починаючи з Windows 7, у командній оболонці Windows передбачено можливість змінити за допомогою пакетного скрипту каталог на каталог з літерами Unicode у назві. Кодуванням назви каталогу має бути UTF-8, а I<пакетний скрипт> не повинен містити позначки порядку байтів (BOM). Слід змінити активну кодову сторінку командної оболонки на 65001 (UTF-8) до виконання команди cd. Wcd для командної оболонки створити такий скрипт переходу (C). Цей скрипти спочатку змінюватиме кодову сторінку на 65001, потім змінюватиме каталог, і нарешті, повертатиме початкове значення параметрів кодової сторінки." #. type: textblock #: wcd.pod:1028 msgid "You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly." msgstr "Якщо літери буде показано не так, як слід, вам слід встановити шрифт True Type Lucida Console (не растровий шрифт)." #. type: textblock #: wcd.pod:1031 msgid "The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see L), but it can't change to directories with Unicode letters in the name that are not part of the default system ANSI code page. The Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes them also readable by notepad." msgstr "Версія wcd для Windows без підтримки Unicode може читати файли даних ієрархії каталогів у кодуванні Unicode, починаючи з версії 5.2.0, якщо у файлі є позначка порядку байтів (BOM) (див. L), але не може змінювати каталоги на каталоги з тими літерами Unicode у назві, які не є частиною типової кодової сторінки ANSI системи. Версія wcd для Windows з підтримкою Unicode записує BOM до файлів ієрархії каталогів у кодуванні UTF-8, починаючи з версії 5.2.0, отже, ці файли можна читати за допомогою notepad." #. type: =head3 #: wcd.pod:1040 msgid "UTF-8 on Cygwin" msgstr "UTF-8 у Cygwin" #. type: textblock #: wcd.pod:1042 msgid "Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character encoding to UTF-8 with the I or I environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console." msgstr "У Cygwin передбачено підтримку Unicode, починаючи з версії 1.7. Шар обробки Cygwin виконує перетворення назв каталогів Windows у UTF-16 до UTF-8. Отже, програми, зокрема wcd, не потрібно перейматися процедурами перетворення, вони можуть обробляти дані у кодуванні UTF-8, як це робиться у Unix/Linux. Встановити кодування символів UTF-8 можна за допомогою змінної середовища I або I. Ймовірно, вам доведеться пересканувати ваші диски. Якщо ви користуєтеся типовою консоллю Cygwin, вам слід встановити для неї шрифт True Type Lucida Console (не растровий шрифт)." #. type: textblock #: wcd.pod:1050 msgid "The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in the treedata files, and it is assumed they are encoded in the B locale character encoding." msgstr "Версія wcd для Cygwin поводиться точно так само, як версія wcd для Unix. Мітка порядку байтів (BOM) не записується до файлів даних ієрархії каталогів. Кодуванням файлів вважається кодування символів локалі B." #. type: =head1 #: wcd.pod:1054 msgid "FILES" msgstr "ФАЙЛИ" #. type: textblock #: wcd.pod:1056 msgid "If the environment variable I is set wcd will use I instead of I. All C<*.wcd> files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the DOS version. The Cygwin version of wcd behaves as the Unix version." msgstr "Якщо встановлено змінну середовища I, використовуватиме I замість I. Усі файли C<*.wcd> є текстовими файлами. Їх можна редагувати у звичайному текстовому редакторі. Версія wcd для командної оболонки Windows поводиться так само, як версія для DOS. Версія wcd для Cygwin поводиться як версія для Unix." #. type: =item #: wcd.pod:1065 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1067 msgid "The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section INSTALLATION." msgstr "Сама програма. У оболонках Unix програма завжди викликається функцією або альтернативною командою, оскільки поточний робочий каталог у оболонці Unix можна змінювати лише за допомогою вбудованої команди cd. Див. також розділ «ВСТАНОВЛЕННЯ»." #. type: =item #: wcd.pod:1072 msgid "B" msgstr "B<типовий файл даних ієрархії каталогів>" #. type: textblock #: wcd.pod:1074 msgid "This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one." msgstr "Це типовий файл даних ієрархії каталогів, де wcd шукає відповідники. Якщо цей файл непридатний до читання, wcd створить новий." #. type: verbatim #: wcd.pod:1077 #, no-wrap msgid "" " DOS: \\treedata.wcd or %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" msgstr "" " DOS: \\treedata.wcd або %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" #. type: =item #: wcd.pod:1080 msgid "B" msgstr "B<додатковий файл даних ієрархії каталогів>" #. type: textblock #: wcd.pod:1082 msgid "An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also." msgstr "Необов’язковий додатковий файл даних ієрархії каталогів. Якщо такий файл існує і є придатним до читання, wcd спробує знайти відповідники і у цьому файлі." #. type: verbatim #: wcd.pod:1085 #, no-wrap msgid "" " DOS: \\extra.wcd or %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" msgstr "" " DOS: \\extra.wcd або %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" #. type: =item #: wcd.pod:1088 msgid "B" msgstr "B<файл блокувань>" #. type: textblock #: wcd.pod:1090 msgid "In this optional file wcd places banned paths. See option B<-b>. Wildcards are supported." msgstr "До цього додаткового файла wcd записує заблоковані шляхи. Див. параметр B<-b>. Передбачено підтримку символів-замінників." #. type: verbatim #: wcd.pod:1093 #, no-wrap msgid "" " DOS: \\ban.wcd or %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" msgstr "" " DOS: \\ban.wcd або %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" #. type: =item #: wcd.pod:1096 msgid "B" msgstr "B<файл альтернативних назв>" #. type: textblock #: wcd.pod:1098 msgid "Optional file with wcd aliases. See option B<-l>." msgstr "Необов’язковий файл із записами альтернативних назв wcd. Див. параметр B<-l>." #. type: verbatim #: wcd.pod:1100 #, no-wrap msgid "" " DOS: \\alias.wcd or %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" msgstr "" " DOS: \\alias.wcd або %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" #. type: =item #: wcd.pod:1103 msgid "B" msgstr "B<файл stack>" #. type: textblock #: wcd.pod:1105 msgid "In this file wcd stores its stack. The drive letter can be changed with the B<-d> option." msgstr "У цьому файлі зберігається стос каталогів wcd. Літеру диска можна змінити за допомогою параметра B<-d>." #. type: verbatim #: wcd.pod:1108 #, no-wrap msgid "" " DOS: c:\\stack.wcd or %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" msgstr "" " DOS: c:\\stack.wcd або %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" #. type: textblock #: wcd.pod:1111 msgid "The name of the stack file can be changed with environment variable I. See section ENVIRONMENT VARIABLES." msgstr "Назву файла стосу можна змінити за допомогою змінної середовища I. Див. розділ «ЗМІННІ СЕРЕДОВИЩА»." #. type: =item #: wcd.pod:1114 msgid "B" msgstr "B<скрипт go>" #. type: textblock #: wcd.pod:1116 msgid "This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the B<-d> option. For history reasons it is placed by default in C<$HOME/bin> on Unix systems. The directory of this file can be changed with the option B<-G>." msgstr "Це скрипт командної оболонки, який wcd.exe створює під час кожного запуску. Від використовується функцією або альтернативною командою. Літеру диска можна змінити за допомогою параметра B<-d>. З історичних міркувань у системах Unix цей файл типово зберігається у C<$HOME/bin>. Каталог цього файла можна змінити за допомогою параметра B<-G>." #. type: verbatim #: wcd.pod:1121 #, no-wrap msgid "" " DOS bash: c:/wcd.go or $HOME/wcd.go\n" " Windows Command Prompt: c:\\wcdgo.bat or %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2 Command Prompt: c:\\wcdgo.cmd or %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" msgstr "" " bash для DOS: c:/wcd.go або $HOME/wcd.go\n" " командна оболонка Windows: c:\\wcdgo.bat або %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " командна оболонка OS/2: c:\\wcdgo.cmd або %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" #. type: =item #: wcd.pod:1129 msgid "B" msgstr "B<файл відносних шляхів у ієрархії каталогів>" #. type: textblock #: wcd.pod:1131 msgid "Text file with relative paths from I. See options B<+S>, B<-n> and B<+n>." msgstr "Текстовий файл з відносними шляхами щодо каталогу I<КАТАЛОГ>. Див. параметри B<+S>, B<-n> та B<+n>." #. type: verbatim #: wcd.pod:1134 #, no-wrap msgid "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" msgstr "" " DOS: <шлях>\\rtdata.wcd\n" " Unix: <шлях>/.rtdata.wcd\n" "\n" #. type: =head1 #: wcd.pod:1139 msgid "ENVIRONMENT VARIABLES" msgstr "ЗМІННІ СЕРЕДОВИЩА" #. type: =item #: wcd.pod:1143 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1145 msgid "Wcd uses by default environment variable I to determine where to store its files. See also section FILES. This can be overruled with environment variable I." msgstr "Типово, wcd використовує змінну середовища I для визначення місця, де зберігатимуться файли програми. Див. також розділ «ФАЙЛИ». Перевизначити каталог можна за допомогою змінної середовища I." #. type: textblock #: wcd.pod:1149 msgid "I also defines where to start scanning the disk when option B<-s> is used. This can be overruled with the environment variable I." msgstr "I також визначає місце, звідки слід розпочинати сканування диска, якщо використано параметр B<-s>. Перевизначити це місце можна за допомогою змінної середовища I." #. type: textblock #: wcd.pod:1153 msgid "For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is required that I or I is set. For the other versions of wcd the use of these variables is optional." msgstr "У версіях для Unix, Cygwin, Windows PowerShell, WinZsh та MSYS слід встановити значення I або I. Для інших версій wcd використання цих змінних є необов’язковим." #. type: textblock #: wcd.pod:1157 msgid "If I is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory I. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from I. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.:" msgstr "Якщо змінну I встановлено у DOS/Windows, wcd розташує свої файли (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) у каталозі I. Після встановлення змінної поведінка wcd стає еквівалентною до версії wcd для Unix. Типово, wcd скануватиме диск, починаючи з I. Сканування дисків не виконуватиметься у автоматичному режимі після зміни диска. Про потребу у скануванні слід повідомити явно. Приклад:" #. type: verbatim #: wcd.pod:1164 #, no-wrap msgid "" " wcd -S c: -A d: -A e:\n" "\n" msgstr "" " wcd -S c: -A d: -A e:\n" "\n" #. type: textblock #: wcd.pod:1166 msgid "Matching of directories is now global over all scanned drives." msgstr "Після цього встановлення відповідності каталогів буде загальним на усіх сканованих дисках." #. type: =item #: wcd.pod:1169 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1171 msgid "Environment variable I can be used to change the location of wcd's files. If both I and I are set, I will be used instead of I." msgstr "Для зміни місця зберігання файлів wcd слід використовувати змінну середовища I. Якщо встановлено одразу I і I, замість I буде використано I." #. type: textblock #: wcd.pod:1175 msgid "In wcd versions prior to 5.1.5 I also changed the default scan directory. This has changed. Since version 5.1.5 I does not change the default scan directory. See option B<-s>. From version 5.1.5, use environment I to overrule the default scan directory." msgstr "З версіях wcd до версії 5.1.5 типовий каталог сканування можна змінити також за допомогою змінної I. У наступних версіях таку поведінку було змінено. Починаючи з версії 5.1.5, I не змінює типового каталогу сканування. Див. параметр B<-s>. Починаючи з версії 5.1.5, для перевизначення типового каталогу сканування слід використовувати змінну середовища I." #. type: textblock #: wcd.pod:1180 msgid "Example for DOS, Windows, OS/2 Command Prompt:" msgstr "Приклад для командних оболонок DOS, Windows, OS/2:" #. type: verbatim #: wcd.pod:1182 #, no-wrap msgid "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" msgstr "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" #. type: textblock #: wcd.pod:1184 wcd.pod:1205 wcd.pod:1225 wcd.pod:1250 msgid "An example for POSIX type shells:" msgstr "Приклад для командних оболонок типу POSIX:" #. type: verbatim #: wcd.pod:1186 #, no-wrap msgid "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" msgstr "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" #. type: textblock #: wcd.pod:1188 wcd.pod:1209 wcd.pod:1229 wcd.pod:1254 msgid "An example for Csh type shells:" msgstr "Приклад для командних оболонок типу Csh:" #. type: verbatim #: wcd.pod:1190 #, no-wrap msgid "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" msgstr "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" #. type: =item #: wcd.pod:1192 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1194 msgid "Use environment variable I to overrule the default scan directory I. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated." msgstr "Для перевизначення встановленого за допомогою змінної середовища I типового каталогу сканування скористайтеся змінною середовища I. Щоб визначити декілька каталогів, скористайтеся списком каталогів, відокремлених двокрапкою (Unix). У DOS або Windows записи у списку слід відокремлювати крапкою з комою." #. type: textblock #: wcd.pod:1199 msgid "Examples for DOS, Windows, OS/2 Command Prompt:" msgstr "Приклади для командних оболонок DOS, Windows, OS/2:" #. type: verbatim #: wcd.pod:1201 #, no-wrap msgid "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" msgstr "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" #. type: verbatim #: wcd.pod:1203 #, no-wrap msgid "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" msgstr "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" #. type: verbatim #: wcd.pod:1207 #, no-wrap msgid "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" #. type: verbatim #: wcd.pod:1211 #, no-wrap msgid "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" #. type: =item #: wcd.pod:1213 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1215 msgid "Specify filters with environment variable I. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the I variable. The case sensitivity is mandated by the Operating system." msgstr "Фільтри можна вказати за допомогою змінної середовища I. Усі каталоги, які не відповідають цим фільтрам, буде проігноровано. Записи у списку слід відокремлювати типовим роздільником каталогів у шляхах командної оболонки. Це щось подібне до визначення змінної середовища I. Те, чи буде враховано регістр символів, визначається параметрами операційної системи." #. type: textblock #: wcd.pod:1221 wcd.pod:1246 msgid "An example for DOS, Windows, OS/2 Command Prompt:" msgstr "Приклад для командних оболонок DOS, Windows, OS/2:" #. type: verbatim #: wcd.pod:1223 #, no-wrap msgid "" " set WCDFILTER=projects;doc\n" "\n" msgstr "" " set WCDFILTER=projects;doc\n" "\n" #. type: verbatim #: wcd.pod:1227 #, no-wrap msgid "" " export WCDFILTER=\"projects:doc\"\n" "\n" msgstr "" " export WCDFILTER=\"projects:doc\"\n" "\n" #. type: verbatim #: wcd.pod:1231 #, no-wrap msgid "" " setenv WCDFILTER \"projects:doc\"\n" "\n" msgstr "" " setenv WCDFILTER \"projects:doc\"\n" "\n" #. type: =item #: wcd.pod:1233 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1235 msgid "The paths specified with environment I will be banned by wcd. See also option B<-b>. Specify a list of paths separated by shell I separator." msgstr "Шляхи, вказані за допомогою змінної середовища I, вважатимуться заблокованими для wcd. Див. також параметр B<-b>. Записи у списку шляхів слід відокремлювати типовим роздільником змінної I командної оболонки." #. type: =item #: wcd.pod:1239 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1241 msgid "The paths specified with environment I will be excluded by wcd. See also options B<-x> and B<-xf>. Specify a list of paths separated by shell I separator." msgstr "Шляхи, вказані за допомогою змінної середовища I, вважатимуться виключеними для wcd. Див. також параметри B<-x> та B<-xf>. Записи у списку шляхів слід відокремлювати типовим роздільником змінної I командної оболонки." #. type: verbatim #: wcd.pod:1248 #, no-wrap msgid "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" msgstr "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" #. type: verbatim #: wcd.pod:1252 #, no-wrap msgid "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" #. type: verbatim #: wcd.pod:1256 #, no-wrap msgid "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" #. type: =item #: wcd.pod:1258 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1260 msgid "Set the base of user's home directories. On DOS/Windows the default value is C<\\\\users>. On Unix/Cygwin the default value is C. This variable is used to scan treedata files of other users. See also options B<-u> and B<+u>. In verbose mode wcd will print all filters, bans and excludes. See option B<-v>." msgstr "Встановлює основний каталог для домашніх каталогів користувачів. У DOS або Windows типовим значенням змінної є C<\\\\users>. У Unix або Cygwin типовим значенням є C. Ця змінна середовища використовується для сканування файлів даних ієрархії каталогів інших користувачів. Див. також параметри B<-u> та B<+u>. У докладному режимі wcd виводитиме усі фільтри, блокування та виключення. Див. параметр B<-v>." #. type: =item #: wcd.pod:1267 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1269 msgid "Wcd gives preference to I over the default stack file name (see section FILES). With this variable each shell (or used terminal emulator) can have its private stack of used directories." msgstr "Wcd надає перевагу значенню змінної I над типовою назвою файла стосу (див. розділ «ФАЙЛИ»). За допомогою цієї змінної можна визначити окремий стос використаних каталогів для декількох різних командних оболонок (або використаних емуляторів термінала)." #. type: textblock #: wcd.pod:1273 msgid "To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell." msgstr "Використання файла з унікальною назвою на основі поточного часу у форматі РРРММДД-ГГХХСС для кожної відкритої інтерактивної командної оболонки:" #. type: verbatim #: wcd.pod:1276 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" #. type: textblock #: wcd.pod:1278 msgid "For a stack per xterm(1), use the xterm I environment variable:" msgstr "Для окремого стосу на кожний екземпляр xterm(1) скористайтеся змінної середовища I для xterm:" #. type: verbatim #: wcd.pod:1280 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" #. type: textblock #: wcd.pod:1282 msgid "For GNU screen(1), to use stack per screen:" msgstr "Для GNU screen(1), використання окремого стосу на екземпляр screen:" #. type: verbatim #: wcd.pod:1284 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" #. type: =item #: wcd.pod:1286 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1288 msgid "If the environment variable I is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are C and C." msgstr "Якщо визначено змінну середовища I, wcd з інтерфейсом на основі ncurses шукатиме локальні визначення термінала до виконання пошуку у стандартному місці. Це корисно, якщо визначення термінала зберігаються у нестандартному місці. Часто використовуються стандартні місця C та C." #. type: =item #: wcd.pod:1294 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1296 msgid "Wcd with PDCurses interface recognizes the environment variable I. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt:" msgstr "Wcd з інтерфейсом на основі PDCurses розпізнає змінну середовища I. Якщо встановлено цю змінну середовища, PDCurses скопіює вміст екрана на час запуску wcd; після завершення роботи wcd вміст екрана буде відновлено. Приклад для командної оболонки Windows:" #. type: verbatim #: wcd.pod:1302 #, no-wrap msgid "" " set PDC_RESTORE_SCREEN=1\n" "\n" msgstr "" " set PDC_RESTORE_SCREEN=1\n" "\n" #. type: textblock #: wcd.pod:1304 msgid "Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width." msgstr "У Windows передбачено можливість зберігання лише буфера незначного обсягу. Тому повне відновлення не завжди можливе. Якщо вміст буфера є доволі значним, до консолі після виходу з wcd буде виведено випадкові символи." #. type: =item #: wcd.pod:1309 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1311 msgid "Printing of C<#!$SHELL> on the first line of the go-script for POSIX type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable I must be set in environment using the C command, otherwise wcd can't read the variable." msgstr "Для виведення 8-бітових символів у скриптах переходу для командних оболонок типу POSIX та C слід вказати C<#!$SHELL> у першому рядку. Якщо цього не зробити, у деяких оболонках скрипт переходу вважатиметься бінарним файлом і не використовуватиметься. У bash Cygwin у середовищі має бути визначено змінну I за допомогою команди C, інакше wcd не зможе прочитати змінну." #. type: =item #: wcd.pod:1319 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1321 msgid "Wcd for DOS bash uses C<$BASH> instead of C<$SHELL>, because C<$SHELL> points to the DOS command shell. One may need to define C<$BASH> with an C command, otherwise wcd can't read the variable." msgstr "Wcd для bash DOS використовується C<$BASH> замість C<$SHELL>, оскільки C<$SHELL> вказує на командну оболонку DOS. Можливо, слід визначити змінну C<$BASH> за допомогою команди C, інакше wcd не зможе прочитати змінну." #. type: =head1 #: wcd.pod:1328 msgid "SEE ALSO" msgstr "ТАКОЖ ПЕРЕГЛЯНЬТЕ" #. type: textblock #: wcd.pod:1330 msgid "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," msgstr "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," #. type: =head1 #: wcd.pod:1338 msgid "AUTHORS" msgstr "АВТОРИ" #. type: textblock #: wcd.pod:1340 msgid "Wcd was written by Erwin Waterlander " msgstr "Wcd створено Erwin Waterlander " #. type: textblock #: wcd.pod:1342 msgid "Project homepage: L" msgstr "Домашня сторінка проекту: L" #. type: textblock #: wcd.pod:1345 msgid "SourceForge: L" msgstr "SourceForge: L" #. type: textblock #: wcd.pod:1348 msgid "Freecode: L" msgstr "Freecode: L" #. type: textblock #: wcd.pod:1351 msgid "The manual page formatting was provided by Jari Aalto ." msgstr "Форматування сторінки підручника було виконано Jari Aalto ." #. type: textblock #: wcd.pod:1354 msgid "NCD was originally written by Brad Kingsbury for Peter Norton's \"Norton Utilities\" around 1987. See also L" msgstr "Початкову версію NCD було створено Brad Kingsbury для пакунка \"Norton Utilities\" Пітера Нортона близько 1987 року. Див. також L" #~ msgid "Option -x must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #~ msgstr "Параметр -x слід вказувати до усіх параметрів сканування (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #~ msgid "Replace with the location where wcd executable have been installed. Reload the shell initialization files or start new shell." #~ msgstr "Замініть <ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку." wcd-5.2.5/src/man/uk/man1/wcd.10000664000175000017500000027504012345660657016220 0ustar waterlanwaterlan.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.20) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "wcd 1" .TH wcd 1 "2014-06-10" "wcd" "2014-06-10" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "НАЗВА" .IX Header "НАЗВА" wcd \- довільна зміна каталогу (Wherever Change Directory) .PP засіб для зміни каталогу (chdir) у \s-1DOS\s0 та Unix .SH "КОРОТКИЙ ОПИС" .IX Header "КОРОТКИЙ ОПИС" .Vb 1 \& wcd [параметри] [каталог] .Ve .SH "ОПИС" .IX Header "ОПИС" .SS "Огляд" .IX Subsection "Огляд" Wcd — програма, що керується з командного рядка і надає змогу швидко змінювати каталоги. Вона економить час на введенні даних з клавіатури. Достатньо ввести лише частину назву каталогу і wcd перейде до цього каталогу. У wcd передбачено можливості пришвидшення вибору потрібного варіанта з декількох, створення альтернативних назв каталогів та блокування каталогів. Крім того, у wcd ви зможете скористатися повноекранною інтерактивною навігацією деревом каталогів з швидким пошуком. .PP Ідеї wcd часткового запозичено з Norton Change Directory (\s-1NCD\s0). Першу версію \&\s-1NCD\s0 у \fIThe Norton Utilities, Release 4\fR для \s-1DOS\s0 було випущено 1987 року компанією Пітера Нортона (Peter Norton). .PP Wcd було портовано на різні командні оболонки: command.com для \s-1DOS,\s0 cmd.exe та PowerShell для Windows, cmd.exe для \s-1OS/2\s0 і командні оболонки Unix, зокрема Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) та C (csh), а також інші оболонки, що працюють у будь\-якій операційній системі. .PP У Wcd передбачено підтримку 8\-бітових наборів символів на усіх системах та додаткову підтримку Unicode. Докладніше про це у розділі «ЛОКАЛІЗАЦІЯ». .PP Щоб дізнатися більше про налаштовування wcd для особистого користування, зверніться до розділу «ВСТАНОВЛЕННЯ». .SS "Основні прийоми використання" .IX Subsection "Основні прийоми використання" Типово (якщо не використано символів\-замінників), wcd шукає каталог, назва якого починається з введених вами символів. .PP Наприклад, вказана нижче команда змінить каталог на каталог поточного користувача \f(CW\*(C`/home/user/Desktop\*(C'\fR: .PP .Vb 1 \& wcd Desk .Ve .PP Якщо буде виявлено декілька відповідників, wcd покаже користувачеві список цих відповідників. Після цього користувач зможе вибрати потрібний варіант декількома натисканнями клавіш (найчастіше, достатньо одного натискання). .SS "Шаблони\-замінники" .IX Subsection "Шаблони-замінники" У wcd передбачено підтримку таких символів\-замінників: .PP .Vb 4 \& * відповідає будь\-якій послідовності символів (нульової або більшої довжини) \& ? відповідає довільному символу \& [НАБІР] відповідає довільному символу з вказаного набору, \& [!НАБІР] або [^НАБІР] відповідає будь\-якому символу, що не належить до вказаного набору. .Ve .PP Набір символів може складатися з окремих символів або діапазонів символів. Діапазон слід вказувати так: \fIсимвол дефіс символ\fR, наприклад, \&\f(CW\*(C`0\-9\*(C'\fR або \f(CW\*(C`A\-Z\*(C'\fR. Мінімальним набором символів у конструкції \f(CW\*(C`[..]\*(C'\fR є \&\f(CW\*(C`[0\-9a\-zA\-Z_]\*(C'\fR. Можна використовувати символи з розширеного набору (тобто 8\-бітові символи), якщо у системі передбачено підтримку цих символів. Щоб придушити використання символів з набору \f(CW\*(C`[]*?!^\-\e\*(C'\fR для побудови синтаксичних лексем у межах конструкцій \f(CW\*(C`[..]\*(C'\fR тобто їхнього буквального використання, додавайте перед цими символами символ зворотної риски (\f(CW\*(C`\e\*(C'\fR). .PP Використання символів\-замінників надає доступ до досить потужних можливостей з пошуку. Наприклад, за допомогою вказаного нижче виразу можна знайти будь\-який каталог, назва якого завершується на «top»: .PP .Vb 1 \& wcd *top .Ve .PP Знайти каталоги, у назві яких будь\-де міститься частина «top»: .PP .Vb 1 \& wcd *top* .Ve .PP Знайти будь\-який каталог, назва якого починається з «a», «b» або «c»: .PP .Vb 1 \& wcd [a\-c]* .Ve .PP Крім того, можна вказати частину шляху до каталогу. У наведеному нижче прикладі wcd шукатиме каталог, назва якого починається з «Desk», шлях якого відповідає шаблону \fI*me/Desk*\fR. .PP .Vb 1 \& wcd me/Desk .Ve .PP Можна використовувати будь\-який вираз, що містить риски та символи замінники. Приклад: .PP .Vb 1 \& wcd src*/*1?/a*2 .Ve .SS "Інші варіанти використання" .IX Subsection "Інші варіанти використання" Якщо у виразі не використано символів\-замінників, а wcd знаходить повний відповідник з вказаним шляхом і назвою, wcd типово проігнорує усі відповідники, які могло б бути знайдено з використанням символів\-замінників. Типову поведінку програми можна змінити за допомогою параметра \fB\-w\fR. .PP Інтерактивний навігатор ієрархією каталогів можна запустити за допомогою параметра \fB\-g\fR. .PP .Vb 1 \& wcd \-g .Ve .PP Wcd створює файл даних ієрархії (treedata) у каталогах, звідки виконується пошук. У системах Unix та Windows wcd додає символічні посилання на файл treedata під час сканування диска, але не переходить за створеними посиланнями. Перехід за посиланнями може призвести до зациклювання wcd у ієрархії каталогів або сканування великих масивів каталогів у мережі. .PP Крім того, wcd може переходити до каталогів, яких немає у файлі treedata. Приклад: .PP .Vb 1 \& wcd .. .Ve .PP Якщо wcd буде виявлено відповідник критерію пошуку, але програма не зможе перейти до цього каталогу, буде виконано спробу вилучення каталогу з типового файла treedata, але не з додаткового файла treedata. Див. також параметр \fB\-k\fR. .PP Wcd зберігає на диску стос переходів за каталогами. Типовим обсягом стосу є 10. Перехід стосом здійснюється циклічно. Див. параметри \fB\-z\fR, \fB\-\fR, \fB+\fR та \fB=\fR. .PP У середовищах з декількома користувачами для переходу до каталогів, що належать іншим користувачам, можна скористатися параметром \fB\-u\fR. .PP У операційних системах \s-1DOS\s0 і Windows можна використовувати як роздільник між каталогами як символ «/», так і символ «\e». .PP У системах \s-1DOS\s0 та Windows передбачено можливість переходу до каталогу на іншому диску. Для цього достатньо перед назвою каталогу на диску вказати назву диска. .PP .Vb 1 \& wcd d:games .Ve .SS "Шляхи \s-1UNC\s0 Windows" .IX Subsection "Шляхи UNC Windows" У версіях для Windows (для командного рядка, PowerShell, \s-1MSYS,\s0 zsh, cygwin) передбачено підтримку шляхів \s-1UNC LAN\s0 Windows для \s-1SMB\s0 без літер дисків, наприклад \f(CW\*(C`\e\eназва_сервера\eназва_ресурсу\*(C'\fR. У wcd для командного рядка Windows для автоматичного прив’язування шляху \s-1UNC\s0 до літери диска використовується команда «pushd». У In Windows PowerShell, \s-1MSYS,\s0 zsh та Cygwin передбачено повноцінну підтримку шляхів \s-1UNC.\s0 Шлях \s-1UNC\s0 може бути поточним робочим каталогом. .SS "Інтерфейси" .IX Subsection "Інтерфейси" У wcd передбачено три різні інтерфейси вибору потрібного варіанта зі списку відповідників. Інтерфейс можна вибрати під час збирання програми. .PP Першим інтерфейсом є звичайні інтерфейси введення та виведення (stdin/stdout). До термінала буде виведено нумерований список варіантів. Користувач зможе вибрати відповідний варіант введенням його номера з наступним натисканням клавіші . У цьому інтерфейсі не передбачено можливостей гортання для довгих списків. Для цього доведеться користуватися можливостями з гортання термінала або консолі. Код цього інтерфейсу доволі малий і портований. .PP Другий інтерфейс побудовано на основі бібліотеки conio. У ньому передбачено можливості гортання. Користувачу буде показано список з літерним позначенням пунктів. Для вибору пункту у списку достатньо натиснути клавішу з відповідною літерою. Цей інтерфейс працює швидше, оскільки треба натискати менше клавіш. Після вибору варіанта, якщо це можливо, зображення на екрані буде відновлено до стану перед показом варіантів. Якщо користувач надає перевагу цифровому позначенню пунктів, можна скористатися параметром \fB\-N\fR. .PP Третій інтерфейс побудовано на основі бібліотеки curses. Він подібний до інтерфейсу на основі conio. Версія wcd на основі curses має додатковий «графічний» інтерфейс. За його допомогою користувач зможе вибрати каталог у повноекранному інтерактивному навігаторі ієрархією каталогів. Передбачено навігацію та пошук у стилі \fIvim\fR\|(1). Задіяти цей інтерфейс можна за допомогою параметра \fB\-g\fR. .PP За допомогою параметра командного рядка \fB\-o\fR програму можна завжди перевести до стандартного інтерфейсу stdin/stdout. .SH "ПАРАМЕТРИ" .IX Header "ПАРАМЕТРИ" .IP "\fB\-a\fR" 4 .IX Item "-a" Додати поточний шлях до типового файла ієрархії. .Sp За допомогою цього параметра можна швидко додати поточний шлях до типового файла ієрархії каталогів. Повторне сканування усього диска у певних випадках може бути досить тривалою справою. .IP "\fB\-aa\fR" 4 .IX Item "-aa" Додати поточний і усі батьківські шляхи до типового файла ієрархії каталогів (treedata). .IP "\fB\-A ШЛЯХ\fR" 4 .IX Item "-A ШЛЯХ" Сканувати ієрархію каталогів, починаючи з каталогу \fIШЛЯХ\fR, і дописати усі виявлені каталоги до файла ієрархії каталогів (treedata). Приклади: .Sp .Vb 3 \& wcd \-A . \& wcd \-A /home \-A /etc \& wcd \-A d: \-A e: \-A \e\eserver\eshare .Ve .Sp У Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: \f(CW\*(C`wcd \-A \&\e\eназва_сервера\*(C'\fR. .Sp Див. також параметри \fB\-S\fR, \fB\-s\fR та \fB\-E\fR. .IP "\fB\-b\fR" 4 .IX Item "-b" Заблокувати поточний шлях. .Sp Wcd додає поточний шлях до файла блокування. Це означає, що wcd ігноруватиме усі відповідники з поточного каталогу і усіх його підкаталогів. .Sp Файл блокувань (ban) можна редагувати у текстовому редакторі. Передбачено підтримку символів\-замінників. Відповідність назв встановлюється за абсолютними шляхами. .Sp Заблоковані шляхи не виключаються зі шляхів сканування диска. Щоб виключити заблоковані шляхи, скористайтеся параметром \fB\-xf\fR. .IP "\fB\-c, \-\-direct\-cd\fR" 4 .IX Item "-c, --direct-cd" Безпосередній режим \s-1CD.\s0 Типово, wcd працює так: .Sp .Vb 2 \& 1. Спробувати знайти відповідник у файлах ієрархії (treedata). \& 2. Якщо нічого не знайдено, спробувати відкрити каталог, назву якого було введено. .Ve .Sp У безпосередньому режимі \s-1CD\s0 wcd виконує обробку запиту у зворотному порядку. .Sp .Vb 2 \& 1. Cпробувати відкрити каталог, назву якого було введено. \& 2. Якщо не вдалося, знайти відповідник у файлах ієрархії (treedata). .Ve .IP "\fB\-d ДИСК\fR" 4 .IX Item "-d ДИСК" Встановити диск для файла стосу і переходу (лише для \s-1DOS\s0). .Sp Типово, файл стосу та скрипт переходу зберігаються на диску C:, якщо не встановлено значення змінної середовища \fI\s-1HOME\s0\fR. Цим параметром можна скористатися, якщо диск C: захищено від запису. Цей параметр слід вказувати перед параметрами роботи зі стосом \fB\-\fR, \fB+\fR та \fB=\fR. .IP "\fB\-e\fR" 4 .IX Item "-e" Додати поточний шлях до додаткового файла ієрархії. .Sp За допомогою цього параметр можна швидко додати поточний шлях до додаткового файла ієрархії. .IP "\fB\-ee\fR" 4 .IX Item "-ee" Додати поточний і усі батьківські шляхи до додаткового файла ієрархії каталогів (treedata). .IP "\fB\-E ШЛЯХ\fR" 4 .IX Item "-E ШЛЯХ" Сканувати ієрархію каталогів, починаючи з каталогу \fIШЛЯХ\fR, і дописати усі виявлені каталоги до додаткового файла ієрархії каталогів (treedata). Див. також параметри \fB\-A\fR та \fB\-S\fR. .IP "\fB\-f ФАЙЛ\fR" 4 .IX Item "-f ФАЙЛ" Прочитати файл даних ієрархії каталогів \fIФАЙЛ\fR. Не виконувати читання з типового файла ієрархії каталогів. .IP "\fB+f ФАЙЛ\fR" 4 .IX Item "+f ФАЙЛ" Прочитати дані з файла ієрархії каталогів \fIФАЙЛ\fR на додачу до даних з типового файла даних ієрархії каталогів. .IP "\fB\-g\fR" 4 .IX Item "-g" Графічний інтерфейс (лише у версії з інтерфейсом на основі curses). .Sp Wcd запускає текстовий «графічний» інтерфейс на основі curses. Користувач може вибрати каталог за допомогою повноекранного інтерактивного навігатора ієрархією каталогів. Передбачено навігацію і пошук у стилі \fIvim\fR\|(1). .Sp Якщо рядок пошуку не вказано, wcd показує усю ієрархію каталогів з типового та додаткового файлів даних ієрархії. .Sp Якщо рядок пошуку вказано, список відповідників буде показано як ієрархію каталогів. .Sp Типове компонування ієрархії подібне до компонування каталогів у початковій версії \s-1NCD\s0 у \s-1DOS.\s0 Різниця у компонуванні полягає у тому, що у \s-1NCD\s0 усі каталоги одного рівня було вирівняно однаковим відступом у всьому дереві. Це було можливим у \s-1NCD,\s0 оскільки максимальна довжина назви каталогу у \s-1DOS\s0 дорівнювала 12 (8.3) символам. У сучасних операційних системах назви каталогів можуть бути дуже довгими і різниця у довжинах може бути дуже великою. Тому теки однакового рівня вкладеності не вирівняно за однією лінією за усією ієрархією каталогів у wcd, а лише за гілками ієрархії. Отже, під час руху вгору\-вниз ієрархією каталогів користувач спостерігатиме за зсувами списку у різні боки. .Sp Навігаційна поведінка у wcd абсолютно збігається з початковою версією \&\s-1NCD.\s0 Наприклад, якщо ви натиснете клавішу зі стрілкою вниз, ви перейдете до наступного каталогу з тим самим рівнем вкладеності, переходячи гілками ієрархії. Це пришвидшує навігацію ієрархією каталогів. .Sp Поведінку засобу навігації можна змінити за допомогою параметрів \fB\-Ta\fR, \&\fB\-TC\fR та \fB\-Tc\fR. .IP "\fB\-gd\fR" 4 .IX Item "-gd" Створити дамп файлів ієрархії каталогів (treedata) і вивести дані до стандартного виведення (stdout). .IP "\fB\-G ШЛЯХ\fR" 4 .IX Item "-G ШЛЯХ" Записати скрипт переходу у каталозі \fIШЛЯХ\fR. Наприклад, у Unix, \f(CW\*(C`wcd \-G ШЛЯХ\*(C'\fR призведе до запису скрипту переходу до \fBШЛЯХ/wcd.go\fR. .IP "\fB\-GN, \-\-no\-go\-script\fR" 4 .IX Item "-GN, --no-go-script" Не створювати скрипт переходу. Цим параметром можна скористатися у поєднанні з параметром \fB\-j\fR, якщо з якихось причин створення wcd скрипту переходу є небажаним. .IP "\fB\-h, \-\-help\fR" 4 .IX Item "-h, --help" Показати довідку щодо використання і завершити роботу. .IP "\fB\-i, \-\-ignore\-case\fR" 4 .IX Item "-i, --ignore-case" Ігнорувати регістр символів. У версіях wcd для \s-1DOS\s0 та Windows така поведінка є типовою. У версіях для Unix/Cygwin регістр типово враховується. .IP "\fB+i, \-\-no\-ignore\-case\fR" 4 .IX Item "+i, --no-ignore-case" Брати до уваги регістр символів. Див. також параметр \fB\-i\fR. .IP "\fB\-I, \-\-ignore\-diacritics\fR" 4 .IX Item "-I, --ignore-diacritics" Ігнорувати діакритичні знаки для писемностей на основі латиниці. Програма вважатиме літери з діакритичними знаками еквівалентними до їхніх відповідників без діакритичних знаків. Передбачено підтримку таких кодувань латиниці: \s-1CP437, CP850, CP852, CP1250, CP1252, ISO\-8859\-1, ISO\-8859\-2\s0 та Unicode Latin\-1, Latin Extended-A, а також Latin Extended-B. Див. також .IP "\fB+I, \-\-no\-ignore\-diacritics\fR" 4 .IX Item "+I, --no-ignore-diacritics" Брати до уваги діакритичні позначки (типово). Див. також параметр \fB\-I\fR. .IP "\fB\-j, \-\-just\-go\fR" 4 .IX Item "-j, --just-go" Режим простого переходу. .Sp У цьому режимі wcd не показуватиме списку, якщо для вказаної назви буде знайдено декілька відповідників. Wcd просто перейде до першого ж відповідника. Якщо wcd буде викликано знову з тими самими аргументами, програма змінить каталог на наступний пункт у списку тощо. .Sp Wcd виведе назву каталогу, що якого переходитиме до стандартного виведення (stdout). Отже можна скористатися декількома способами встановлення. Можна створити таку функцію для сумісної з \s-1POSIX\s0 командної оболонки: .Sp .Vb 4 \& wcd () \& { \& cd "$($HOME/bin/wcd.exe \-j $@)" \& } .Ve .Sp Якщо ви користуєтеся застарілою командною оболонкою, у якій не передбачено підтримки заміни команди «$()», вам доведеться скористатися підставлянням команди у застарілому стилі з одинарними відкривними лапками. .Sp .Vb 4 \& wcd () \& { \& cd "\`$HOME/bin/wcd.exe \-j $@\`" \& } .Ve .Sp У системах Windows, якщо використано командну оболонку 4NT, можна створити такі альтернативні назви: .Sp .Vb 1 \& alias wcd \`cd %@execstr[wcdwin32.exe \-z 0 \-j %1]\` .Ve .Sp Подібний метод усуває потребу у скрипті переходу, отже, параметр \fB\-j\fR можна використати у поєднанні з параметром \fB\-GN\fR. .IP "\fB\-k, \-\-keep\-paths\fR" 4 .IX Item "-k, --keep-paths" Зберігати шляхи. .Sp Зберігати шляхи до файла даних ієрархії каталогів, якщо wcd не може перейти до відповідного каталогу. Типовою поведінкою програми є вилучення шляхів з файла даних ієрархії, якщо wcd не може перейти до відповідного каталогу. Якщо буде використано цей параметр, програма не вилучатиме відповідних записів каталогів. .IP "\fB\-K, \-\-color\fR" 4 .IX Item "-K, --color" Використовувати кольори у графічному режимі. .IP "\fB\-l АЛЬТЕРНАТИВНА НАЗВА\fR" 4 .IX Item "-l АЛЬТЕРНАТИВНА НАЗВА" Надати поточному шляху альтернативну назву \fIАЛЬТЕРНАТИВНА НАЗВА\fR. Wcd запише поточний шлях з його альтернативною назвою до файла альтернативних назв. Альтернативні назви з різним регістром символів вважаються різними. .IP "\fB\-m КАТАЛОГ\fR" 4 .IX Item "-m КАТАЛОГ" Створити каталог і додати його до файла даних ієрархії. .IP "\fB\-L, \-\-license\fR" 4 .IX Item "-L, --license" Вивести дані щодо умов ліцензування. .IP "\fB\-M КАТАЛОГ\fR" 4 .IX Item "-M КАТАЛОГ" Створити каталог і додати його до додаткового файла даних ієрархії. .IP "\fB\-n ШЛЯХ\fR" 4 .IX Item "-n ШЛЯХ" Прочитати відносний файл даних ієрархії каталогів з каталогу \fIШЛЯХ\fR. .Sp Не виконувати читання з типового файла даних ієрархії каталогів. Файл даних відносних шляхів до каталогів має бути вже створено за допомогою параметра wcd \fB+S\fR. Крім того, \fIШЛЯХ\fR може безпосередньо вказувати на файл. .Sp Приклад. Припустімо, що іншу систему змонтовано до точки монтування \&\f(CW\*(C`/mnt/network\*(C'\fR: .Sp .Vb 1 \& wcd \-n /mnt/network src .Ve .Sp Wcd відкриває файл даних відносних шляхів до каталогів у \f(CW\*(C`/mnt/network/\*(C'\fR. У цьому файлі містяться шляхи відносно відповідного каталогу. .IP "\fB+n ШЛЯХ\fR" 4 .IX Item "+n ШЛЯХ" Прочитати дані з файла даних відносної ієрархії каталогів на додачу до даних з типового файла даних ієрархії каталогів. Див. параметр \fB\-n\fR. .IP "\fB\-N, \-\-numbers\fR" 4 .IX Item "-N, --numbers" Використовувати числа замість літер. .Sp Wcd з інтерфейсом на основі conio або curses (див. розділ «ІНТЕРФЕЙС») типово показує список варіантів з пунктами, позначеними літерами. Якщо використано параметр \fB\-N\fR, пункти у списку буде пронумеровано. Незалежно дві параметра \fB\-N\fR, користувач може натиснути клавішу з літерою або номером для вибору пункту зі списку відповідників. .IP "\fB\-o\fR" 4 .IX Item "-o" Використовувати інтерфейс stdin/stdout. .Sp Якщо з певних причин інтерфейсом на основі conio або curses у wcd не можна або не бажано користуватися, користувач може перемкнути програму на інтерфейс stdin/stdout за допомогою параметра \fB\-o\fR. .IP "\fB\-od, \-\-to\-stdout\fR" 4 .IX Item "-od, --to-stdout" Вивести усі відповідники до stdout. .IP "\fB\-q, \-\-quiet\fR" 4 .IX Item "-q, --quiet" Менше повідомлень. Останній відповідник не виводиться до консолі. .IP "\fB\-r КАТАЛОГ\fR" 4 .IX Item "-r КАТАЛОГ" Вилучити каталог і відповідний запис з файла даних ієрархії каталогів. .Sp Якщо каталог є порожнім, wcd вилучить його і спробує вилучити відповідний запис з файла даних ієрархії каталогів. .IP "\fB\-rmtree КАТАЛОГ\fR" 4 .IX Item "-rmtree КАТАЛОГ" Рекурсивно вилучити каталог і відповідні записи з файла даних ієрархії каталогів. .Sp Wcd вилучить каталог та усі його підкаталоги та файли і витре записи відповідних каталогів з файла даних ієрархії каталогів. .IP "\fB\-s\fR" 4 .IX Item "-s" Виконати сканування або повторне сканування диска, починаючи з каталогу \&\fI\f(CI$HOME\fI\fR. Якщо значення змінної \s-1HOME\s0 не визначено, сканування диска виконуватиметься, починаючи з кореневого каталогу, /. .Sp Наявний типовий файл даних ієрархії каталогів буде перезаписано. .Sp Типовий каталог сканування можна перевизначити за допомогою змінної середовища \f(CW\*(C`WCDSCAN\*(C'\fR. Див. розділ «ЗМІННІ СЕРЕДОВИЩА». .IP "\fB\-S ШЛЯХ\fR" 4 .IX Item "-S ШЛЯХ" Виконати сканування ієрархії каталогів, починаючи з каталогу \fIШЛЯХ\fR, і перезаписати типовий файл даних ієрархії каталогів. Див. також параметри \&\fB\-A\fR, \fB\-s\fR та \fB\-E\fR. Наприклад, з параметром \fB\-A\fR ви можете створити типовий файл даних ієрархії каталогів за вашим вибором. Приклади: .Sp Unix: .Sp .Vb 2 \& wcd \-S / \& wcd \-S /home \-A /etc \-A /usr .Ve .Sp DOS/Windows: .Sp .Vb 2 \& wcd \-S c:/ \& wcd \-S c: \-A d: \-A \e\eserver\eshare .Ve .Sp У версіях для Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: \&\f(CW\*(C`wcd \-S \e\eназва_сервера\*(C'\fR. .IP "\fB+S ШЛЯХ\fR" 4 .IX Item "+S ШЛЯХ" Сканувати диск, починаючи з каталогу \fIШЛЯХ\fR, і замінити відносні шляхи у файлі даних відносної ієрархії каталогів. Цей файл використовується, якщо додано параметри \fB\-n\fR і \fB+n\fR. Приклад: \f(CW\*(C`wcd \-n ШЛЯХ джерело\*(C'\fR. .IP "\fB\-t\fR" 4 .IX Item "-t" Не вилучати із записів рядок тимчасового каталогу монтування, \f(CW\*(C`/tmp_mnt\*(C'\fR (лише у Unix) .Sp Типово, wcd вилучає \f(CW\*(C`/tmp_mnt/\*(C'\fR з відповідників. Каталог \f(CW\*(C`/tmp_mnt\*(C'\fR використовується засобом автоматичного монтування. Таку обробку можна вимкнути за допомогою параметра \fB\-t\fR. .IP "\fB\-T, \-\-ascii\-tree\fR" 4 .IX Item "-T, --ascii-tree" Малювати ієрархію за допомогою символів \s-1ASCII.\s0 Скористайтеся цим параметром, якщо символи малювання ліній у терміналі буде показано з помилками. .IP "\fB\-Ta, \-\-alt\-tree\-nav\fR" 4 .IX Item "-Ta, --alt-tree-nav" Альтернативний режим навігації у форматі графічної ієрархії каталогів. .Sp У типовому режимі компонування ієрархії у стилі \s-1NCD\s0 параметр \fB\-Ta\fR вимикає перехід до непов’язаних каталогів. .Sp У режимі компактної ієрархії альтернативний режим робить навігацію подібною до навігації у програмах для керування файлами з графічним інтерфейсом, зокрема Провіднику Windows або \s-1KDE\s0 Konqueror у Linux. Натискання клавіш зі стрілками вгору і вниз пересуває позначення теки на один рядок вгору або вниз. Першим натисканням клавіші зі стрілкою ліворуч можна згорнути підтеки, наступне натискання — перехід ліворуч. .Sp Перемкнутися між режимами типової і альтернативної навігації без перезапуску програми можна за допомогою натискання комбінації клавіш Shift-A. .Sp Якщо увімкнено режим альтернативної навігації, у нижньому правому куті екрана ви побачите літеру «A». .IP "\fB\-TC, \-\-center\-tree\fR" 4 .IX Item "-TC, --center-tree" Центрований режим перегляду у графічній ієрархії. Позначений каталог залишається посередині екрана. Центрований режим можна увімкнути або вимкнути за допомогою натискання клавіші «t» у режимі графічної ієрархії. .Sp Стандартний нецентрований режим, який мінімізує рух самої ієрархії на екрані, аналогічний до оригінального режиму \s-1NCD.\s0 .IP "\fB\-Tc, \-\-compact\-tree\fR" 4 .IX Item "-Tc, --compact-tree" Типово, «графічну» ієрархію буде намальовано у той самий спосіб, як це робила початкова версія \s-1NCD\s0 для \s-1DOS.\s0 У \s-1DOS\s0 шлях до каталогу може складатися не більше ніж з 66 символів. Використання сучасної структури каталогів, без обмежень на довжину шляхів, може призвести до значного перевищення ширини ієрархії. Щоб подолати ці труднощі, wcd може малювати ієрархію каталогів у компактному форматі, подібному до формату більшості програм для керування файлами з графічним інтерфейсом, по одній теці на рядок. Увімкнути відповідний режим можна за допомогою параметра \fB\-Tc\fR або перемикання натисканням клавіші «m». .IP "\fB\-Td, \-\-cjk\-width\fR" 4 .IX Item "-Td, --cjk-width" У застарілих шрифтах для показу ієрогліфів східноазійських мов (китайської, японської та корейської) частина символів ієрогліфів та символів малювання ліній займають дві позиції замість звичайної для Unicode ширини цих символів у одну позицію. Прикладами таких шрифтів є растровий шрифт Chinese \s-1CP936\s0 для Windows та шрифт Simsun. За допомогою цього параметра можна забезпечити правильний показ графічної ієрархії каталогів з використанням застарілих шрифтів з ієрогліфами. .Sp Якщо увімкнено режим ієрогліфів, у нижньому правому куті екрана ви побачите літеру «C». .IP "\fB\-u КОРИСТУВАЧ\fR" 4 .IX Item "-u КОРИСТУВАЧ" Сканувати файл даних ієрархії іншого користувача, \fIКОРИСТУВАЧ\fR, не сканувати типовий файл ієрархії поточного користувача. Див. також розділ ЗМІННІ СЕРЕДОВИЩА, а саме запис щодо змінної \fI\s-1WCDUSERSHOME\s0\fR. .Sp У Unix/Cygwin базовим каталогом для домашніх каталогів користувачів вважається \f(CW\*(C`/home\*(C'\fR. Wcd шукатиме файли \f(CW\*(C`/home/USER/.treedata.wcd\*(C'\fR та \&\f(CW\*(C`/home/USER/.wcd/.treedata.wcd\*(C'\fR, саме у цьому порядку, і читатиме дані з першого ж із цих файлів, який буде знайдено і який виявиться придатним до читання. У DOS/Windows базовим каталогом для домашніх каталогів користувачів вважається \f(CW\*(C`\e\eusers\*(C'\fR, отже, wcd намагається прочитати дані з файлів \&\f(CW\*(C`\e\eusers\eUSER\etreedata.wcd\*(C'\fR та \f(CW\*(C`\e\eusers\eUSER\e.wcd\etreedata.wcd\*(C'\fR. .IP "\fB+u КОРИСТУВАЧ\fR" 4 .IX Item "+u КОРИСТУВАЧ" Прочитати дані з типового файла ієрархії каталогів користувача КОРИСТУВАЧ на додачу до даних з типового файла даних ієрархії каталогів вашого користувача. .IP "\fB\-v, \-\-verbose\fR" 4 .IX Item "-v, --verbose" Показувати докладні повідомлення. З цим параметром wcd виводитиме усі фільтри, блокування та виключення. .IP "\fB\-V, \-\-version\fR" 4 .IX Item "-V, --version" Показати дані щодо версії і завершити роботу. .IP "\fB\-w, \-\-wild\-match\-only\fR" 4 .IX Item "-w, --wild-match-only" Встановлення відповідність для неточних відповідників, лише якщо використано символи\-замінники. .IP "\fB\-x ШЛЯХ\fR" 4 .IX Item "-x ШЛЯХ" Виключити \fIШЛЯХ\fR зі сканування. .Sp Якщо буде використано цей параметр, wcd виключить шлях з назвою \fIШЛЯХ\fR та усі його підкаталоги з переліку шляхів для сканування диска. Передбачено підтримку символів\-замінників та встановлення відповідності за абсолютними шляхами. Параметр \fB\-x\fR у команді можна використовувати декілька разів. .Sp .Vb 1 \& wcd \-x <шлях1> \-x <шлях2> \-s .Ve .Sp Параметр \fB\-x\fR слід вказувати до усіх параметрів сканування (\fB\-s\fR, \fB\-S\fR, \&\fB+S\fR, \fB\-A\fR, \fB\-E\fR). .Sp У системах DOS/Windows слід вказати літеру диска, якщо не визначено змінної середовища \fI\s-1HOME\s0\fR або \fI\s-1WCDHOME\s0\fR. Приклад: .Sp .Vb 1 \& wcd \-x c:/temp \-S c: .Ve .Sp У інших випадках літеру диска не слід вказувати. .Sp .Vb 1 \& wcd \-x /temp \-s .Ve .IP "\fB\-xf ФАЙЛ\fR" 4 .IX Item "-xf ФАЙЛ" Виключити зі сканування усі шляхи, вказані у файлі \fIФАЙЛ\fR. .Sp Якщо використано цей параметр, wcd виключить усі шляхи зі списку у файлі \&\fIФАЙЛ\fR та усі підкаталоги цих шляхів зі сканування диска. Передбачено підтримку символів\-замінників та встановлення відповідності за абсолютними шляхами. Шляхи має бути вказано по одному на рядок. Слід пам’ятати, що wcd ігноруватиме початкові та завершальні пробіли у рядку, оскільки такі пробіли є некоректними символами у назвах каталогів. Параметр \fB\-xf\fR можна вказувати декілька разів. Якщо ви хочете виключити усі заблоковані шляхи зі сканування, можна зробити так (приклад для wcd у unix): .Sp .Vb 1 \& wcd \-xf ~/.ban.wcd \-s .Ve .Sp Передбачено підтримку символів\-замінників. Наприклад, щоб виключити усі каталоги Subversion з файлами, призначеними для адміністрування копії сховища, додайте рядок \f(CW\*(C`*/.svn\*(C'\fR. .Sp Параметр \fB\-xf\fR слід вказувати до усіх параметрів сканування (\fB\-s\fR, \fB\-S\fR, \&\fB+S\fR, \fB\-A\fR, \fB\-E\fR). .IP "\fB\-y, \-\-assume\-yes\fR" 4 .IX Item "-y, --assume-yes" Вважати відповіддю на всі питання «так». .Sp Wcd не проситиме користувача підтвердити дію відповіддю «так» або «ні», відповіддю завжди вважається «так». Цей параметр можна поєднати з параметром \&\fB\-rmtree\fR. Параметр слід вказувати до параметрів, використання яких може призвести до появи питань, на які має відповідати користувач. .IP "\fB\-z ЧИСЛО\fR" 4 .IX Item "-z ЧИСЛО" Встановити для максимального розміру стосу значення ЧИСЛО. .Sp Типовим розміром стосу є 10. Дії зі стосом можна вимкнути встановленням значення 0. Цей параметр слід використовувати перед будь\-якими іншими параметрами, що призводять до дій зі стосом (\fB\-\fR,\fB+\fR,\fB=\fR). Якщо цього не зробити, стосу буде повернуто типовий розмір 10. .Sp Правильна команда: .Sp .Vb 1 \& wcd \-z 50 \- .Ve .Sp Новим розміром стосу буде 50, wcd перейде на один крок назад у стосі. Помилковою була б така команда: .Sp .Vb 1 \& wcd \- \-z 50 .Ve .Sp Wcd повернеться на один каталог назад у стосі, розміру ж стосу буде повернуто типове значення 10. Параметр \fB\-z 50\fR буде проігноровано. .Sp Додайте цей параметр як перший параметр до альтернативної команди wcd або функції, де ця програма використовується. Приклад для сумісних з \s-1POSIX\s0 командних оболонок: .Sp .Vb 5 \& wcd () \& { \& wcd.exe \-z 50 "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .IP "\fB\-[ЧИСЛО]\fR" 4 .IX Item "-[ЧИСЛО]" Повернутися на ЧИСЛО пунктів назад у стосі. Типовим є значення у один пункт. .Sp Повернутися на один каталог назад. Команда \f(CW\*(C`wcd \-\*(C'\fR поверне вас на один каталог назад. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: \f(CW\*(C`wcd \-3\*(C'\fR. Перехід стосом каталогів є циклічним. .IP "\fB+[ЧИСЛО]\fR" 4 .IX Item "+[ЧИСЛО]" Перейти вперед на ЧИСЛО пунктів у стосі. Типовим є значення у один пункт. .Sp Перейти вперед на один каталог. Команда \f(CW\*(C`wcd +\*(C'\fR призведе до переходу на один каталог вперед. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: \f(CW\*(C`wcd +2\*(C'\fR. Перехід стосом каталогів є циклічним. .IP "\fB=\fR" 4 .IX Item "=" Показати стос. .Sp Скористайтеся цим параметром, якщо ви призабули скільки пунктів залишилося попереду і позаду у стосі. У відповідь на команду з цим параметром програма виведе вміст стосу для наступного вибору номера пункту. Поточне місце у стосі буде позначено зірочкою, \f(CW\*(C`*\*(C'\fR. .SH "ВСТАНОВЛЕННЯ" .IX Header "ВСТАНОВЛЕННЯ" Поточний робочий каталог командної оболонки Unix можна змінити лише за допомогою вбудованої команди \fIcd\fR\|(1). Тому програму завжди викликають функцією або за альтернативною назвою. Ця функція або альтернативна назва зберігається у скрипті командної оболонки (скрипті переходу), який створюється програмою wcd. Wcd може працювати лише після визначення функції або альтернативної назви. .PP Іншим варіантом внесення змін до поведінки встановленої вами програми є визначення значень змінних середовища \fI\s-1HOME\s0\fR та \fI\s-1WCDHOME\s0\fR. Див. розділ ЗМІННІ СЕРЕДОВИЩА. .SS "Встановлення для командних оболонок типу \s-1POSIX\s0" .IX Subsection "Встановлення для командних оболонок типу POSIX" Для командних оболонок \s-1POSIX \s0(ksh, bash, zsh, etc.) у Unix, Linux, Cygwin або типовій оболонці \s-1MSYS\s0 додайте таку функцію до файла запуску оболонки (наприклад, у Bash використовується файл \f(CW\*(C`$HOME/.bashrc\*(C'\fR): .PP .Vb 5 \& wcd () \& { \& <ШЛЯХ>/wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .PP Замініть \fIШЛЯХ\fR на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. .PP Розташування скрипту переходу, \f(CW\*(C`wcd.go\*(C'\fR, є різним для різних оболонок. .PP Wcd для bash у \s-1DJGPP DOS\s0 потрібна інша функція. Скрипт переходу не буде записано до каталогу \f(CW\*(C`bin\*(C'\fR і, якщо одночасно визначено \fI\s-1WCDHOME\s0\fR та \&\fI\s-1HOME\s0\fR, скрипт переходу буде записано до c:/. .PP .Vb 5 \& wcd () \& { \& <ШЛЯХ>/wcd.exe "$@" \& . ${WCDHOME:\-${HOME:\-"c:"}}/wcd.go \& } .Ve .PP Версія wcd для WinZsh теж має свої особливості. Немає каталогу \f(CW\*(C`bin\*(C'\fR. .PP .Vb 5 \& wcd () \& { \& <ШЛЯХ>/wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/wcd.go \& } .Ve .PP Докладніший опис можна знайти у розділі «ФАЙЛИ». .SS "Встановлення для C\-подібних командних оболонок (csh, tcsh)" .IX Subsection "Встановлення для C-подібних командних оболонок (csh, tcsh)" Додайте такі альтернативні назви до файла запуску оболонки, \f(CW\*(C`$HOME/.cshrc\*(C'\fR або \f(CW\*(C`$HOME/.tcshrc\*(C'\fR : .PP .Vb 5 \& if ( ${?WCDHOME} ) then \& alias wcd "<ШЛЯХ>/wcd.exe \e!* ; source $WCDHOME/bin/wcd.go" \& else \& alias wcd "<ШЛЯХ>/wcd.exe \e!* ; source $HOME/bin/wcd.go" \& endif .Ve .PP Замініть \fIШЛЯХ\fR на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. .SS "Версія для командного рядка Windows" .IX Subsection "Версія для командного рядка Windows" Розпакуйте архів zip і додайте каталог \f(CW\*(C`bin\*(C'\fR до вашої змінної середовища \&\fI\s-1PATH\s0\fR. .PP Програма для Windows, що працює у вікні командної оболонки Windows (Command Prompt) не може змінити поточного каталогу, але це може зробити скрипт \&.bat. Пакетний скрипт \f(CW\*(C`wcd.ba\*(C'\fR» запускає програму wcd, яка створює новий пакетний скрипт, \f(CW\*(C`wcdgo.bat\*(C'\fR. Після цього \f(CW\*(C`wcd.bat\*(C'\fR запускає скрипт \&\f(CW\*(C`wcdgo.bat\*(C'\fR, який здійснює зміну каталогу. .SS "Windows \s-1VISTA\s0 та новіші версії" .IX Subsection "Windows VISTA та новіші версії" У командній оболонці Windows \s-1VISTA\s0 та новіших версій користувачі мають обмежений доступ до каталогів. Що отримати доступ до усіх каталогів, вам знадобляться права доступу адміністратора. Запустити командну оболонку з правами адміністратора можна так: наведіть вказівник миші на піктограму командної оболонки, клацніть правою кнопкою миші і виберіть у контекстному меню пункт \fIЗапуск від імені адміністратора\fR. .SS "Версія для Windows PowerShell" .IX Subsection "Версія для Windows PowerShell" Додайте вказану нижче функцію до вашого профілю користувача PowerShell. Дані щодо місця зберігання цього профілю зберігаються у змінній \f(CW$profile\fR. Слід також визначити змінну середовища \fI\s-1HOME\s0\fR або \fI\s-1WCDHOME\s0\fR. .PP .Vb 5 \& function wcd \& { \& <ШЛЯХ>\ewcdwin32psh.exe $args \& & $env:HOME\ewcdgo.ps1 \& } .Ve .PP Замініть \fIШЛЯХ\fR на адресу каталогу, до якого встановлено виконуваний файл wcd. Запустіть новий сеанс роботи у PowerShell. У Wcd для PowerShell передбачено роботу лише з файловими системами. Забезпечення роботи з іншими джерелами файлових даних не передбачено. .SS "Версія для командного рядка \s-1OS/2\s0" .IX Subsection "Версія для командного рядка OS/2" У командній оболонці \s-1OS/2 \s0(cmd.exe) програма \s-1OS/2\s0 не може змінювати робочого каталогу. Ось чому wcd створює командний скрипт (\f(CW\*(C`wcdgo.cmd\*(C'\fR), який має бути виконано у поточній оболонці. Скрипт \f(CW\*(C`wcd.cmd\*(C'\fR спочатку запускає програму \f(CW\*(C`wcdos2.exe\*(C'\fR, яка створює скрипт \f(CW\*(C`wcdgo.cmd\*(C'\fR. Після цього \&\f(CW\*(C`wcd.cmd\*(C'\fR запускає скрипт wcdgo.cmd. .SH "ЛОКАЛІЗАЦІЯ" .IX Header "ЛОКАЛІЗАЦІЯ" .IP "\fB\s-1LANG\s0\fR" 4 .IX Item "LANG" Основна мова визначається за допомогою змінної середовища \fI\s-1LANG\s0\fR. Значення змінної \fI\s-1LANG\s0\fR складається з декількох частин. Перша частина записується малими літерами і визначає код мови. Друга частина є необов’язковою, визначає код країни і записується прописними літерами, відокремлюється від першої частини символом підкреслювання. Передбачено також необов’язкову третю частину: кодування. Ця частина відокремлюється від другої частини крапкою. Ось декілька прикладів для командних оболонок стандартного типу \&\s-1POSIX:\s0 .Sp .Vb 6 \& export LANG=uk українська \& export LANG=uk_UA українська, Україна \& export LANG=ru_UA російська, Україна \& export LANG=es_ES іспанська, Іспанія \& export LANG=es_MX іспанська, Мексика \& export LANG=en_USiso88591 англійська, США, кодування Latin\-1 .Ve .Sp Повний список мов та кодів краї наведено у підручнику з \fIgettext\fR\|(1): . У системах Unix для отримання даних щодо локалі можна скористатися командою \&\fIlocale\fR\|(1). .IP "\fB\s-1LANGUAGE\s0\fR" 4 .IX Item "LANGUAGE" За допомогою змінної середовища \fI\s-1LANGUAGE\s0\fR ви можете вказати список пріоритетності мов. Записи у списку слід відокремлювати двокрапками. Програма wcd надає перевагу \fI\s-1LANGUAGE\s0\fR над \fI\s-1LANG\s0\fR. Наприклад, перша голландська, далі німецька: \f(CW\*(C`LANGUAGE=nl:de\*(C'\fR. Спочатку вам слід увімкнути локалізацію, встановивши для змінної \fI\s-1LANG\s0\fR (або \fI\s-1LC_ALL\s0\fR) значення, відмінне від \fIC\fR. Далі ви зможете використовувати список пріоритетності мов за допомогою змінної \fI\s-1LANGUAGE\s0\fR. Додаткові відомості можна знайти у підручнику з gettext: .Sp Якщо вами буде вибрано мову, перекладу якою немає, буде показано стандартні повідомлення англійською мовою. .IP "\fB\s-1WCDLOCALEDIR\s0\fR" 4 .IX Item "WCDLOCALEDIR" За допомогою визначення змінної середовища \fI\s-1WCDLOCALEDIR\s0\fR можна перевизначити значення \fI\s-1LOCALEDIR\s0\fR, вказане під час збирання та встановлення програми. Змінна \fI\s-1LOCALEDIR\s0\fR використовується wcd з підтримкою перекладів для пошуку файлів перекладів. Типовим значенням для системи \s-1GNU\s0 є \&\f(CW\*(C`/usr/local/share/locale\*(C'\fR. Дізнатися про поточне значення змінної \&\fI\s-1LOCALEDIR\s0\fR можна за допомогою команди \f(CW\*(C`wcd \-V\*(C'\fR. .Sp Якщо ви встановили wcd до каталогу, відмінного від типового, вам варто встановити значення змінної середовища \fI\s-1WCDLOCALEDIR\s0\fR так, щоб вона вказувала на каталог з файлами перекладів. .Sp Приклад для cmd у Windows: .Sp .Vb 1 \& set WCDLOCALEDIR=c:/my_prefix/share/locale .Ve .Sp Приклад для оболонки \s-1POSIX:\s0 .Sp .Vb 1 \& export WCDLOCALEDIR=$HOME/share/locale .Ve .IP "\fB\s-1LC_COLLATE\s0\fR" 4 .IX Item "LC_COLLATE" Якщо wcd вдасться знайти декілька відповідників вказаного користувачем каталогу, програма покаже упорядкований список варіантів. Спосіб упорядковування залежить від параметрів локалі. Якщо у середовищі встановлено значення змінної \fI\s-1LANG\s0\fR, відповідники буде упорядковано відповідно до порядку, який використовується у словниках або телефонних книгах відповідною мовою. Наприклад, буде проігноровано крапки і дефіси, літери з акцентами вважатимуться еквівалентними до літер без акцентів, ігноруватимуться відмінності у написанні великими чи малими літерами. .Sp Під час визначення параметрів упорядковування перевага надається змінній середовища \fI\s-1LC_COLLATE\s0\fR, а не змінній \fI\s-1LANG\s0\fR. Якщо ви вкажете для \&\fI\s-1LC_COLLATE\s0\fR значення \f(CW\*(C`C\*(C'\fR або \f(CW\*(C`POSIX\*(C'\fR, упорядковування за параметрами локалі буде вимкнено. Наприклад, якщо ви хочете скористатися українською мовою інтерфейсу, але не хочете використовувати українські параметри упорядковування, ви можете зробити так: .Sp .Vb 2 \& export LANG=uk_UA \& export LC_COLLATE=C .Ve .IP "\fB\s-1LC_CTYPE\s0\fR" 4 .IX Item "LC_CTYPE" Під час визначення параметрів кодування у wcd надається перевага змінній \&\fI\s-1LC_CTYPE\s0\fR, а не \fI\s-1LANG\s0\fR. Наприклад, щоб встановити кодування символів \&\s-1UTF\-8,\s0 слід скористатися такою командою: .Sp .Vb 1 \& export LC_CTYPE=en_US.UTF\-8 .Ve .IP "\fB\s-1LC_ALL\s0\fR" 4 .IX Item "LC_ALL" Усі змінні середовища, пов’язані з локаллю, назви яких починаються з \fI\s-1LC_\s0\fR, можна перевизначити за допомогою змінної середовища \fI\s-1LC_ALL\s0\fR. Wcd надає перевагу значенню \fI\s-1LC_ALL\s0\fR над значеннями \fI\s-1LC_COLLATE\s0\fR та \fI\s-1LC_CTYPE\s0\fR. .SS "ТАБЛИЦІ КОДУВАНЬ \s-1WINDOWS\s0" .IX Subsection "ТАБЛИЦІ КОДУВАНЬ WINDOWS" Існує дві групи кодових сторінок: кодові сторінки \s-1DOS \s0(\s-1OEM\s0) та кодові сторінки Windows (\s-1ANSI\s0). Типовим кодуванням для Windows, якщо систему налаштовано на західноєвропейські параметри регіону, є \s-1ANSI CP1252.\s0 У програмах Windows, наприклад у notepad, використовується ця типова загальносистемна кодова сторінка \s-1ANSI.\s0 У консолі Windows типово використовується кодова сторінка \s-1OEM \s0(\s-1CP437\s0 або \s-1CP850\s0) для сумісності з програмами \s-1DOS.\s0 Якщо ви використовуєте версію wcd для \s-1DOS\s0 у консолі Windows, програма не працюватиме, оскільки у ній використовується кодова сторінка \&\s-1DOS.\s0 Але у версії wcd для \s-1DOS\s0 не передбачено підтримку довгих назв каталогів та мережевих дисків у Windows. .PP Версія wcd для Windows є типовою програмою Windows, вона використовуватиме загальносистемну кодову сторінку \s-1ANSI\s0 Windows. Отже, у західноєвропейській локалізації Windows програма використовуватиме кодову сторінку \s-1CP1252\s0 для назв каталогів та повідомлень. З метою забезпечення однорідності виведення даних, незалежно від активної кодової сторінки, усі версії wcd для Windows перетворюють виведені дані у форматі \s-1ANSI\s0 у формат Unicode у командній оболонці та PowerShell. .PP У консольних растрових шрифтах передбачено оригінальну кодову сторінку \s-1OEM,\s0 що встановлюється разом з Windows, отже, вам слід змінити шрифт консолі на Lucida Console, щоб літери з Unicode (та \s-1ANSI\s0) було показано належним чином. .PP Версії wcd без підтримки Unicode \fIдо версії 5.2.0\fR виводять дані у форматі \&\s-1ANSI.\s0 Для цих застарілих версій кодову сторінку консолі слід зробити еквівалентною до загальносистемної кодової сторінки (змінюється на 1252), щоб забезпечити належну роботу wcd для Windows зі спеціальними символами, зокрема символами з акцентами, символами кирилиці та символом євро. .PP Загальносистемну кодову сторінку Windows можна змінити за допомогою регіональних параметрів «Панелі керування». Кодову сторінку консолі Windows можна змінити за допомогою команди \f(CW\*(C`chcp\*(C'\fR. .PP Програма виводить дані щодо справжнього кодування символів у відповідь на команду \f(CW\*(C`wcd \-V\*(C'\fR. Щоб визначити активну кодову сторінку консолі Windows, введіть команду \f(CW\*(C`chcp\*(C'\fR. .SS "\s-1UNICODE\s0" .IX Subsection "UNICODE" У wcd може бути передбачено підтримку Unicode. Щоб визначити, чи було зібрано wcd з підтримкою Unicode, скористайтеся командою \f(CW\*(C`wcd \-V\*(C'\fR. Якщо у вашому терміналі або консолі та шрифті передбачено підтримку, ви зможете бачити символ євро та китайські ієрогліфи. .PP Перетворення у Unicode у wcd виконується \fIпрограмно\fR. У ядрі програми усі дані обробляються як потік даних. У широкі символи Unicode перетворюються лише рядки, що виводяться на екран. Wcd повністю покладається на функції libc і не містить специфічного для \s-1UTF\-8\s0 коду. Див. також .PP У wcd передбачено необов’язкову підтримку встановлення відповідності за Unicode з нормалізацією. Щоб визначити, чи передбачено у wcd підтримку нормалізації, скористайтеся командою \f(CW\*(C`wcd \-V\*(C'\fR. У wcd з підтримкою нормалізації Unicode відповідність назв Unicode виконується на основі \&\fIсумісної\fR еквівалентності. Без підтримки нормалізації Unicode відповідність назв встановлюється за двійковою еквівалентністю. Див. також .PP \fI\s-1UTF\-8\s0 у Unix/Linux\fR .IX Subsection "UTF-8 у Unix/Linux" .PP Щоб у вашій консолі або терміналі можна було переглядати символи \s-1UTF\-8,\s0 у консолі і терміналі також має бути передбачено підтримку \s-1UTF\-8.\s0 У версії xterm, яка постачається разом з XFree86 4.0 або наступними версіями, передбачено підтримку \s-1UTF\-8.\s0 Щоб задіяти цю підтримку, запустіть \fIxterm\fR\|(1) у локалі \s-1UTF\-8\s0 і скористайтеся шрифтом з кодуванням iso10646\-1, наприклад за допомогою такої команди: .PP .Vb 1 \& LC_CTYPE=en_GB.UTF\-8 xterm \-u8 \-fn \*(Aq\-Misc\-Fixed\-Medium\-R\-SemiCondensed\-\-13\-120\-75\-75\-C\-60\-ISO10646\-1\*(Aq .Ve .PP У сучасних дистрибутивах GNU/Linux типовою використовується кодування \&\s-1UTF\-8.\s0 Можна працювати і з іншими багатобайтовими кодуваннями символів, але належного тестування працездатності з цими кодуванням не виконувалося. .PP У wcd припускається, що кодуванням файлів даних ієрархії каталогів є кодування символів поточної локалі. До файлів даних ієрархії каталогів символ позначки порядку байтів (\s-1BOM\s0) не записується. .PP \fI\s-1UTF\-16\s0 у Windows\fR .IX Subsection "UTF-16 у Windows" .PP У Windows підтримку Unicode передбачено у всіх версіях PowerShell та у командній оболонці Windows у Windows 7 (та новіших версіях). Unicode також працює у Take Command або \s-1TCC/LE\s0 створених \s-1JP\s0 Software, якими можна скористатися у старіших версіях Windows (XP/Vista). .PP У Windows усі назви каталогів на диску кодуються за допомогою \s-1UTF\-16.\s0 У програмах Windows без підтримки Unicode символи Unicode перетворюються у символи типової кодової сторінки \s-1ANSI.\s0 Для символів, які не є частиною регіонального кодування, це перетворення є неможливим, отже програми без підтримки Unicode виводитимуть замість них символ знаку питання або помилковий символ. .PP Wcd з підтримкою Unicode читатиме закодовані у \s-1UTF\-16\s0 назви каталогів і перетворюватиме дані до \s-1UTF\-8\s0 у внутрішньому коді. Усі дані файлів ієрархії каталогів буде закодовано у \s-1UTF\-8.\s0 Ці дані є несумісними з версіями wcd без підтримки Unicode. Wcd створить скрипт переходу у кодуванні \s-1UTF\-8.\s0 .PP Усі версії Windows PowerShell можуть запускати скрипти у кодуванні \s-1UTF\-8,\s0 якщо у скрипті є символ \s-1BOM UTF\-8.\s0 .PP Починаючи з Windows 7, у командній оболонці Windows передбачено можливість змінити за допомогою пакетного скрипту каталог на каталог з літерами Unicode у назві. Кодуванням назви каталогу має бути \s-1UTF\-8,\s0 а \fIпакетний скрипт\fR не повинен містити позначки порядку байтів (\s-1BOM\s0). Слід змінити активну кодову сторінку командної оболонки на 65001 (\s-1UTF\-8\s0) до виконання команди cd. Wcd для командної оболонки створити такий скрипт переходу (\f(CW\*(C`wcdgo.bat\*(C'\fR). Цей скрипти спочатку змінюватиме кодову сторінку на 65001, потім змінюватиме каталог, і нарешті, повертатиме початкове значення параметрів кодової сторінки. .PP Якщо літери буде показано не так, як слід, вам слід встановити шрифт True Type Lucida Console (не растровий шрифт). .PP Версія wcd для Windows без підтримки Unicode може читати файли даних ієрархії каталогів у кодуванні Unicode, починаючи з версії 5.2.0, якщо у файлі є позначка порядку байтів (\s-1BOM\s0) (див. ), але не може змінювати каталоги на каталоги з тими літерами Unicode у назві, які не є частиною типової кодової сторінки \s-1ANSI\s0 системи. Версія wcd для Windows з підтримкою Unicode записує \s-1BOM\s0 до файлів ієрархії каталогів у кодуванні \&\s-1UTF\-8,\s0 починаючи з версії 5.2.0, отже, ці файли можна читати за допомогою notepad. .PP \fI\s-1UTF\-8\s0 у Cygwin\fR .IX Subsection "UTF-8 у Cygwin" .PP У Cygwin передбачено підтримку Unicode, починаючи з версії 1.7. Шар обробки Cygwin виконує перетворення назв каталогів Windows у \s-1UTF\-16\s0 до \s-1UTF\-8.\s0 Отже, програми, зокрема wcd, не потрібно перейматися процедурами перетворення, вони можуть обробляти дані у кодуванні \s-1UTF\-8,\s0 як це робиться у Unix/Linux. Встановити кодування символів \s-1UTF\-8\s0 можна за допомогою змінної середовища \fI\s-1LANG\s0\fR або \fI\s-1LC_CTYPE\s0\fR. Ймовірно, вам доведеться пересканувати ваші диски. Якщо ви користуєтеся типовою консоллю Cygwin, вам слід встановити для неї шрифт True Type Lucida Console (не растровий шрифт). .PP Версія wcd для Cygwin поводиться точно так само, як версія wcd для Unix. Мітка порядку байтів (\s-1BOM\s0) не записується до файлів даних ієрархії каталогів. Кодуванням файлів вважається кодування символів локалі \fBCygwin\fR. .SH "ФАЙЛИ" .IX Header "ФАЙЛИ" Якщо встановлено змінну середовища \fI\s-1WCDHOME\s0\fR, використовуватиме \fI\s-1WCDHOME\s0\fR замість \fI\s-1HOME\s0\fR. Усі файли \f(CW\*(C`*.wcd\*(C'\fR є текстовими файлами. Їх можна редагувати у звичайному текстовому редакторі. Версія wcd для командної оболонки Windows поводиться так само, як версія для \s-1DOS.\s0 Версія wcd для Cygwin поводиться як версія для Unix. .IP "\fBwcd.exe\fR" 4 .IX Item "wcd.exe" Сама програма. У оболонках Unix програма завжди викликається функцією або альтернативною командою, оскільки поточний робочий каталог у оболонці Unix можна змінювати лише за допомогою вбудованої команди cd. Див. також розділ «ВСТАНОВЛЕННЯ». .IP "\fBтиповий файл даних ієрархії каталогів\fR" 4 .IX Item "типовий файл даних ієрархії каталогів" Це типовий файл даних ієрархії каталогів, де wcd шукає відповідники. Якщо цей файл непридатний до читання, wcd створить новий. .Sp .Vb 2 \& DOS: \etreedata.wcd або %HOME%\etreedata.wcd \& Unix: $HOME/.treedata.wcd .Ve .IP "\fBдодатковий файл даних ієрархії каталогів\fR" 4 .IX Item "додатковий файл даних ієрархії каталогів" Необов’язковий додатковий файл даних ієрархії каталогів. Якщо такий файл існує і є придатним до читання, wcd спробує знайти відповідники і у цьому файлі. .Sp .Vb 2 \& DOS: \eextra.wcd або %HOME%\eextra.wcd \& Unix: $HOME/.extra.wcd .Ve .IP "\fBфайл блокувань\fR" 4 .IX Item "файл блокувань" До цього додаткового файла wcd записує заблоковані шляхи. Див. параметр \&\fB\-b\fR. Передбачено підтримку символів\-замінників. .Sp .Vb 2 \& DOS: \eban.wcd або %HOME%\eban.wcd \& Unix: $HOME/.ban.wcd .Ve .IP "\fBфайл альтернативних назв\fR" 4 .IX Item "файл альтернативних назв" Необов’язковий файл із записами альтернативних назв wcd. Див. параметр \&\fB\-l\fR. .Sp .Vb 2 \& DOS: \ealias.wcd або %HOME%\ealias.wcd \& Unix: $HOME/.alias.wcd .Ve .IP "\fBфайл stack\fR" 4 .IX Item "файл stack" У цьому файлі зберігається стос каталогів wcd. Літеру диска можна змінити за допомогою параметра \fB\-d\fR. .Sp .Vb 2 \& DOS: c:\estack.wcd або %HOME%\estack.wcd \& Unix: $HOME/.stack.wcd .Ve .Sp Назву файла стосу можна змінити за допомогою змінної середовища \&\fI\s-1WCDSTACKFILE\s0\fR. Див. розділ «ЗМІННІ СЕРЕДОВИЩА». .IP "\fBскрипт go\fR" 4 .IX Item "скрипт go" Це скрипт командної оболонки, який wcd.exe створює під час кожного запуску. Від використовується функцією або альтернативною командою. Літеру диска можна змінити за допомогою параметра \fB\-d\fR. З історичних міркувань у системах Unix цей файл типово зберігається у \f(CW\*(C`$HOME/bin\*(C'\fR. Каталог цього файла можна змінити за допомогою параметра \fB\-G\fR. .Sp .Vb 7 \& bash для DOS: c:/wcd.go або $HOME/wcd.go \& командна оболонка Windows: c:\ewcdgo.bat або %HOME%\ewcdgo.bat \& Windows PowerShell: $env:HOME\ewcdgo.ps1 \& WinZsh: $HOME/wcd.go \& Cygwin/MSYS: $HOME/bin/wcd.go \& командна оболонка OS/2: c:\ewcdgo.cmd або %HOME%\ewcdgo.cmd \& Unix: $HOME/bin/wcd.go .Ve .IP "\fBфайл відносних шляхів у ієрархії каталогів\fR" 4 .IX Item "файл відносних шляхів у ієрархії каталогів" Текстовий файл з відносними шляхами щодо каталогу \fIКАТАЛОГ\fR. Див. параметри \&\fB+S\fR, \fB\-n\fR та \fB+n\fR. .Sp .Vb 2 \& DOS: <шлях>\ertdata.wcd \& Unix: <шлях>/.rtdata.wcd .Ve .SH "ЗМІННІ СЕРЕДОВИЩА" .IX Header "ЗМІННІ СЕРЕДОВИЩА" .IP "\fB\s-1HOME\s0\fR" 4 .IX Item "HOME" Типово, wcd використовує змінну середовища \fI\s-1HOME\s0\fR для визначення місця, де зберігатимуться файли програми. Див. також розділ «ФАЙЛИ». Перевизначити каталог можна за допомогою змінної середовища \fI\s-1WCDHOME\s0\fR. .Sp \&\fI\s-1HOME\s0\fR також визначає місце, звідки слід розпочинати сканування диска, якщо використано параметр \fB\-s\fR. Перевизначити це місце можна за допомогою змінної середовища \fI\s-1WCDSCAN\s0\fR. .Sp У версіях для Unix, Cygwin, Windows PowerShell, WinZsh та \s-1MSYS\s0 слід встановити значення \fI\s-1HOME\s0\fR або \fI\s-1WCDHOME\s0\fR. Для інших версій wcd використання цих змінних є необов’язковим. .Sp Якщо змінну \fI\s-1HOME\s0\fR встановлено у DOS/Windows, wcd розташує свої файли (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) у каталозі \&\fI\s-1HOME\s0\fR. Після встановлення змінної поведінка wcd стає еквівалентною до версії wcd для Unix. Типово, wcd скануватиме диск, починаючи з \&\fI\s-1HOME\s0\fR. Сканування дисків не виконуватиметься у автоматичному режимі після зміни диска. Про потребу у скануванні слід повідомити явно. Приклад: .Sp .Vb 1 \& wcd \-S c: \-A d: \-A e: .Ve .Sp Після цього встановлення відповідності каталогів буде загальним на усіх сканованих дисках. .IP "\fB\s-1WCDHOME\s0\fR" 4 .IX Item "WCDHOME" Для зміни місця зберігання файлів wcd слід використовувати змінну середовища \&\fI\s-1WCDHOME\s0\fR. Якщо встановлено одразу \fI\s-1HOME\s0\fR і \fI\s-1WCDHOME\s0\fR, замість \fI\s-1HOME\s0\fR буде використано \fI\s-1WCDHOME\s0\fR. .Sp З версіях wcd до версії 5.1.5 типовий каталог сканування можна змінити також за допомогою змінної \fI\s-1WCDHOME\s0\fR. У наступних версіях таку поведінку було змінено. Починаючи з версії 5.1.5, \fI\s-1WCDHOME\s0\fR не змінює типового каталогу сканування. Див. параметр \fB\-s\fR. Починаючи з версії 5.1.5, для перевизначення типового каталогу сканування слід використовувати змінну середовища \fI\s-1WCDSCAN\s0\fR. .Sp Приклад для командних оболонок \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDHOME=C:\eUsers\eerwin\ewcd .Ve .Sp Приклад для командних оболонок типу \s-1POSIX:\s0 .Sp .Vb 1 \& export WCDHOME="$HOME/.wcd" .Ve .Sp Приклад для командних оболонок типу Csh: .Sp .Vb 1 \& setenv WCDHOME "$HOME/.wcd" .Ve .IP "\fB\s-1WCDSCAN\s0\fR" 4 .IX Item "WCDSCAN" Для перевизначення встановленого за допомогою змінної середовища \fI\s-1HOME\s0\fR типового каталогу сканування скористайтеся змінною середовища \&\fI\s-1WCDSCAN\s0\fR. Щоб визначити декілька каталогів, скористайтеся списком каталогів, відокремлених двокрапкою (Unix). У \s-1DOS\s0 або Windows записи у списку слід відокремлювати крапкою з комою. .Sp Приклади для командних оболонок \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDSCAN=C:\eUsers\eerwin;D:\edata \& \& set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\e\eprojectdrive\eprojectX .Ve .Sp Приклад для командних оболонок типу \s-1POSIX:\s0 .Sp .Vb 1 \& export WCDSCAN="$HOME:/projectdisk/projectX" .Ve .Sp Приклад для командних оболонок типу Csh: .Sp .Vb 1 \& setenv WCDSCAN "$HOME:/projectdisk/projectX" .Ve .IP "\fB\s-1WCDFILTER\s0\fR" 4 .IX Item "WCDFILTER" Фільтри можна вказати за допомогою змінної середовища \fI\s-1WCDFILTER\s0\fR. Усі каталоги, які не відповідають цим фільтрам, буде проігноровано. Записи у списку слід відокремлювати типовим роздільником каталогів у шляхах командної оболонки. Це щось подібне до визначення змінної середовища \fI\s-1PATH\s0\fR. Те, чи буде враховано регістр символів, визначається параметрами операційної системи. .Sp Приклад для командних оболонок \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDFILTER=projects;doc .Ve .Sp Приклад для командних оболонок типу \s-1POSIX:\s0 .Sp .Vb 1 \& export WCDFILTER="projects:doc" .Ve .Sp Приклад для командних оболонок типу Csh: .Sp .Vb 1 \& setenv WCDFILTER "projects:doc" .Ve .IP "\fB\s-1WCDBAN\s0\fR" 4 .IX Item "WCDBAN" Шляхи, вказані за допомогою змінної середовища \fI\s-1WCDBAN\s0\fR, вважатимуться заблокованими для wcd. Див. також параметр \fB\-b\fR. Записи у списку шляхів слід відокремлювати типовим роздільником змінної \fI\s-1PATH\s0\fR командної оболонки. .IP "\fB\s-1WCDEXCLUDE\s0\fR" 4 .IX Item "WCDEXCLUDE" Шляхи, вказані за допомогою змінної середовища \fI\s-1WCDEXCLUDE\s0\fR, вважатимуться виключеними для wcd. Див. також параметри \fB\-x\fR та \fB\-xf\fR. Записи у списку шляхів слід відокремлювати типовим роздільником змінної \fI\s-1PATH\s0\fR командної оболонки. .Sp Приклад для командних оболонок \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDEXCLUDE=*/windows;*/temp;*CVS .Ve .Sp Приклад для командних оболонок типу \s-1POSIX:\s0 .Sp .Vb 1 \& export WCDEXCLUDE="/dev:/tmp:*CVS" .Ve .Sp Приклад для командних оболонок типу Csh: .Sp .Vb 1 \& setenv WCDEXCLUDE "/dev:/tmp:*CVS" .Ve .IP "\fB\s-1WCDUSERSHOME\s0\fR" 4 .IX Item "WCDUSERSHOME" Встановлює основний каталог для домашніх каталогів користувачів. У \s-1DOS\s0 або Windows типовим значенням змінної є \f(CW\*(C`\e\eusers\*(C'\fR. У Unix або Cygwin типовим значенням є \f(CW\*(C`/home\*(C'\fR. Ця змінна середовища використовується для сканування файлів даних ієрархії каталогів інших користувачів. Див. також параметри \&\fB\-u\fR та \fB+u\fR. У докладному режимі wcd виводитиме усі фільтри, блокування та виключення. Див. параметр \fB\-v\fR. .IP "\fB\s-1WCDSTACKFILE\s0\fR" 4 .IX Item "WCDSTACKFILE" Wcd надає перевагу значенню змінної \fI\s-1WCDSTACKFILE\s0\fR над типовою назвою файла стосу (див. розділ «ФАЙЛИ»). За допомогою цієї змінної можна визначити окремий стос використаних каталогів для декількох різних командних оболонок (або використаних емуляторів термінала). .Sp Використання файла з унікальною назвою на основі поточного часу у форматі РРРММДД\-ГГХХСС для кожної відкритої інтерактивної командної оболонки: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d\-%H%M%S) .Ve .Sp Для окремого стосу на кожний екземпляр \fIxterm\fR\|(1) скористайтеся змінної середовища \fI\s-1WINDOWID\s0\fR для xterm: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID .Ve .Sp Для \s-1GNU\s0 \fIscreen\fR\|(1), використання окремого стосу на екземпляр screen: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW .Ve .IP "\fB\s-1TERMINFO\s0\fR" 4 .IX Item "TERMINFO" Якщо визначено змінну середовища \fI\s-1TERMINFO\s0\fR, wcd з інтерфейсом на основі ncurses шукатиме локальні визначення термінала до виконання пошуку у стандартному місці. Це корисно, якщо визначення термінала зберігаються у нестандартному місці. Часто використовуються стандартні місця \&\f(CW\*(C`/usr/lib/terminfo\*(C'\fR та \f(CW\*(C`/usr/share/terminfo\*(C'\fR. .IP "\fB\s-1PDC_RESTORE_SCREEN\s0\fR" 4 .IX Item "PDC_RESTORE_SCREEN" Wcd з інтерфейсом на основі PDCurses розпізнає змінну середовища \&\fI\s-1PDC_RESTORE_SCREEN\s0\fR. Якщо встановлено цю змінну середовища, PDCurses скопіює вміст екрана на час запуску wcd; після завершення роботи wcd вміст екрана буде відновлено. Приклад для командної оболонки Windows: .Sp .Vb 1 \& set PDC_RESTORE_SCREEN=1 .Ve .Sp У Windows передбачено можливість зберігання лише буфера незначного обсягу. Тому повне відновлення не завжди можливе. Якщо вміст буфера є доволі значним, до консолі після виходу з wcd буде виведено випадкові символи. .IP "\fB\s-1SHELL\s0\fR" 4 .IX Item "SHELL" Для виведення 8\-бітових символів у скриптах переходу для командних оболонок типу \s-1POSIX\s0 та C слід вказати \f(CW\*(C`#!$SHELL\*(C'\fR у першому рядку. Якщо цього не зробити, у деяких оболонках скрипт переходу вважатиметься бінарним файлом і не використовуватиметься. У bash Cygwin у середовищі має бути визначено змінну \fI\s-1SHELL\s0\fR за допомогою команди \f(CW\*(C`export\*(C'\fR, інакше wcd не зможе прочитати змінну. .IP "\fB\s-1BASH\s0\fR" 4 .IX Item "BASH" Wcd для bash \s-1DOS\s0 використовується \f(CW$BASH\fR замість \f(CW$SHELL\fR, оскільки \&\f(CW$SHELL\fR вказує на командну оболонку \s-1DOS.\s0 Можливо, слід визначити змінну \&\f(CW$BASH\fR за допомогою команди \f(CW\*(C`export\*(C'\fR, інакше wcd не зможе прочитати змінну. .SH "ТАКОЖ ПЕРЕГЛЯНЬТЕ" .IX Header "ТАКОЖ ПЕРЕГЛЯНЬТЕ" \&\fIsh\fR\|(1), \fIbash\fR\|(1), \fIcsh\fR\|(1), \fIksh\fR\|(1), \fIzsh\fR\|(1), \fIlocale\fR\|(1), \fIncurses\fR\|(1), .SH "АВТОРИ" .IX Header "АВТОРИ" Wcd створено Erwin Waterlander .PP Домашня сторінка проекту: .PP SourceForge: .PP Freecode: .PP Форматування сторінки підручника було виконано Jari Aalto . .PP Початкову версію \s-1NCD\s0 було створено Brad Kingsbury для пакунка \*(L"Norton Utilities\*(R" Пітера Нортона близько 1987 року. Див. також wcd-5.2.5/src/man/uk/man1/wcd.pod0000664000175000017500000025071312345660657016642 0ustar waterlanwaterlan ***************************************************** * GENERATED FILE, DO NOT EDIT * * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * ***************************************************** This file was generated by po4a(7). Do not store it (in VCS, for example), but store the PO file used as source file by po4a-translate. In fact, consider this as a binary, and the PO file as a regular .c file: If the PO get lost, keeping this translation up-to-date will be harder. =pod =encoding UTF-8 =head1 НАЗВА wcd - довільна зміна каталогу (Wherever Change Directory) засіб для зміни каталогу (chdir) у DOS та Unix =head1 КОРОТКИЙ ОПИС wcd [параметри] [каталог] =head1 ОПИС =head2 Огляд Wcd — програма, що керується з командного рядка і надає змогу швидко змінювати каталоги. Вона економить час на введенні даних з клавіатури. Достатньо ввести лише частину назву каталогу і wcd перейде до цього каталогу. У wcd передбачено можливості пришвидшення вибору потрібного варіанта з декількох, створення альтернативних назв каталогів та блокування каталогів. Крім того, у wcd ви зможете скористатися повноекранною інтерактивною навігацією деревом каталогів з швидким пошуком. Ідеї wcd часткового запозичено з Norton Change Directory (NCD). Першу версію NCD у I для DOS було випущено 1987 року компанією Пітера Нортона (Peter Norton). Wcd було портовано на різні командні оболонки: command.com для DOS, cmd.exe та PowerShell для Windows, cmd.exe для OS/2 і командні оболонки Unix, зокрема Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) та C (csh), а також інші оболонки, що працюють у будь-якій операційній системі. У Wcd передбачено підтримку 8-бітових наборів символів на усіх системах та додаткову підтримку Unicode. Докладніше про це у розділі «ЛОКАЛІЗАЦІЯ». Щоб дізнатися більше про налаштовування wcd для особистого користування, зверніться до розділу «ВСТАНОВЛЕННЯ». =head2 Основні прийоми використання Типово (якщо не використано символів-замінників), wcd шукає каталог, назва якого починається з введених вами символів. Наприклад, вказана нижче команда змінить каталог на каталог поточного користувача C: wcd Desk Якщо буде виявлено декілька відповідників, wcd покаже користувачеві список цих відповідників. Після цього користувач зможе вибрати потрібний варіант декількома натисканнями клавіш (найчастіше, достатньо одного натискання). =head2 Шаблони-замінники У wcd передбачено підтримку таких символів-замінників: * відповідає будь-якій послідовності символів (нульової або більшої довжини) ? відповідає довільному символу [НАБІР] відповідає довільному символу з вказаного набору, [!НАБІР] або [^НАБІР] відповідає будь-якому символу, що не належить до вказаного набору. Набір символів може складатися з окремих символів або діапазонів символів. Діапазон слід вказувати так: I<символ дефіс символ>, наприклад, C<0-9> або C. Мінімальним набором символів у конструкції C<[..]> є C<[0-9a-zA-Z_]>. Можна використовувати символи з розширеного набору (тобто 8-бітові символи), якщо у системі передбачено підтримку цих символів. Щоб придушити використання символів з набору C<[]*?!^-\> для побудови синтаксичних лексем у межах конструкцій C<[..]> тобто їхнього буквального використання, додавайте перед цими символами символ зворотної риски (C<\>). Використання символів-замінників надає доступ до досить потужних можливостей з пошуку. Наприклад, за допомогою вказаного нижче виразу можна знайти будь-який каталог, назва якого завершується на «top»: wcd *top Знайти каталоги, у назві яких будь-де міститься частина «top»: wcd *top* Знайти будь-який каталог, назва якого починається з «a», «b» або «c»: wcd [a-c]* Крім того, можна вказати частину шляху до каталогу. У наведеному нижче прикладі wcd шукатиме каталог, назва якого починається з «Desk», шлях якого відповідає шаблону I<*me/Desk*>. wcd me/Desk Можна використовувати будь-який вираз, що містить риски та символи замінники. Приклад: wcd src*/*1?/a*2 =head2 Інші варіанти використання Якщо у виразі не використано символів-замінників, а wcd знаходить повний відповідник з вказаним шляхом і назвою, wcd типово проігнорує усі відповідники, які могло б бути знайдено з використанням символів-замінників. Типову поведінку програми можна змінити за допомогою параметра B<-w>. Інтерактивний навігатор ієрархією каталогів можна запустити за допомогою параметра B<-g>. wcd -g Wcd створює файл даних ієрархії (treedata) у каталогах, звідки виконується пошук. У системах Unix та Windows wcd додає символічні посилання на файл treedata під час сканування диска, але не переходить за створеними посиланнями. Перехід за посиланнями може призвести до зациклювання wcd у ієрархії каталогів або сканування великих масивів каталогів у мережі. Крім того, wcd може переходити до каталогів, яких немає у файлі treedata. Приклад: wcd .. Якщо wcd буде виявлено відповідник критерію пошуку, але програма не зможе перейти до цього каталогу, буде виконано спробу вилучення каталогу з типового файла treedata, але не з додаткового файла treedata. Див. також параметр B<-k>. Wcd зберігає на диску стос переходів за каталогами. Типовим обсягом стосу є 10. Перехід стосом здійснюється циклічно. Див. параметри B<-z>, B<->, B<+> та B<=>. У середовищах з декількома користувачами для переходу до каталогів, що належать іншим користувачам, можна скористатися параметром B<-u>. У операційних системах DOS і Windows можна використовувати як роздільник між каталогами як символ «/», так і символ «\». У системах DOS та Windows передбачено можливість переходу до каталогу на іншому диску. Для цього достатньо перед назвою каталогу на диску вказати назву диска. wcd d:games =head2 Шляхи UNC Windows У версіях для Windows (для командного рядка, PowerShell, MSYS, zsh, cygwin) передбачено підтримку шляхів UNC LAN Windows для SMB без літер дисків, наприклад C<\\назва_сервера\назва_ресурсу>. У wcd для командного рядка Windows для автоматичного прив’язування шляху UNC до літери диска використовується команда «pushd». У In Windows PowerShell, MSYS, zsh та Cygwin передбачено повноцінну підтримку шляхів UNC. Шлях UNC може бути поточним робочим каталогом. =head2 Інтерфейси У wcd передбачено три різні інтерфейси вибору потрібного варіанта зі списку відповідників. Інтерфейс можна вибрати під час збирання програми. Першим інтерфейсом є звичайні інтерфейси введення та виведення (stdin/stdout). До термінала буде виведено нумерований список варіантів. Користувач зможе вибрати відповідний варіант введенням його номера з наступним натисканням клавіші . У цьому інтерфейсі не передбачено можливостей гортання для довгих списків. Для цього доведеться користуватися можливостями з гортання термінала або консолі. Код цього інтерфейсу доволі малий і портований. Другий інтерфейс побудовано на основі бібліотеки conio. У ньому передбачено можливості гортання. Користувачу буде показано список з літерним позначенням пунктів. Для вибору пункту у списку достатньо натиснути клавішу з відповідною літерою. Цей інтерфейс працює швидше, оскільки треба натискати менше клавіш. Після вибору варіанта, якщо це можливо, зображення на екрані буде відновлено до стану перед показом варіантів. Якщо користувач надає перевагу цифровому позначенню пунктів, можна скористатися параметром B<-N>. Третій інтерфейс побудовано на основі бібліотеки curses. Він подібний до інтерфейсу на основі conio. Версія wcd на основі curses має додатковий «графічний» інтерфейс. За його допомогою користувач зможе вибрати каталог у повноекранному інтерактивному навігаторі ієрархією каталогів. Передбачено навігацію та пошук у стилі vim(1). Задіяти цей інтерфейс можна за допомогою параметра B<-g>. За допомогою параметра командного рядка B<-o> програму можна завжди перевести до стандартного інтерфейсу stdin/stdout. =head1 ПАРАМЕТРИ =over 4 =item B<-a> Додати поточний шлях до типового файла ієрархії. За допомогою цього параметра можна швидко додати поточний шлях до типового файла ієрархії каталогів. Повторне сканування усього диска у певних випадках може бути досить тривалою справою. =item B<-aa> Додати поточний і усі батьківські шляхи до типового файла ієрархії каталогів (treedata). =item B<-A ШЛЯХ> Сканувати ієрархію каталогів, починаючи з каталогу I<ШЛЯХ>, і дописати усі виявлені каталоги до файла ієрархії каталогів (treedata). Приклади: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share У Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: C. Див. також параметри B<-S>, B<-s> та B<-E>. =item B<-b> Заблокувати поточний шлях. Wcd додає поточний шлях до файла блокування. Це означає, що wcd ігноруватиме усі відповідники з поточного каталогу і усіх його підкаталогів. Файл блокувань (ban) можна редагувати у текстовому редакторі. Передбачено підтримку символів-замінників. Відповідність назв встановлюється за абсолютними шляхами. Заблоковані шляхи не виключаються зі шляхів сканування диска. Щоб виключити заблоковані шляхи, скористайтеся параметром B<-xf>. =item B<-c, --direct-cd> Безпосередній режим CD. Типово, wcd працює так: 1. Спробувати знайти відповідник у файлах ієрархії (treedata). 2. Якщо нічого не знайдено, спробувати відкрити каталог, назву якого було введено. У безпосередньому режимі CD wcd виконує обробку запиту у зворотному порядку. 1. Cпробувати відкрити каталог, назву якого було введено. 2. Якщо не вдалося, знайти відповідник у файлах ієрархії (treedata). =item B<-d ДИСК> Встановити диск для файла стосу і переходу (лише для DOS). Типово, файл стосу та скрипт переходу зберігаються на диску C:, якщо не встановлено значення змінної середовища I. Цим параметром можна скористатися, якщо диск C: захищено від запису. Цей параметр слід вказувати перед параметрами роботи зі стосом B<->, B<+> та B<=>. =item B<-e> Додати поточний шлях до додаткового файла ієрархії. За допомогою цього параметр можна швидко додати поточний шлях до додаткового файла ієрархії. =item B<-ee> Додати поточний і усі батьківські шляхи до додаткового файла ієрархії каталогів (treedata). =item B<-E ШЛЯХ> Сканувати ієрархію каталогів, починаючи з каталогу I<ШЛЯХ>, і дописати усі виявлені каталоги до додаткового файла ієрархії каталогів (treedata). Див. також параметри B<-A> та B<-S>. =item B<-f ФАЙЛ> Прочитати файл даних ієрархії каталогів I<ФАЙЛ>. Не виконувати читання з типового файла ієрархії каталогів. =item B<+f ФАЙЛ> Прочитати дані з файла ієрархії каталогів I<ФАЙЛ> на додачу до даних з типового файла даних ієрархії каталогів. =item B<-g> Графічний інтерфейс (лише у версії з інтерфейсом на основі curses). Wcd запускає текстовий «графічний» інтерфейс на основі curses. Користувач може вибрати каталог за допомогою повноекранного інтерактивного навігатора ієрархією каталогів. Передбачено навігацію і пошук у стилі vim(1). Якщо рядок пошуку не вказано, wcd показує усю ієрархію каталогів з типового та додаткового файлів даних ієрархії. Якщо рядок пошуку вказано, список відповідників буде показано як ієрархію каталогів. Типове компонування ієрархії подібне до компонування каталогів у початковій версії NCD у DOS. Різниця у компонуванні полягає у тому, що у NCD усі каталоги одного рівня було вирівняно однаковим відступом у всьому дереві. Це було можливим у NCD, оскільки максимальна довжина назви каталогу у DOS дорівнювала 12 (8.3) символам. У сучасних операційних системах назви каталогів можуть бути дуже довгими і різниця у довжинах може бути дуже великою. Тому теки однакового рівня вкладеності не вирівняно за однією лінією за усією ієрархією каталогів у wcd, а лише за гілками ієрархії. Отже, під час руху вгору-вниз ієрархією каталогів користувач спостерігатиме за зсувами списку у різні боки. Навігаційна поведінка у wcd абсолютно збігається з початковою версією NCD. Наприклад, якщо ви натиснете клавішу зі стрілкою вниз, ви перейдете до наступного каталогу з тим самим рівнем вкладеності, переходячи гілками ієрархії. Це пришвидшує навігацію ієрархією каталогів. Поведінку засобу навігації можна змінити за допомогою параметрів B<-Ta>, B<-TC> та B<-Tc>. =item B<-gd> Створити дамп файлів ієрархії каталогів (treedata) і вивести дані до стандартного виведення (stdout). =item B<-G ШЛЯХ> Записати скрипт переходу у каталозі I<ШЛЯХ>. Наприклад, у Unix, C призведе до запису скрипту переходу до B<ШЛЯХ/wcd.go>. =item B<-GN, --no-go-script> Не створювати скрипт переходу. Цим параметром можна скористатися у поєднанні з параметром B<-j>, якщо з якихось причин створення wcd скрипту переходу є небажаним. =item B<-h, --help> Показати довідку щодо використання і завершити роботу. =item B<-i, --ignore-case> Ігнорувати регістр символів. У версіях wcd для DOS та Windows така поведінка є типовою. У версіях для Unix/Cygwin регістр типово враховується. =item B<+i, --no-ignore-case> Брати до уваги регістр символів. Див. також параметр B<-i>. =item B<-I, --ignore-diacritics> Ігнорувати діакритичні знаки для писемностей на основі латиниці. Програма вважатиме літери з діакритичними знаками еквівалентними до їхніх відповідників без діакритичних знаків. Передбачено підтримку таких кодувань латиниці: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2 та Unicode Latin-1, Latin Extended-A, а також Latin Extended-B. Див. також L =item B<+I, --no-ignore-diacritics> Брати до уваги діакритичні позначки (типово). Див. також параметр B<-I>. =item B<-j, --just-go> Режим простого переходу. У цьому режимі wcd не показуватиме списку, якщо для вказаної назви буде знайдено декілька відповідників. Wcd просто перейде до першого ж відповідника. Якщо wcd буде викликано знову з тими самими аргументами, програма змінить каталог на наступний пункт у списку тощо. Wcd виведе назву каталогу, що якого переходитиме до стандартного виведення (stdout). Отже можна скористатися декількома способами встановлення. Можна створити таку функцію для сумісної з POSIX командної оболонки: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Якщо ви користуєтеся застарілою командною оболонкою, у якій не передбачено підтримки заміни команди «$()», вам доведеться скористатися підставлянням команди у застарілому стилі з одинарними відкривними лапками. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } У системах Windows, якщо використано командну оболонку 4NT, можна створити такі альтернативні назви: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Подібний метод усуває потребу у скрипті переходу, отже, параметр B<-j> можна використати у поєднанні з параметром B<-GN>. =item B<-k, --keep-paths> Зберігати шляхи. Зберігати шляхи до файла даних ієрархії каталогів, якщо wcd не може перейти до відповідного каталогу. Типовою поведінкою програми є вилучення шляхів з файла даних ієрархії, якщо wcd не може перейти до відповідного каталогу. Якщо буде використано цей параметр, програма не вилучатиме відповідних записів каталогів. =item B<-K, --color> Використовувати кольори у графічному режимі. =item B<-l АЛЬТЕРНАТИВНА НАЗВА> Надати поточному шляху альтернативну назву I<АЛЬТЕРНАТИВНА НАЗВА>. Wcd запише поточний шлях з його альтернативною назвою до файла альтернативних назв. Альтернативні назви з різним регістром символів вважаються різними. =item B<-m КАТАЛОГ> Створити каталог і додати його до файла даних ієрархії. =item B<-L, --license> Вивести дані щодо умов ліцензування. =item B<-M КАТАЛОГ> Створити каталог і додати його до додаткового файла даних ієрархії. =item B<-n ШЛЯХ> Прочитати відносний файл даних ієрархії каталогів з каталогу I<ШЛЯХ>. Не виконувати читання з типового файла даних ієрархії каталогів. Файл даних відносних шляхів до каталогів має бути вже створено за допомогою параметра wcd B<+S>. Крім того, I<ШЛЯХ> може безпосередньо вказувати на файл. Приклад. Припустімо, що іншу систему змонтовано до точки монтування C: wcd -n /mnt/network src Wcd відкриває файл даних відносних шляхів до каталогів у C. У цьому файлі містяться шляхи відносно відповідного каталогу. =item B<+n ШЛЯХ> Прочитати дані з файла даних відносної ієрархії каталогів на додачу до даних з типового файла даних ієрархії каталогів. Див. параметр B<-n>. =item B<-N, --numbers> Використовувати числа замість літер. Wcd з інтерфейсом на основі conio або curses (див. розділ «ІНТЕРФЕЙС») типово показує список варіантів з пунктами, позначеними літерами. Якщо використано параметр B<-N>, пункти у списку буде пронумеровано. Незалежно дві параметра B<-N>, користувач може натиснути клавішу з літерою або номером для вибору пункту зі списку відповідників. =item B<-o> Використовувати інтерфейс stdin/stdout. Якщо з певних причин інтерфейсом на основі conio або curses у wcd не можна або не бажано користуватися, користувач може перемкнути програму на інтерфейс stdin/stdout за допомогою параметра B<-o>. =item B<-od, --to-stdout> Вивести усі відповідники до stdout. =item B<-q, --quiet> Менше повідомлень. Останній відповідник не виводиться до консолі. =item B<-r КАТАЛОГ> Вилучити каталог і відповідний запис з файла даних ієрархії каталогів. Якщо каталог є порожнім, wcd вилучить його і спробує вилучити відповідний запис з файла даних ієрархії каталогів. =item B<-rmtree КАТАЛОГ> Рекурсивно вилучити каталог і відповідні записи з файла даних ієрархії каталогів. Wcd вилучить каталог та усі його підкаталоги та файли і витре записи відповідних каталогів з файла даних ієрархії каталогів. =item B<-s> Виконати сканування або повторне сканування диска, починаючи з каталогу I<$HOME>. Якщо значення змінної HOME не визначено, сканування диска виконуватиметься, починаючи з кореневого каталогу, /. Наявний типовий файл даних ієрархії каталогів буде перезаписано. Типовий каталог сканування можна перевизначити за допомогою змінної середовища C. Див. розділ «ЗМІННІ СЕРЕДОВИЩА». =item B<-S ШЛЯХ> Виконати сканування ієрархії каталогів, починаючи з каталогу I<ШЛЯХ>, і перезаписати типовий файл даних ієрархії каталогів. Див. також параметри B<-A>, B<-s> та B<-E>. Наприклад, з параметром B<-A> ви можете створити типовий файл даних ієрархії каталогів за вашим вибором. Приклади: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share У версіях для Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: C. =item B<+S ШЛЯХ> Сканувати диск, починаючи з каталогу I<ШЛЯХ>, і замінити відносні шляхи у файлі даних відносної ієрархії каталогів. Цей файл використовується, якщо додано параметри B<-n> і B<+n>. Приклад: C. =item B<-t> Не вилучати із записів рядок тимчасового каталогу монтування, C (лише у Unix) Типово, wcd вилучає C з відповідників. Каталог C використовується засобом автоматичного монтування. Таку обробку можна вимкнути за допомогою параметра B<-t>. =item B<-T, --ascii-tree> Малювати ієрархію за допомогою символів ASCII. Скористайтеся цим параметром, якщо символи малювання ліній у терміналі буде показано з помилками. =item B<-Ta, --alt-tree-nav> Альтернативний режим навігації у форматі графічної ієрархії каталогів. У типовому режимі компонування ієрархії у стилі NCD параметр B<-Ta> вимикає перехід до непов’язаних каталогів. У режимі компактної ієрархії альтернативний режим робить навігацію подібною до навігації у програмах для керування файлами з графічним інтерфейсом, зокрема Провіднику Windows або KDE Konqueror у Linux. Натискання клавіш зі стрілками вгору і вниз пересуває позначення теки на один рядок вгору або вниз. Першим натисканням клавіші зі стрілкою ліворуч можна згорнути підтеки, наступне натискання — перехід ліворуч. Перемкнутися між режимами типової і альтернативної навігації без перезапуску програми можна за допомогою натискання комбінації клавіш Shift-A. Якщо увімкнено режим альтернативної навігації, у нижньому правому куті екрана ви побачите літеру «A». =item B<-TC, --center-tree> Центрований режим перегляду у графічній ієрархії. Позначений каталог залишається посередині екрана. Центрований режим можна увімкнути або вимкнути за допомогою натискання клавіші «t» у режимі графічної ієрархії. Стандартний нецентрований режим, який мінімізує рух самої ієрархії на екрані, аналогічний до оригінального режиму NCD. =item B<-Tc, --compact-tree> Типово, «графічну» ієрархію буде намальовано у той самий спосіб, як це робила початкова версія NCD для DOS. У DOS шлях до каталогу може складатися не більше ніж з 66 символів. Використання сучасної структури каталогів, без обмежень на довжину шляхів, може призвести до значного перевищення ширини ієрархії. Щоб подолати ці труднощі, wcd може малювати ієрархію каталогів у компактному форматі, подібному до формату більшості програм для керування файлами з графічним інтерфейсом, по одній теці на рядок. Увімкнути відповідний режим можна за допомогою параметра B<-Tc> або перемикання натисканням клавіші «m». =item B<-Td, --cjk-width> У застарілих шрифтах для показу ієрогліфів східноазійських мов (китайської, японської та корейської) частина символів ієрогліфів та символів малювання ліній займають дві позиції замість звичайної для Unicode ширини цих символів у одну позицію. Прикладами таких шрифтів є растровий шрифт Chinese CP936 для Windows та шрифт Simsun. За допомогою цього параметра можна забезпечити правильний показ графічної ієрархії каталогів з використанням застарілих шрифтів з ієрогліфами. Якщо увімкнено режим ієрогліфів, у нижньому правому куті екрана ви побачите літеру «C». =item B<-u КОРИСТУВАЧ> Сканувати файл даних ієрархії іншого користувача, I<КОРИСТУВАЧ>, не сканувати типовий файл ієрархії поточного користувача. Див. також розділ ЗМІННІ СЕРЕДОВИЩА, а саме запис щодо змінної I. У Unix/Cygwin базовим каталогом для домашніх каталогів користувачів вважається C. Wcd шукатиме файли C та C, саме у цьому порядку, і читатиме дані з першого ж із цих файлів, який буде знайдено і який виявиться придатним до читання. У DOS/Windows базовим каталогом для домашніх каталогів користувачів вважається C<\\users>, отже, wcd намагається прочитати дані з файлів C<\\users\USER\treedata.wcd> та C<\\users\USER\.wcd\treedata.wcd>. =item B<+u КОРИСТУВАЧ> Прочитати дані з типового файла ієрархії каталогів користувача КОРИСТУВАЧ на додачу до даних з типового файла даних ієрархії каталогів вашого користувача. =item B<-v, --verbose> Показувати докладні повідомлення. З цим параметром wcd виводитиме усі фільтри, блокування та виключення. =item B<-V, --version> Показати дані щодо версії і завершити роботу. =item B<-w, --wild-match-only> Встановлення відповідність для неточних відповідників, лише якщо використано символи-замінники. =item B<-x ШЛЯХ> Виключити I<ШЛЯХ> зі сканування. Якщо буде використано цей параметр, wcd виключить шлях з назвою I<ШЛЯХ> та усі його підкаталоги з переліку шляхів для сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Параметр B<-x> у команді можна використовувати декілька разів. wcd -x <шлях1> -x <шлях2> -s Параметр B<-x> слід вказувати до усіх параметрів сканування (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). У системах DOS/Windows слід вказати літеру диска, якщо не визначено змінної середовища I або I. Приклад: wcd -x c:/temp -S c: У інших випадках літеру диска не слід вказувати. wcd -x /temp -s =item B<-xf ФАЙЛ> Виключити зі сканування усі шляхи, вказані у файлі I<ФАЙЛ>. Якщо використано цей параметр, wcd виключить усі шляхи зі списку у файлі I<ФАЙЛ> та усі підкаталоги цих шляхів зі сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Шляхи має бути вказано по одному на рядок. Слід пам’ятати, що wcd ігноруватиме початкові та завершальні пробіли у рядку, оскільки такі пробіли є некоректними символами у назвах каталогів. Параметр B<-xf> можна вказувати декілька разів. Якщо ви хочете виключити усі заблоковані шляхи зі сканування, можна зробити так (приклад для wcd у unix): wcd -xf ~/.ban.wcd -s Передбачено підтримку символів-замінників. Наприклад, щоб виключити усі каталоги Subversion з файлами, призначеними для адміністрування копії сховища, додайте рядок C<*/.svn>. Параметр B<-xf> слід вказувати до усіх параметрів сканування (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). =item B<-y, --assume-yes> Вважати відповіддю на всі питання «так». Wcd не проситиме користувача підтвердити дію відповіддю «так» або «ні», відповіддю завжди вважається «так». Цей параметр можна поєднати з параметром B<-rmtree>. Параметр слід вказувати до параметрів, використання яких може призвести до появи питань, на які має відповідати користувач. =item B<-z ЧИСЛО> Встановити для максимального розміру стосу значення ЧИСЛО. Типовим розміром стосу є 10. Дії зі стосом можна вимкнути встановленням значення 0. Цей параметр слід використовувати перед будь-якими іншими параметрами, що призводять до дій зі стосом (B<->,B<+>,B<=>). Якщо цього не зробити, стосу буде повернуто типовий розмір 10. Правильна команда: wcd -z 50 - Новим розміром стосу буде 50, wcd перейде на один крок назад у стосі. Помилковою була б така команда: wcd - -z 50 Wcd повернеться на один каталог назад у стосі, розміру ж стосу буде повернуто типове значення 10. Параметр B<-z 50> буде проігноровано. Додайте цей параметр як перший параметр до альтернативної команди wcd або функції, де ця програма використовується. Приклад для сумісних з POSIX командних оболонок: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } =item B<-[ЧИСЛО]> Повернутися на ЧИСЛО пунктів назад у стосі. Типовим є значення у один пункт. Повернутися на один каталог назад. Команда C поверне вас на один каталог назад. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: C. Перехід стосом каталогів є циклічним. =item B<+[ЧИСЛО]> Перейти вперед на ЧИСЛО пунктів у стосі. Типовим є значення у один пункт. Перейти вперед на один каталог. Команда C призведе до переходу на один каталог вперед. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: C. Перехід стосом каталогів є циклічним. =item B<=> Показати стос. Скористайтеся цим параметром, якщо ви призабули скільки пунктів залишилося попереду і позаду у стосі. У відповідь на команду з цим параметром програма виведе вміст стосу для наступного вибору номера пункту. Поточне місце у стосі буде позначено зірочкою, C<*>. =back =head1 ВСТАНОВЛЕННЯ Поточний робочий каталог командної оболонки Unix можна змінити лише за допомогою вбудованої команди cd(1). Тому програму завжди викликають функцією або за альтернативною назвою. Ця функція або альтернативна назва зберігається у скрипті командної оболонки (скрипті переходу), який створюється програмою wcd. Wcd може працювати лише після визначення функції або альтернативної назви. Іншим варіантом внесення змін до поведінки встановленої вами програми є визначення значень змінних середовища I та I. Див. розділ ЗМІННІ СЕРЕДОВИЩА. =head2 Встановлення для командних оболонок типу POSIX Для командних оболонок POSIX (ksh, bash, zsh, etc.) у Unix, Linux, Cygwin або типовій оболонці MSYS додайте таку функцію до файла запуску оболонки (наприклад, у Bash використовується файл C<$HOME/.bashrc>): wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. Розташування скрипту переходу, C, є різним для різних оболонок. Wcd для bash у DJGPP DOS потрібна інша функція. Скрипт переходу не буде записано до каталогу C і, якщо одночасно визначено I та I, скрипт переходу буде записано до c:/. wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } Версія wcd для WinZsh теж має свої особливості. Немає каталогу C. wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Докладніший опис можна знайти у розділі «ФАЙЛИ». =head2 Встановлення для C-подібних командних оболонок (csh, tcsh) Додайте такі альтернативні назви до файла запуску оболонки, C<$HOME/.cshrc> або C<$HOME/.tcshrc> : if ( ${?WCDHOME} ) then alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. =head2 Версія для командного рядка Windows Розпакуйте архів zip і додайте каталог C до вашої змінної середовища I. Програма для Windows, що працює у вікні командної оболонки Windows (Command Prompt) не може змінити поточного каталогу, але це може зробити скрипт .bat. Пакетний скрипт C» запускає програму wcd, яка створює новий пакетний скрипт, C. Після цього C запускає скрипт C, який здійснює зміну каталогу. =head2 Windows VISTA та новіші версії У командній оболонці Windows VISTA та новіших версій користувачі мають обмежений доступ до каталогів. Що отримати доступ до усіх каталогів, вам знадобляться права доступу адміністратора. Запустити командну оболонку з правами адміністратора можна так: наведіть вказівник миші на піктограму командної оболонки, клацніть правою кнопкою миші і виберіть у контекстному меню пункт I<Запуск від імені адміністратора>. =head2 Версія для Windows PowerShell Додайте вказану нижче функцію до вашого профілю користувача PowerShell. Дані щодо місця зберігання цього профілю зберігаються у змінній $profile. Слід також визначити змінну середовища I або I. function wcd { <ШЛЯХ>\wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Замініть I<ШЛЯХ> на адресу каталогу, до якого встановлено виконуваний файл wcd. Запустіть новий сеанс роботи у PowerShell. У Wcd для PowerShell передбачено роботу лише з файловими системами. Забезпечення роботи з іншими джерелами файлових даних не передбачено. =head2 Версія для командного рядка OS/2 У командній оболонці OS/2 (cmd.exe) програма OS/2 не може змінювати робочого каталогу. Ось чому wcd створює командний скрипт (C), який має бути виконано у поточній оболонці. Скрипт C спочатку запускає програму C, яка створює скрипт C. Після цього C запускає скрипт wcdgo.cmd. =head1 ЛОКАЛІЗАЦІЯ =over 4 =item B Основна мова визначається за допомогою змінної середовища I. Значення змінної I складається з декількох частин. Перша частина записується малими літерами і визначає код мови. Друга частина є необов’язковою, визначає код країни і записується прописними літерами, відокремлюється від першої частини символом підкреслювання. Передбачено також необов’язкову третю частину: кодування. Ця частина відокремлюється від другої частини крапкою. Ось декілька прикладів для командних оболонок стандартного типу POSIX: export LANG=uk українська export LANG=uk_UA українська, Україна export LANG=ru_UA російська, Україна export LANG=es_ES іспанська, Іспанія export LANG=es_MX іспанська, Мексика export LANG=en_USiso88591 англійська, США, кодування Latin-1 Повний список мов та кодів краї наведено у підручнику з gettext(1): L. У системах Unix для отримання даних щодо локалі можна скористатися командою locale(1). =item B За допомогою змінної середовища I ви можете вказати список пріоритетності мов. Записи у списку слід відокремлювати двокрапками. Програма wcd надає перевагу I над I. Наприклад, перша голландська, далі німецька: C. Спочатку вам слід увімкнути локалізацію, встановивши для змінної I (або I) значення, відмінне від I. Далі ви зможете використовувати список пріоритетності мов за допомогою змінної I. Додаткові відомості можна знайти у підручнику з gettext: L Якщо вами буде вибрано мову, перекладу якою немає, буде показано стандартні повідомлення англійською мовою. =item B За допомогою визначення змінної середовища I можна перевизначити значення I, вказане під час збирання та встановлення програми. Змінна I використовується wcd з підтримкою перекладів для пошуку файлів перекладів. Типовим значенням для системи GNU є C. Дізнатися про поточне значення змінної I можна за допомогою команди C. Якщо ви встановили wcd до каталогу, відмінного від типового, вам варто встановити значення змінної середовища I так, щоб вона вказувала на каталог з файлами перекладів. Приклад для cmd у Windows: set WCDLOCALEDIR=c:/my_prefix/share/locale Приклад для оболонки POSIX: export WCDLOCALEDIR=$HOME/share/locale =item B Якщо wcd вдасться знайти декілька відповідників вказаного користувачем каталогу, програма покаже упорядкований список варіантів. Спосіб упорядковування залежить від параметрів локалі. Якщо у середовищі встановлено значення змінної I, відповідники буде упорядковано відповідно до порядку, який використовується у словниках або телефонних книгах відповідною мовою. Наприклад, буде проігноровано крапки і дефіси, літери з акцентами вважатимуться еквівалентними до літер без акцентів, ігноруватимуться відмінності у написанні великими чи малими літерами. Під час визначення параметрів упорядковування перевага надається змінній середовища I, а не змінній I. Якщо ви вкажете для I значення C або C, упорядковування за параметрами локалі буде вимкнено. Наприклад, якщо ви хочете скористатися українською мовою інтерфейсу, але не хочете використовувати українські параметри упорядковування, ви можете зробити так: export LANG=uk_UA export LC_COLLATE=C =item B Під час визначення параметрів кодування у wcd надається перевага змінній I, а не I. Наприклад, щоб встановити кодування символів UTF-8, слід скористатися такою командою: export LC_CTYPE=en_US.UTF-8 =item B Усі змінні середовища, пов’язані з локаллю, назви яких починаються з I, можна перевизначити за допомогою змінної середовища I. Wcd надає перевагу значенню I над значеннями I та I. =back =head2 ТАБЛИЦІ КОДУВАНЬ WINDOWS Існує дві групи кодових сторінок: кодові сторінки DOS (OEM) та кодові сторінки Windows (ANSI). Типовим кодуванням для Windows, якщо систему налаштовано на західноєвропейські параметри регіону, є ANSI CP1252. У програмах Windows, наприклад у notepad, використовується ця типова загальносистемна кодова сторінка ANSI. У консолі Windows типово використовується кодова сторінка OEM (CP437 або CP850) для сумісності з програмами DOS. Якщо ви використовуєте версію wcd для DOS у консолі Windows, програма не працюватиме, оскільки у ній використовується кодова сторінка DOS. Але у версії wcd для DOS не передбачено підтримку довгих назв каталогів та мережевих дисків у Windows. Версія wcd для Windows є типовою програмою Windows, вона використовуватиме загальносистемну кодову сторінку ANSI Windows. Отже, у західноєвропейській локалізації Windows програма використовуватиме кодову сторінку CP1252 для назв каталогів та повідомлень. З метою забезпечення однорідності виведення даних, незалежно від активної кодової сторінки, усі версії wcd для Windows перетворюють виведені дані у форматі ANSI у формат Unicode у командній оболонці та PowerShell. У консольних растрових шрифтах передбачено оригінальну кодову сторінку OEM, що встановлюється разом з Windows, отже, вам слід змінити шрифт консолі на Lucida Console, щоб літери з Unicode (та ANSI) було показано належним чином. Версії wcd без підтримки Unicode I<до версії 5.2.0> виводять дані у форматі ANSI. Для цих застарілих версій кодову сторінку консолі слід зробити еквівалентною до загальносистемної кодової сторінки (змінюється на 1252), щоб забезпечити належну роботу wcd для Windows зі спеціальними символами, зокрема символами з акцентами, символами кирилиці та символом євро. Загальносистемну кодову сторінку Windows можна змінити за допомогою регіональних параметрів «Панелі керування». Кодову сторінку консолі Windows можна змінити за допомогою команди C. Програма виводить дані щодо справжнього кодування символів у відповідь на команду C. Щоб визначити активну кодову сторінку консолі Windows, введіть команду C. =head2 UNICODE У wcd може бути передбачено підтримку Unicode. Щоб визначити, чи було зібрано wcd з підтримкою Unicode, скористайтеся командою C. Якщо у вашому терміналі або консолі та шрифті передбачено підтримку, ви зможете бачити символ євро та китайські ієрогліфи. Перетворення у Unicode у wcd виконується I<програмно>. У ядрі програми усі дані обробляються як потік даних. У широкі символи Unicode перетворюються лише рядки, що виводяться на екран. Wcd повністю покладається на функції libc і не містить специфічного для UTF-8 коду. Див. також L У wcd передбачено необов’язкову підтримку встановлення відповідності за Unicode з нормалізацією. Щоб визначити, чи передбачено у wcd підтримку нормалізації, скористайтеся командою C. У wcd з підтримкою нормалізації Unicode відповідність назв Unicode виконується на основі I<сумісної> еквівалентності. Без підтримки нормалізації Unicode відповідність назв встановлюється за двійковою еквівалентністю. Див. також L =head3 UTF-8 у Unix/Linux Щоб у вашій консолі або терміналі можна було переглядати символи UTF-8, у консолі і терміналі також має бути передбачено підтримку UTF-8. У версії xterm, яка постачається разом з XFree86 4.0 або наступними версіями, передбачено підтримку UTF-8. Щоб задіяти цю підтримку, запустіть xterm(1) у локалі UTF-8 і скористайтеся шрифтом з кодуванням iso10646-1, наприклад за допомогою такої команди: LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' У сучасних дистрибутивах GNU/Linux типовою використовується кодування UTF-8. Можна працювати і з іншими багатобайтовими кодуваннями символів, але належного тестування працездатності з цими кодуванням не виконувалося. У wcd припускається, що кодуванням файлів даних ієрархії каталогів є кодування символів поточної локалі. До файлів даних ієрархії каталогів символ позначки порядку байтів (BOM) не записується. =head3 UTF-16 у Windows У Windows підтримку Unicode передбачено у всіх версіях PowerShell та у командній оболонці Windows у Windows 7 (та новіших версіях). Unicode також працює у Take Command або TCC/LE створених JP Software, якими можна скористатися у старіших версіях Windows (XP/Vista). У Windows усі назви каталогів на диску кодуються за допомогою UTF-16. У програмах Windows без підтримки Unicode символи Unicode перетворюються у символи типової кодової сторінки ANSI. Для символів, які не є частиною регіонального кодування, це перетворення є неможливим, отже програми без підтримки Unicode виводитимуть замість них символ знаку питання або помилковий символ. Wcd з підтримкою Unicode читатиме закодовані у UTF-16 назви каталогів і перетворюватиме дані до UTF-8 у внутрішньому коді. Усі дані файлів ієрархії каталогів буде закодовано у UTF-8. Ці дані є несумісними з версіями wcd без підтримки Unicode. Wcd створить скрипт переходу у кодуванні UTF-8. Усі версії Windows PowerShell можуть запускати скрипти у кодуванні UTF-8, якщо у скрипті є символ BOM UTF-8. Починаючи з Windows 7, у командній оболонці Windows передбачено можливість змінити за допомогою пакетного скрипту каталог на каталог з літерами Unicode у назві. Кодуванням назви каталогу має бути UTF-8, а I<пакетний скрипт> не повинен містити позначки порядку байтів (BOM). Слід змінити активну кодову сторінку командної оболонки на 65001 (UTF-8) до виконання команди cd. Wcd для командної оболонки створити такий скрипт переходу (C). Цей скрипти спочатку змінюватиме кодову сторінку на 65001, потім змінюватиме каталог, і нарешті, повертатиме початкове значення параметрів кодової сторінки. Якщо літери буде показано не так, як слід, вам слід встановити шрифт True Type Lucida Console (не растровий шрифт). Версія wcd для Windows без підтримки Unicode може читати файли даних ієрархії каталогів у кодуванні Unicode, починаючи з версії 5.2.0, якщо у файлі є позначка порядку байтів (BOM) (див. L), але не може змінювати каталоги на каталоги з тими літерами Unicode у назві, які не є частиною типової кодової сторінки ANSI системи. Версія wcd для Windows з підтримкою Unicode записує BOM до файлів ієрархії каталогів у кодуванні UTF-8, починаючи з версії 5.2.0, отже, ці файли можна читати за допомогою notepad. =head3 UTF-8 у Cygwin У Cygwin передбачено підтримку Unicode, починаючи з версії 1.7. Шар обробки Cygwin виконує перетворення назв каталогів Windows у UTF-16 до UTF-8. Отже, програми, зокрема wcd, не потрібно перейматися процедурами перетворення, вони можуть обробляти дані у кодуванні UTF-8, як це робиться у Unix/Linux. Встановити кодування символів UTF-8 можна за допомогою змінної середовища I або I. Ймовірно, вам доведеться пересканувати ваші диски. Якщо ви користуєтеся типовою консоллю Cygwin, вам слід встановити для неї шрифт True Type Lucida Console (не растровий шрифт). Версія wcd для Cygwin поводиться точно так само, як версія wcd для Unix. Мітка порядку байтів (BOM) не записується до файлів даних ієрархії каталогів. Кодуванням файлів вважається кодування символів локалі B. =head1 ФАЙЛИ Якщо встановлено змінну середовища I, використовуватиме I замість I. Усі файли C<*.wcd> є текстовими файлами. Їх можна редагувати у звичайному текстовому редакторі. Версія wcd для командної оболонки Windows поводиться так само, як версія для DOS. Версія wcd для Cygwin поводиться як версія для Unix. =over 4 =item B Сама програма. У оболонках Unix програма завжди викликається функцією або альтернативною командою, оскільки поточний робочий каталог у оболонці Unix можна змінювати лише за допомогою вбудованої команди cd. Див. також розділ «ВСТАНОВЛЕННЯ». =item B<типовий файл даних ієрархії каталогів> Це типовий файл даних ієрархії каталогів, де wcd шукає відповідники. Якщо цей файл непридатний до читання, wcd створить новий. DOS: \treedata.wcd або %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd =item B<додатковий файл даних ієрархії каталогів> Необов’язковий додатковий файл даних ієрархії каталогів. Якщо такий файл існує і є придатним до читання, wcd спробує знайти відповідники і у цьому файлі. DOS: \extra.wcd або %HOME%\extra.wcd Unix: $HOME/.extra.wcd =item B<файл блокувань> До цього додаткового файла wcd записує заблоковані шляхи. Див. параметр B<-b>. Передбачено підтримку символів-замінників. DOS: \ban.wcd або %HOME%\ban.wcd Unix: $HOME/.ban.wcd =item B<файл альтернативних назв> Необов’язковий файл із записами альтернативних назв wcd. Див. параметр B<-l>. DOS: \alias.wcd або %HOME%\alias.wcd Unix: $HOME/.alias.wcd =item B<файл stack> У цьому файлі зберігається стос каталогів wcd. Літеру диска можна змінити за допомогою параметра B<-d>. DOS: c:\stack.wcd або %HOME%\stack.wcd Unix: $HOME/.stack.wcd Назву файла стосу можна змінити за допомогою змінної середовища I. Див. розділ «ЗМІННІ СЕРЕДОВИЩА». =item B<скрипт go> Це скрипт командної оболонки, який wcd.exe створює під час кожного запуску. Від використовується функцією або альтернативною командою. Літеру диска можна змінити за допомогою параметра B<-d>. З історичних міркувань у системах Unix цей файл типово зберігається у C<$HOME/bin>. Каталог цього файла можна змінити за допомогою параметра B<-G>. bash для DOS: c:/wcd.go або $HOME/wcd.go командна оболонка Windows: c:\wcdgo.bat або %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go командна оболонка OS/2: c:\wcdgo.cmd або %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go =item B<файл відносних шляхів у ієрархії каталогів> Текстовий файл з відносними шляхами щодо каталогу I<КАТАЛОГ>. Див. параметри B<+S>, B<-n> та B<+n>. DOS: <шлях>\rtdata.wcd Unix: <шлях>/.rtdata.wcd =back =head1 ЗМІННІ СЕРЕДОВИЩА =over 4 =item B Типово, wcd використовує змінну середовища I для визначення місця, де зберігатимуться файли програми. Див. також розділ «ФАЙЛИ». Перевизначити каталог можна за допомогою змінної середовища I. I також визначає місце, звідки слід розпочинати сканування диска, якщо використано параметр B<-s>. Перевизначити це місце можна за допомогою змінної середовища I. У версіях для Unix, Cygwin, Windows PowerShell, WinZsh та MSYS слід встановити значення I або I. Для інших версій wcd використання цих змінних є необов’язковим. Якщо змінну I встановлено у DOS/Windows, wcd розташує свої файли (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) у каталозі I. Після встановлення змінної поведінка wcd стає еквівалентною до версії wcd для Unix. Типово, wcd скануватиме диск, починаючи з I. Сканування дисків не виконуватиметься у автоматичному режимі після зміни диска. Про потребу у скануванні слід повідомити явно. Приклад: wcd -S c: -A d: -A e: Після цього встановлення відповідності каталогів буде загальним на усіх сканованих дисках. =item B Для зміни місця зберігання файлів wcd слід використовувати змінну середовища I. Якщо встановлено одразу I і I, замість I буде використано I. З версіях wcd до версії 5.1.5 типовий каталог сканування можна змінити також за допомогою змінної I. У наступних версіях таку поведінку було змінено. Починаючи з версії 5.1.5, I не змінює типового каталогу сканування. Див. параметр B<-s>. Починаючи з версії 5.1.5, для перевизначення типового каталогу сканування слід використовувати змінну середовища I. Приклад для командних оболонок DOS, Windows, OS/2: set WCDHOME=C:\Users\erwin\wcd Приклад для командних оболонок типу POSIX: export WCDHOME="$HOME/.wcd" Приклад для командних оболонок типу Csh: setenv WCDHOME "$HOME/.wcd" =item B Для перевизначення встановленого за допомогою змінної середовища I типового каталогу сканування скористайтеся змінною середовища I. Щоб визначити декілька каталогів, скористайтеся списком каталогів, відокремлених двокрапкою (Unix). У DOS або Windows записи у списку слід відокремлювати крапкою з комою. Приклади для командних оболонок DOS, Windows, OS/2: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Приклад для командних оболонок типу POSIX: export WCDSCAN="$HOME:/projectdisk/projectX" Приклад для командних оболонок типу Csh: setenv WCDSCAN "$HOME:/projectdisk/projectX" =item B Фільтри можна вказати за допомогою змінної середовища I. Усі каталоги, які не відповідають цим фільтрам, буде проігноровано. Записи у списку слід відокремлювати типовим роздільником каталогів у шляхах командної оболонки. Це щось подібне до визначення змінної середовища I. Те, чи буде враховано регістр символів, визначається параметрами операційної системи. Приклад для командних оболонок DOS, Windows, OS/2: set WCDFILTER=projects;doc Приклад для командних оболонок типу POSIX: export WCDFILTER="projects:doc" Приклад для командних оболонок типу Csh: setenv WCDFILTER "projects:doc" =item B Шляхи, вказані за допомогою змінної середовища I, вважатимуться заблокованими для wcd. Див. також параметр B<-b>. Записи у списку шляхів слід відокремлювати типовим роздільником змінної I командної оболонки. =item B Шляхи, вказані за допомогою змінної середовища I, вважатимуться виключеними для wcd. Див. також параметри B<-x> та B<-xf>. Записи у списку шляхів слід відокремлювати типовим роздільником змінної I командної оболонки. Приклад для командних оболонок DOS, Windows, OS/2: set WCDEXCLUDE=*/windows;*/temp;*CVS Приклад для командних оболонок типу POSIX: export WCDEXCLUDE="/dev:/tmp:*CVS" Приклад для командних оболонок типу Csh: setenv WCDEXCLUDE "/dev:/tmp:*CVS" =item B Встановлює основний каталог для домашніх каталогів користувачів. У DOS або Windows типовим значенням змінної є C<\\users>. У Unix або Cygwin типовим значенням є C. Ця змінна середовища використовується для сканування файлів даних ієрархії каталогів інших користувачів. Див. також параметри B<-u> та B<+u>. У докладному режимі wcd виводитиме усі фільтри, блокування та виключення. Див. параметр B<-v>. =item B Wcd надає перевагу значенню змінної I над типовою назвою файла стосу (див. розділ «ФАЙЛИ»). За допомогою цієї змінної можна визначити окремий стос використаних каталогів для декількох різних командних оболонок (або використаних емуляторів термінала). Використання файла з унікальною назвою на основі поточного часу у форматі РРРММДД-ГГХХСС для кожної відкритої інтерактивної командної оболонки: export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Для окремого стосу на кожний екземпляр xterm(1) скористайтеся змінної середовища I для xterm: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Для GNU screen(1), використання окремого стосу на екземпляр screen: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW =item B Якщо визначено змінну середовища I, wcd з інтерфейсом на основі ncurses шукатиме локальні визначення термінала до виконання пошуку у стандартному місці. Це корисно, якщо визначення термінала зберігаються у нестандартному місці. Часто використовуються стандартні місця C та C. =item B Wcd з інтерфейсом на основі PDCurses розпізнає змінну середовища I. Якщо встановлено цю змінну середовища, PDCurses скопіює вміст екрана на час запуску wcd; після завершення роботи wcd вміст екрана буде відновлено. Приклад для командної оболонки Windows: set PDC_RESTORE_SCREEN=1 У Windows передбачено можливість зберігання лише буфера незначного обсягу. Тому повне відновлення не завжди можливе. Якщо вміст буфера є доволі значним, до консолі після виходу з wcd буде виведено випадкові символи. =item B Для виведення 8-бітових символів у скриптах переходу для командних оболонок типу POSIX та C слід вказати C<#!$SHELL> у першому рядку. Якщо цього не зробити, у деяких оболонках скрипт переходу вважатиметься бінарним файлом і не використовуватиметься. У bash Cygwin у середовищі має бути визначено змінну I за допомогою команди C, інакше wcd не зможе прочитати змінну. =item B Wcd для bash DOS використовується C<$BASH> замість C<$SHELL>, оскільки C<$SHELL> вказує на командну оболонку DOS. Можливо, слід визначити змінну C<$BASH> за допомогою команди C, інакше wcd не зможе прочитати змінну. =back =head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), =head1 АВТОРИ Wcd створено Erwin Waterlander Домашня сторінка проекту: L SourceForge: L Freecode: L Форматування сторінки підручника було виконано Jari Aalto . Початкову версію NCD було створено Brad Kingsbury для пакунка "Norton Utilities" Пітера Нортона близько 1987 року. Див. також L wcd-5.2.5/src/man/uk/man1/wcd.txt0000664000175000017500000026067112345660660016675 0ustar waterlanwaterlanНАЗВА wcd - довільна зміна каталогу (Wherever Change Directory) засіб для зміни каталогу (chdir) у DOS та Unix КОРОТКИЙ ОПИС wcd [параметри] [каталог] ОПИС Огляд Wcd — програма, що керується з командного рядка і надає змогу швидко змінювати каталоги. Вона економить час на введенні даних з клавіатури. Достатньо ввести лише частину назву каталогу і wcd перейде до цього каталогу. У wcd передбачено можливості пришвидшення вибору потрібного варіанта з декількох, створення альтернативних назв каталогів та блокування каталогів. Крім того, у wcd ви зможете скористатися повноекранною інтерактивною навігацією деревом каталогів з швидким пошуком. Ідеї wcd часткового запозичено з Norton Change Directory (NCD). Першу версію NCD у *The Norton Utilities, Release 4* для DOS було випущено 1987 року компанією Пітера Нортона (Peter Norton). Wcd було портовано на різні командні оболонки: command.com для DOS, cmd.exe та PowerShell для Windows, cmd.exe для OS/2 і командні оболонки Unix, зокрема Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) та C (csh), а також інші оболонки, що працюють у будь-якій операційній системі. У Wcd передбачено підтримку 8-бітових наборів символів на усіх системах та додаткову підтримку Unicode. Докладніше про це у розділі «ЛОКАЛІЗАЦІЯ». Щоб дізнатися більше про налаштовування wcd для особистого користування, зверніться до розділу «ВСТАНОВЛЕННЯ». Основні прийоми використання Типово (якщо не використано символів-замінників), wcd шукає каталог, назва якого починається з введених вами символів. Наприклад, вказана нижче команда змінить каталог на каталог поточного користувача "/home/user/Desktop": wcd Desk Якщо буде виявлено декілька відповідників, wcd покаже користувачеві список цих відповідників. Після цього користувач зможе вибрати потрібний варіант декількома натисканнями клавіш (найчастіше, достатньо одного натискання). Шаблони-замінники У wcd передбачено підтримку таких символів-замінників: * відповідає будь-якій послідовності символів (нульової або більшої довжини) ? відповідає довільному символу [НАБІР] відповідає довільному символу з вказаного набору, [!НАБІР] або [^НАБІР] відповідає будь-якому символу, що не належить до вказаного набору. Набір символів може складатися з окремих символів або діапазонів символів. Діапазон слід вказувати так: *символ дефіс символ*, наприклад, "0-9" або "A-Z". Мінімальним набором символів у конструкції "[..]" є "[0-9a-zA-Z_]". Можна використовувати символи з розширеного набору (тобто 8-бітові символи), якщо у системі передбачено підтримку цих символів. Щоб придушити використання символів з набору "[]*?!^-\" для побудови синтаксичних лексем у межах конструкцій "[..]" тобто їхнього буквального використання, додавайте перед цими символами символ зворотної риски ("\"). Використання символів-замінників надає доступ до досить потужних можливостей з пошуку. Наприклад, за допомогою вказаного нижче виразу можна знайти будь-який каталог, назва якого завершується на «top»: wcd *top Знайти каталоги, у назві яких будь-де міститься частина «top»: wcd *top* Знайти будь-який каталог, назва якого починається з «a», «b» або «c»: wcd [a-c]* Крім того, можна вказати частину шляху до каталогу. У наведеному нижче прикладі wcd шукатиме каталог, назва якого починається з «Desk», шлях якого відповідає шаблону **me/Desk**. wcd me/Desk Можна використовувати будь-який вираз, що містить риски та символи замінники. Приклад: wcd src*/*1?/a*2 Інші варіанти використання Якщо у виразі не використано символів-замінників, а wcd знаходить повний відповідник з вказаним шляхом і назвою, wcd типово проігнорує усі відповідники, які могло б бути знайдено з використанням символів-замінників. Типову поведінку програми можна змінити за допомогою параметра -w. Інтерактивний навігатор ієрархією каталогів можна запустити за допомогою параметра -g. wcd -g Wcd створює файл даних ієрархії (treedata) у каталогах, звідки виконується пошук. У системах Unix та Windows wcd додає символічні посилання на файл treedata під час сканування диска, але не переходить за створеними посиланнями. Перехід за посиланнями може призвести до зациклювання wcd у ієрархії каталогів або сканування великих масивів каталогів у мережі. Крім того, wcd може переходити до каталогів, яких немає у файлі treedata. Приклад: wcd .. Якщо wcd буде виявлено відповідник критерію пошуку, але програма не зможе перейти до цього каталогу, буде виконано спробу вилучення каталогу з типового файла treedata, але не з додаткового файла treedata. Див. також параметр -k. Wcd зберігає на диску стос переходів за каталогами. Типовим обсягом стосу є 10. Перехід стосом здійснюється циклічно. Див. параметри -z, -, + та =. У середовищах з декількома користувачами для переходу до каталогів, що належать іншим користувачам, можна скористатися параметром -u. У операційних системах DOS і Windows можна використовувати як роздільник між каталогами як символ «/», так і символ «\». У системах DOS та Windows передбачено можливість переходу до каталогу на іншому диску. Для цього достатньо перед назвою каталогу на диску вказати назву диска. wcd d:games Шляхи UNC Windows У версіях для Windows (для командного рядка, PowerShell, MSYS, zsh, cygwin) передбачено підтримку шляхів UNC LAN Windows для SMB без літер дисків, наприклад "\\назва_сервера\назва_ресурсу". У wcd для командного рядка Windows для автоматичного прив’язування шляху UNC до літери диска використовується команда «pushd». У In Windows PowerShell, MSYS, zsh та Cygwin передбачено повноцінну підтримку шляхів UNC. Шлях UNC може бути поточним робочим каталогом. Інтерфейси У wcd передбачено три різні інтерфейси вибору потрібного варіанта зі списку відповідників. Інтерфейс можна вибрати під час збирання програми. Першим інтерфейсом є звичайні інтерфейси введення та виведення (stdin/stdout). До термінала буде виведено нумерований список варіантів. Користувач зможе вибрати відповідний варіант введенням його номера з наступним натисканням клавіші . У цьому інтерфейсі не передбачено можливостей гортання для довгих списків. Для цього доведеться користуватися можливостями з гортання термінала або консолі. Код цього інтерфейсу доволі малий і портований. Другий інтерфейс побудовано на основі бібліотеки conio. У ньому передбачено можливості гортання. Користувачу буде показано список з літерним позначенням пунктів. Для вибору пункту у списку достатньо натиснути клавішу з відповідною літерою. Цей інтерфейс працює швидше, оскільки треба натискати менше клавіш. Після вибору варіанта, якщо це можливо, зображення на екрані буде відновлено до стану перед показом варіантів. Якщо користувач надає перевагу цифровому позначенню пунктів, можна скористатися параметром -N. Третій інтерфейс побудовано на основі бібліотеки curses. Він подібний до інтерфейсу на основі conio. Версія wcd на основі curses має додатковий «графічний» інтерфейс. За його допомогою користувач зможе вибрати каталог у повноекранному інтерактивному навігаторі ієрархією каталогів. Передбачено навігацію та пошук у стилі vim(1). Задіяти цей інтерфейс можна за допомогою параметра -g. За допомогою параметра командного рядка -o програму можна завжди перевести до стандартного інтерфейсу stdin/stdout. ПАРАМЕТРИ -a Додати поточний шлях до типового файла ієрархії. За допомогою цього параметра можна швидко додати поточний шлях до типового файла ієрархії каталогів. Повторне сканування усього диска у певних випадках може бути досить тривалою справою. -aa Додати поточний і усі батьківські шляхи до типового файла ієрархії каталогів (treedata). -A ШЛЯХ Сканувати ієрархію каталогів, починаючи з каталогу *ШЛЯХ*, і дописати усі виявлені каталоги до файла ієрархії каталогів (treedata). Приклади: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share У Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: "wcd -A \\назва_сервера". Див. також параметри -S, -s та -E. -b Заблокувати поточний шлях. Wcd додає поточний шлях до файла блокування. Це означає, що wcd ігноруватиме усі відповідники з поточного каталогу і усіх його підкаталогів. Файл блокувань (ban) можна редагувати у текстовому редакторі. Передбачено підтримку символів-замінників. Відповідність назв встановлюється за абсолютними шляхами. Заблоковані шляхи не виключаються зі шляхів сканування диска. Щоб виключити заблоковані шляхи, скористайтеся параметром -xf. -c, --direct-cd Безпосередній режим CD. Типово, wcd працює так: 1. Спробувати знайти відповідник у файлах ієрархії (treedata). 2. Якщо нічого не знайдено, спробувати відкрити каталог, назву якого було введено. У безпосередньому режимі CD wcd виконує обробку запиту у зворотному порядку. 1. Cпробувати відкрити каталог, назву якого було введено. 2. Якщо не вдалося, знайти відповідник у файлах ієрархії (treedata). -d ДИСК Встановити диск для файла стосу і переходу (лише для DOS). Типово, файл стосу та скрипт переходу зберігаються на диску C:, якщо не встановлено значення змінної середовища *HOME*. Цим параметром можна скористатися, якщо диск C: захищено від запису. Цей параметр слід вказувати перед параметрами роботи зі стосом -, + та =. -e Додати поточний шлях до додаткового файла ієрархії. За допомогою цього параметр можна швидко додати поточний шлях до додаткового файла ієрархії. -ee Додати поточний і усі батьківські шляхи до додаткового файла ієрархії каталогів (treedata). -E ШЛЯХ Сканувати ієрархію каталогів, починаючи з каталогу *ШЛЯХ*, і дописати усі виявлені каталоги до додаткового файла ієрархії каталогів (treedata). Див. також параметри -A та -S. -f ФАЙЛ Прочитати файл даних ієрархії каталогів *ФАЙЛ*. Не виконувати читання з типового файла ієрархії каталогів. +f ФАЙЛ Прочитати дані з файла ієрархії каталогів *ФАЙЛ* на додачу до даних з типового файла даних ієрархії каталогів. -g Графічний інтерфейс (лише у версії з інтерфейсом на основі curses). Wcd запускає текстовий «графічний» інтерфейс на основі curses. Користувач може вибрати каталог за допомогою повноекранного інтерактивного навігатора ієрархією каталогів. Передбачено навігацію і пошук у стилі vim(1). Якщо рядок пошуку не вказано, wcd показує усю ієрархію каталогів з типового та додаткового файлів даних ієрархії. Якщо рядок пошуку вказано, список відповідників буде показано як ієрархію каталогів. Типове компонування ієрархії подібне до компонування каталогів у початковій версії NCD у DOS. Різниця у компонуванні полягає у тому, що у NCD усі каталоги одного рівня було вирівняно однаковим відступом у всьому дереві. Це було можливим у NCD, оскільки максимальна довжина назви каталогу у DOS дорівнювала 12 (8.3) символам. У сучасних операційних системах назви каталогів можуть бути дуже довгими і різниця у довжинах може бути дуже великою. Тому теки однакового рівня вкладеності не вирівняно за однією лінією за усією ієрархією каталогів у wcd, а лише за гілками ієрархії. Отже, під час руху вгору-вниз ієрархією каталогів користувач спостерігатиме за зсувами списку у різні боки. Навігаційна поведінка у wcd абсолютно збігається з початковою версією NCD. Наприклад, якщо ви натиснете клавішу зі стрілкою вниз, ви перейдете до наступного каталогу з тим самим рівнем вкладеності, переходячи гілками ієрархії. Це пришвидшує навігацію ієрархією каталогів. Поведінку засобу навігації можна змінити за допомогою параметрів -Ta, -TC та -Tc. -gd Створити дамп файлів ієрархії каталогів (treedata) і вивести дані до стандартного виведення (stdout). -G ШЛЯХ Записати скрипт переходу у каталозі *ШЛЯХ*. Наприклад, у Unix, "wcd -G ШЛЯХ" призведе до запису скрипту переходу до ШЛЯХ/wcd.go. -GN, --no-go-script Не створювати скрипт переходу. Цим параметром можна скористатися у поєднанні з параметром -j, якщо з якихось причин створення wcd скрипту переходу є небажаним. -h, --help Показати довідку щодо використання і завершити роботу. -i, --ignore-case Ігнорувати регістр символів. У версіях wcd для DOS та Windows така поведінка є типовою. У версіях для Unix/Cygwin регістр типово враховується. +i, --no-ignore-case Брати до уваги регістр символів. Див. також параметр -i. -I, --ignore-diacritics Ігнорувати діакритичні знаки для писемностей на основі латиниці. Програма вважатиме літери з діакритичними знаками еквівалентними до їхніх відповідників без діакритичних знаків. Передбачено підтримку таких кодувань латиниці: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2 та Unicode Latin-1, Latin Extended-A, а також Latin Extended-B. Див. також +I, --no-ignore-diacritics Брати до уваги діакритичні позначки (типово). Див. також параметр -I. -j, --just-go Режим простого переходу. У цьому режимі wcd не показуватиме списку, якщо для вказаної назви буде знайдено декілька відповідників. Wcd просто перейде до першого ж відповідника. Якщо wcd буде викликано знову з тими самими аргументами, програма змінить каталог на наступний пункт у списку тощо. Wcd виведе назву каталогу, що якого переходитиме до стандартного виведення (stdout). Отже можна скористатися декількома способами встановлення. Можна створити таку функцію для сумісної з POSIX командної оболонки: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Якщо ви користуєтеся застарілою командною оболонкою, у якій не передбачено підтримки заміни команди «$()», вам доведеться скористатися підставлянням команди у застарілому стилі з одинарними відкривними лапками. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } У системах Windows, якщо використано командну оболонку 4NT, можна створити такі альтернативні назви: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Подібний метод усуває потребу у скрипті переходу, отже, параметр -j можна використати у поєднанні з параметром -GN. -k, --keep-paths Зберігати шляхи. Зберігати шляхи до файла даних ієрархії каталогів, якщо wcd не може перейти до відповідного каталогу. Типовою поведінкою програми є вилучення шляхів з файла даних ієрархії, якщо wcd не може перейти до відповідного каталогу. Якщо буде використано цей параметр, програма не вилучатиме відповідних записів каталогів. -K, --color Використовувати кольори у графічному режимі. -l АЛЬТЕРНАТИВНА НАЗВА Надати поточному шляху альтернативну назву *АЛЬТЕРНАТИВНА НАЗВА*. Wcd запише поточний шлях з його альтернативною назвою до файла альтернативних назв. Альтернативні назви з різним регістром символів вважаються різними. -m КАТАЛОГ Створити каталог і додати його до файла даних ієрархії. -L, --license Вивести дані щодо умов ліцензування. -M КАТАЛОГ Створити каталог і додати його до додаткового файла даних ієрархії. -n ШЛЯХ Прочитати відносний файл даних ієрархії каталогів з каталогу *ШЛЯХ*. Не виконувати читання з типового файла даних ієрархії каталогів. Файл даних відносних шляхів до каталогів має бути вже створено за допомогою параметра wcd +S. Крім того, *ШЛЯХ* може безпосередньо вказувати на файл. Приклад. Припустімо, що іншу систему змонтовано до точки монтування "/mnt/network": wcd -n /mnt/network src Wcd відкриває файл даних відносних шляхів до каталогів у "/mnt/network/". У цьому файлі містяться шляхи відносно відповідного каталогу. +n ШЛЯХ Прочитати дані з файла даних відносної ієрархії каталогів на додачу до даних з типового файла даних ієрархії каталогів. Див. параметр -n. -N, --numbers Використовувати числа замість літер. Wcd з інтерфейсом на основі conio або curses (див. розділ «ІНТЕРФЕЙС») типово показує список варіантів з пунктами, позначеними літерами. Якщо використано параметр -N, пункти у списку буде пронумеровано. Незалежно дві параметра -N, користувач може натиснути клавішу з літерою або номером для вибору пункту зі списку відповідників. -o Використовувати інтерфейс stdin/stdout. Якщо з певних причин інтерфейсом на основі conio або curses у wcd не можна або не бажано користуватися, користувач може перемкнути програму на інтерфейс stdin/stdout за допомогою параметра -o. -od, --to-stdout Вивести усі відповідники до stdout. -q, --quiet Менше повідомлень. Останній відповідник не виводиться до консолі. -r КАТАЛОГ Вилучити каталог і відповідний запис з файла даних ієрархії каталогів. Якщо каталог є порожнім, wcd вилучить його і спробує вилучити відповідний запис з файла даних ієрархії каталогів. -rmtree КАТАЛОГ Рекурсивно вилучити каталог і відповідні записи з файла даних ієрархії каталогів. Wcd вилучить каталог та усі його підкаталоги та файли і витре записи відповідних каталогів з файла даних ієрархії каталогів. -s Виконати сканування або повторне сканування диска, починаючи з каталогу *$HOME*. Якщо значення змінної HOME не визначено, сканування диска виконуватиметься, починаючи з кореневого каталогу, /. Наявний типовий файл даних ієрархії каталогів буде перезаписано. Типовий каталог сканування можна перевизначити за допомогою змінної середовища "WCDSCAN". Див. розділ «ЗМІННІ СЕРЕДОВИЩА». -S ШЛЯХ Виконати сканування ієрархії каталогів, починаючи з каталогу *ШЛЯХ*, і перезаписати типовий файл даних ієрархії каталогів. Див. також параметри -A, -s та -E. Наприклад, з параметром -A ви можете створити типовий файл даних ієрархії каталогів за вашим вибором. Приклади: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share У версіях для Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: "wcd -S \\назва_сервера". +S ШЛЯХ Сканувати диск, починаючи з каталогу *ШЛЯХ*, і замінити відносні шляхи у файлі даних відносної ієрархії каталогів. Цей файл використовується, якщо додано параметри -n і +n. Приклад: "wcd -n ШЛЯХ джерело". -t Не вилучати із записів рядок тимчасового каталогу монтування, "/tmp_mnt" (лише у Unix) Типово, wcd вилучає "/tmp_mnt/" з відповідників. Каталог "/tmp_mnt" використовується засобом автоматичного монтування. Таку обробку можна вимкнути за допомогою параметра -t. -T, --ascii-tree Малювати ієрархію за допомогою символів ASCII. Скористайтеся цим параметром, якщо символи малювання ліній у терміналі буде показано з помилками. -Ta, --alt-tree-nav Альтернативний режим навігації у форматі графічної ієрархії каталогів. У типовому режимі компонування ієрархії у стилі NCD параметр -Ta вимикає перехід до непов’язаних каталогів. У режимі компактної ієрархії альтернативний режим робить навігацію подібною до навігації у програмах для керування файлами з графічним інтерфейсом, зокрема Провіднику Windows або KDE Konqueror у Linux. Натискання клавіш зі стрілками вгору і вниз пересуває позначення теки на один рядок вгору або вниз. Першим натисканням клавіші зі стрілкою ліворуч можна згорнути підтеки, наступне натискання — перехід ліворуч. Перемкнутися між режимами типової і альтернативної навігації без перезапуску програми можна за допомогою натискання комбінації клавіш Shift-A. Якщо увімкнено режим альтернативної навігації, у нижньому правому куті екрана ви побачите літеру «A». -TC, --center-tree Центрований режим перегляду у графічній ієрархії. Позначений каталог залишається посередині екрана. Центрований режим можна увімкнути або вимкнути за допомогою натискання клавіші «t» у режимі графічної ієрархії. Стандартний нецентрований режим, який мінімізує рух самої ієрархії на екрані, аналогічний до оригінального режиму NCD. -Tc, --compact-tree Типово, «графічну» ієрархію буде намальовано у той самий спосіб, як це робила початкова версія NCD для DOS. У DOS шлях до каталогу може складатися не більше ніж з 66 символів. Використання сучасної структури каталогів, без обмежень на довжину шляхів, може призвести до значного перевищення ширини ієрархії. Щоб подолати ці труднощі, wcd може малювати ієрархію каталогів у компактному форматі, подібному до формату більшості програм для керування файлами з графічним інтерфейсом, по одній теці на рядок. Увімкнути відповідний режим можна за допомогою параметра -Tc або перемикання натисканням клавіші «m». -Td, --cjk-width У застарілих шрифтах для показу ієрогліфів східноазійських мов (китайської, японської та корейської) частина символів ієрогліфів та символів малювання ліній займають дві позиції замість звичайної для Unicode ширини цих символів у одну позицію. Прикладами таких шрифтів є растровий шрифт Chinese CP936 для Windows та шрифт Simsun. За допомогою цього параметра можна забезпечити правильний показ графічної ієрархії каталогів з використанням застарілих шрифтів з ієрогліфами. Якщо увімкнено режим ієрогліфів, у нижньому правому куті екрана ви побачите літеру «C». -u КОРИСТУВАЧ Сканувати файл даних ієрархії іншого користувача, *КОРИСТУВАЧ*, не сканувати типовий файл ієрархії поточного користувача. Див. також розділ ЗМІННІ СЕРЕДОВИЩА, а саме запис щодо змінної *WCDUSERSHOME*. У Unix/Cygwin базовим каталогом для домашніх каталогів користувачів вважається "/home". Wcd шукатиме файли "/home/USER/.treedata.wcd" та "/home/USER/.wcd/.treedata.wcd", саме у цьому порядку, і читатиме дані з першого ж із цих файлів, який буде знайдено і який виявиться придатним до читання. У DOS/Windows базовим каталогом для домашніх каталогів користувачів вважається "\\users", отже, wcd намагається прочитати дані з файлів "\\users\USER\treedata.wcd" та "\\users\USER\.wcd\treedata.wcd". +u КОРИСТУВАЧ Прочитати дані з типового файла ієрархії каталогів користувача КОРИСТУВАЧ на додачу до даних з типового файла даних ієрархії каталогів вашого користувача. -v, --verbose Показувати докладні повідомлення. З цим параметром wcd виводитиме усі фільтри, блокування та виключення. -V, --version Показати дані щодо версії і завершити роботу. -w, --wild-match-only Встановлення відповідність для неточних відповідників, лише якщо використано символи-замінники. -x ШЛЯХ Виключити *ШЛЯХ* зі сканування. Якщо буде використано цей параметр, wcd виключить шлях з назвою *ШЛЯХ* та усі його підкаталоги з переліку шляхів для сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Параметр -x у команді можна використовувати декілька разів. wcd -x <шлях1> -x <шлях2> -s Параметр -x слід вказувати до усіх параметрів сканування (-s, -S, +S, -A, -E). У системах DOS/Windows слід вказати літеру диска, якщо не визначено змінної середовища *HOME* або *WCDHOME*. Приклад: wcd -x c:/temp -S c: У інших випадках літеру диска не слід вказувати. wcd -x /temp -s -xf ФАЙЛ Виключити зі сканування усі шляхи, вказані у файлі *ФАЙЛ*. Якщо використано цей параметр, wcd виключить усі шляхи зі списку у файлі *ФАЙЛ* та усі підкаталоги цих шляхів зі сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Шляхи має бути вказано по одному на рядок. Слід пам’ятати, що wcd ігноруватиме початкові та завершальні пробіли у рядку, оскільки такі пробіли є некоректними символами у назвах каталогів. Параметр -xf можна вказувати декілька разів. Якщо ви хочете виключити усі заблоковані шляхи зі сканування, можна зробити так (приклад для wcd у unix): wcd -xf ~/.ban.wcd -s Передбачено підтримку символів-замінників. Наприклад, щоб виключити усі каталоги Subversion з файлами, призначеними для адміністрування копії сховища, додайте рядок "*/.svn". Параметр -xf слід вказувати до усіх параметрів сканування (-s, -S, +S, -A, -E). -y, --assume-yes Вважати відповіддю на всі питання «так». Wcd не проситиме користувача підтвердити дію відповіддю «так» або «ні», відповіддю завжди вважається «так». Цей параметр можна поєднати з параметром -rmtree. Параметр слід вказувати до параметрів, використання яких може призвести до появи питань, на які має відповідати користувач. -z ЧИСЛО Встановити для максимального розміру стосу значення ЧИСЛО. Типовим розміром стосу є 10. Дії зі стосом можна вимкнути встановленням значення 0. Цей параметр слід використовувати перед будь-якими іншими параметрами, що призводять до дій зі стосом (-,+,=). Якщо цього не зробити, стосу буде повернуто типовий розмір 10. Правильна команда: wcd -z 50 - Новим розміром стосу буде 50, wcd перейде на один крок назад у стосі. Помилковою була б така команда: wcd - -z 50 Wcd повернеться на один каталог назад у стосі, розміру ж стосу буде повернуто типове значення 10. Параметр -z 50 буде проігноровано. Додайте цей параметр як перший параметр до альтернативної команди wcd або функції, де ця програма використовується. Приклад для сумісних з POSIX командних оболонок: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } -[ЧИСЛО] Повернутися на ЧИСЛО пунктів назад у стосі. Типовим є значення у один пункт. Повернутися на один каталог назад. Команда "wcd -" поверне вас на один каталог назад. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: "wcd -3". Перехід стосом каталогів є циклічним. +[ЧИСЛО] Перейти вперед на ЧИСЛО пунктів у стосі. Типовим є значення у один пункт. Перейти вперед на один каталог. Команда "wcd +" призведе до переходу на один каталог вперед. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: "wcd +2". Перехід стосом каталогів є циклічним. = Показати стос. Скористайтеся цим параметром, якщо ви призабули скільки пунктів залишилося попереду і позаду у стосі. У відповідь на команду з цим параметром програма виведе вміст стосу для наступного вибору номера пункту. Поточне місце у стосі буде позначено зірочкою, "*". ВСТАНОВЛЕННЯ Поточний робочий каталог командної оболонки Unix можна змінити лише за допомогою вбудованої команди cd(1). Тому програму завжди викликають функцією або за альтернативною назвою. Ця функція або альтернативна назва зберігається у скрипті командної оболонки (скрипті переходу), який створюється програмою wcd. Wcd може працювати лише після визначення функції або альтернативної назви. Іншим варіантом внесення змін до поведінки встановленої вами програми є визначення значень змінних середовища *HOME* та *WCDHOME*. Див. розділ ЗМІННІ СЕРЕДОВИЩА. Встановлення для командних оболонок типу POSIX Для командних оболонок POSIX (ksh, bash, zsh, etc.) у Unix, Linux, Cygwin або типовій оболонці MSYS додайте таку функцію до файла запуску оболонки (наприклад, у Bash використовується файл "$HOME/.bashrc"): wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } Замініть *ШЛЯХ* на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. Розташування скрипту переходу, "wcd.go", є різним для різних оболонок. Wcd для bash у DJGPP DOS потрібна інша функція. Скрипт переходу не буде записано до каталогу "bin" і, якщо одночасно визначено *WCDHOME* та *HOME*, скрипт переходу буде записано до c:/. wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } Версія wcd для WinZsh теж має свої особливості. Немає каталогу "bin". wcd () { <ШЛЯХ>/wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Докладніший опис можна знайти у розділі «ФАЙЛИ». Встановлення для C-подібних командних оболонок (csh, tcsh) Додайте такі альтернативні назви до файла запуску оболонки, "$HOME/.cshrc" або "$HOME/.tcshrc" : if ( ${?WCDHOME} ) then alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $HOME/bin/wcd.go" endif Замініть *ШЛЯХ* на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку. Версія для командного рядка Windows Розпакуйте архів zip і додайте каталог "bin" до вашої змінної середовища *PATH*. Програма для Windows, що працює у вікні командної оболонки Windows (Command Prompt) не може змінити поточного каталогу, але це може зробити скрипт .bat. Пакетний скрипт "wcd.ba"» запускає програму wcd, яка створює новий пакетний скрипт, "wcdgo.bat". Після цього "wcd.bat" запускає скрипт "wcdgo.bat", який здійснює зміну каталогу. Windows VISTA та новіші версії У командній оболонці Windows VISTA та новіших версій користувачі мають обмежений доступ до каталогів. Що отримати доступ до усіх каталогів, вам знадобляться права доступу адміністратора. Запустити командну оболонку з правами адміністратора можна так: наведіть вказівник миші на піктограму командної оболонки, клацніть правою кнопкою миші і виберіть у контекстному меню пункт *Запуск від імені адміністратора*. Версія для Windows PowerShell Додайте вказану нижче функцію до вашого профілю користувача PowerShell. Дані щодо місця зберігання цього профілю зберігаються у змінній $profile. Слід також визначити змінну середовища *HOME* або *WCDHOME*. function wcd { <ШЛЯХ>\wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } Замініть *ШЛЯХ* на адресу каталогу, до якого встановлено виконуваний файл wcd. Запустіть новий сеанс роботи у PowerShell. У Wcd для PowerShell передбачено роботу лише з файловими системами. Забезпечення роботи з іншими джерелами файлових даних не передбачено. Версія для командного рядка OS/2 У командній оболонці OS/2 (cmd.exe) програма OS/2 не може змінювати робочого каталогу. Ось чому wcd створює командний скрипт ("wcdgo.cmd"), який має бути виконано у поточній оболонці. Скрипт "wcd.cmd" спочатку запускає програму "wcdos2.exe", яка створює скрипт "wcdgo.cmd". Після цього "wcd.cmd" запускає скрипт wcdgo.cmd. ЛОКАЛІЗАЦІЯ LANG Основна мова визначається за допомогою змінної середовища *LANG*. Значення змінної *LANG* складається з декількох частин. Перша частина записується малими літерами і визначає код мови. Друга частина є необов’язковою, визначає код країни і записується прописними літерами, відокремлюється від першої частини символом підкреслювання. Передбачено також необов’язкову третю частину: кодування. Ця частина відокремлюється від другої частини крапкою. Ось декілька прикладів для командних оболонок стандартного типу POSIX: export LANG=uk українська export LANG=uk_UA українська, Україна export LANG=ru_UA російська, Україна export LANG=es_ES іспанська, Іспанія export LANG=es_MX іспанська, Мексика export LANG=en_USiso88591 англійська, США, кодування Latin-1 Повний список мов та кодів краї наведено у підручнику з gettext(1): . У системах Unix для отримання даних щодо локалі можна скористатися командою locale(1). LANGUAGE За допомогою змінної середовища *LANGUAGE* ви можете вказати список пріоритетності мов. Записи у списку слід відокремлювати двокрапками. Програма wcd надає перевагу *LANGUAGE* над *LANG*. Наприклад, перша голландська, далі німецька: "LANGUAGE=nl:de". Спочатку вам слід увімкнути локалізацію, встановивши для змінної *LANG* (або *LC_ALL*) значення, відмінне від *C*. Далі ви зможете використовувати список пріоритетності мов за допомогою змінної *LANGUAGE*. Додаткові відомості можна знайти у підручнику з gettext: Якщо вами буде вибрано мову, перекладу якою немає, буде показано стандартні повідомлення англійською мовою. WCDLOCALEDIR За допомогою визначення змінної середовища *WCDLOCALEDIR* можна перевизначити значення *LOCALEDIR*, вказане під час збирання та встановлення програми. Змінна *LOCALEDIR* використовується wcd з підтримкою перекладів для пошуку файлів перекладів. Типовим значенням для системи GNU є "/usr/local/share/locale". Дізнатися про поточне значення змінної *LOCALEDIR* можна за допомогою команди "wcd -V". Якщо ви встановили wcd до каталогу, відмінного від типового, вам варто встановити значення змінної середовища *WCDLOCALEDIR* так, щоб вона вказувала на каталог з файлами перекладів. Приклад для cmd у Windows: set WCDLOCALEDIR=c:/my_prefix/share/locale Приклад для оболонки POSIX: export WCDLOCALEDIR=$HOME/share/locale LC_COLLATE Якщо wcd вдасться знайти декілька відповідників вказаного користувачем каталогу, програма покаже упорядкований список варіантів. Спосіб упорядковування залежить від параметрів локалі. Якщо у середовищі встановлено значення змінної *LANG*, відповідники буде упорядковано відповідно до порядку, який використовується у словниках або телефонних книгах відповідною мовою. Наприклад, буде проігноровано крапки і дефіси, літери з акцентами вважатимуться еквівалентними до літер без акцентів, ігноруватимуться відмінності у написанні великими чи малими літерами. Під час визначення параметрів упорядковування перевага надається змінній середовища *LC_COLLATE*, а не змінній *LANG*. Якщо ви вкажете для *LC_COLLATE* значення "C" або "POSIX", упорядковування за параметрами локалі буде вимкнено. Наприклад, якщо ви хочете скористатися українською мовою інтерфейсу, але не хочете використовувати українські параметри упорядковування, ви можете зробити так: export LANG=uk_UA export LC_COLLATE=C LC_CTYPE Під час визначення параметрів кодування у wcd надається перевага змінній *LC_CTYPE*, а не *LANG*. Наприклад, щоб встановити кодування символів UTF-8, слід скористатися такою командою: export LC_CTYPE=en_US.UTF-8 LC_ALL Усі змінні середовища, пов’язані з локаллю, назви яких починаються з *LC_*, можна перевизначити за допомогою змінної середовища *LC_ALL*. Wcd надає перевагу значенню *LC_ALL* над значеннями *LC_COLLATE* та *LC_CTYPE*. ТАБЛИЦІ КОДУВАНЬ WINDOWS Існує дві групи кодових сторінок: кодові сторінки DOS (OEM) та кодові сторінки Windows (ANSI). Типовим кодуванням для Windows, якщо систему налаштовано на західноєвропейські параметри регіону, є ANSI CP1252. У програмах Windows, наприклад у notepad, використовується ця типова загальносистемна кодова сторінка ANSI. У консолі Windows типово використовується кодова сторінка OEM (CP437 або CP850) для сумісності з програмами DOS. Якщо ви використовуєте версію wcd для DOS у консолі Windows, програма не працюватиме, оскільки у ній використовується кодова сторінка DOS. Але у версії wcd для DOS не передбачено підтримку довгих назв каталогів та мережевих дисків у Windows. Версія wcd для Windows є типовою програмою Windows, вона використовуватиме загальносистемну кодову сторінку ANSI Windows. Отже, у західноєвропейській локалізації Windows програма використовуватиме кодову сторінку CP1252 для назв каталогів та повідомлень. З метою забезпечення однорідності виведення даних, незалежно від активної кодової сторінки, усі версії wcd для Windows перетворюють виведені дані у форматі ANSI у формат Unicode у командній оболонці та PowerShell. У консольних растрових шрифтах передбачено оригінальну кодову сторінку OEM, що встановлюється разом з Windows, отже, вам слід змінити шрифт консолі на Lucida Console, щоб літери з Unicode (та ANSI) було показано належним чином. Версії wcd без підтримки Unicode *до версії 5.2.0* виводять дані у форматі ANSI. Для цих застарілих версій кодову сторінку консолі слід зробити еквівалентною до загальносистемної кодової сторінки (змінюється на 1252), щоб забезпечити належну роботу wcd для Windows зі спеціальними символами, зокрема символами з акцентами, символами кирилиці та символом євро. Загальносистемну кодову сторінку Windows можна змінити за допомогою регіональних параметрів «Панелі керування». Кодову сторінку консолі Windows можна змінити за допомогою команди "chcp". Програма виводить дані щодо справжнього кодування символів у відповідь на команду "wcd -V". Щоб визначити активну кодову сторінку консолі Windows, введіть команду "chcp". UNICODE У wcd може бути передбачено підтримку Unicode. Щоб визначити, чи було зібрано wcd з підтримкою Unicode, скористайтеся командою "wcd -V". Якщо у вашому терміналі або консолі та шрифті передбачено підтримку, ви зможете бачити символ євро та китайські ієрогліфи. Перетворення у Unicode у wcd виконується *програмно*. У ядрі програми усі дані обробляються як потік даних. У широкі символи Unicode перетворюються лише рядки, що виводяться на екран. Wcd повністю покладається на функції libc і не містить специфічного для UTF-8 коду. Див. також У wcd передбачено необов’язкову підтримку встановлення відповідності за Unicode з нормалізацією. Щоб визначити, чи передбачено у wcd підтримку нормалізації, скористайтеся командою "wcd -V". У wcd з підтримкою нормалізації Unicode відповідність назв Unicode виконується на основі *сумісної* еквівалентності. Без підтримки нормалізації Unicode відповідність назв встановлюється за двійковою еквівалентністю. Див. також UTF-8 у Unix/Linux Щоб у вашій консолі або терміналі можна було переглядати символи UTF-8, у консолі і терміналі також має бути передбачено підтримку UTF-8. У версії xterm, яка постачається разом з XFree86 4.0 або наступними версіями, передбачено підтримку UTF-8. Щоб задіяти цю підтримку, запустіть xterm(1) у локалі UTF-8 і скористайтеся шрифтом з кодуванням iso10646-1, наприклад за допомогою такої команди: LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' У сучасних дистрибутивах GNU/Linux типовою використовується кодування UTF-8. Можна працювати і з іншими багатобайтовими кодуваннями символів, але належного тестування працездатності з цими кодуванням не виконувалося. У wcd припускається, що кодуванням файлів даних ієрархії каталогів є кодування символів поточної локалі. До файлів даних ієрархії каталогів символ позначки порядку байтів (BOM) не записується. UTF-16 у Windows У Windows підтримку Unicode передбачено у всіх версіях PowerShell та у командній оболонці Windows у Windows 7 (та новіших версіях). Unicode також працює у Take Command або TCC/LE створених JP Software, якими можна скористатися у старіших версіях Windows (XP/Vista). У Windows усі назви каталогів на диску кодуються за допомогою UTF-16. У програмах Windows без підтримки Unicode символи Unicode перетворюються у символи типової кодової сторінки ANSI. Для символів, які не є частиною регіонального кодування, це перетворення є неможливим, отже програми без підтримки Unicode виводитимуть замість них символ знаку питання або помилковий символ. Wcd з підтримкою Unicode читатиме закодовані у UTF-16 назви каталогів і перетворюватиме дані до UTF-8 у внутрішньому коді. Усі дані файлів ієрархії каталогів буде закодовано у UTF-8. Ці дані є несумісними з версіями wcd без підтримки Unicode. Wcd створить скрипт переходу у кодуванні UTF-8. Усі версії Windows PowerShell можуть запускати скрипти у кодуванні UTF-8, якщо у скрипті є символ BOM UTF-8. Починаючи з Windows 7, у командній оболонці Windows передбачено можливість змінити за допомогою пакетного скрипту каталог на каталог з літерами Unicode у назві. Кодуванням назви каталогу має бути UTF-8, а *пакетний скрипт* не повинен містити позначки порядку байтів (BOM). Слід змінити активну кодову сторінку командної оболонки на 65001 (UTF-8) до виконання команди cd. Wcd для командної оболонки створити такий скрипт переходу ("wcdgo.bat"). Цей скрипти спочатку змінюватиме кодову сторінку на 65001, потім змінюватиме каталог, і нарешті, повертатиме початкове значення параметрів кодової сторінки. Якщо літери буде показано не так, як слід, вам слід встановити шрифт True Type Lucida Console (не растровий шрифт). Версія wcd для Windows без підтримки Unicode може читати файли даних ієрархії каталогів у кодуванні Unicode, починаючи з версії 5.2.0, якщо у файлі є позначка порядку байтів (BOM) (див. ), але не може змінювати каталоги на каталоги з тими літерами Unicode у назві, які не є частиною типової кодової сторінки ANSI системи. Версія wcd для Windows з підтримкою Unicode записує BOM до файлів ієрархії каталогів у кодуванні UTF-8, починаючи з версії 5.2.0, отже, ці файли можна читати за допомогою notepad. UTF-8 у Cygwin У Cygwin передбачено підтримку Unicode, починаючи з версії 1.7. Шар обробки Cygwin виконує перетворення назв каталогів Windows у UTF-16 до UTF-8. Отже, програми, зокрема wcd, не потрібно перейматися процедурами перетворення, вони можуть обробляти дані у кодуванні UTF-8, як це робиться у Unix/Linux. Встановити кодування символів UTF-8 можна за допомогою змінної середовища *LANG* або *LC_CTYPE*. Ймовірно, вам доведеться пересканувати ваші диски. Якщо ви користуєтеся типовою консоллю Cygwin, вам слід встановити для неї шрифт True Type Lucida Console (не растровий шрифт). Версія wcd для Cygwin поводиться точно так само, як версія wcd для Unix. Мітка порядку байтів (BOM) не записується до файлів даних ієрархії каталогів. Кодуванням файлів вважається кодування символів локалі Cygwin. ФАЙЛИ Якщо встановлено змінну середовища *WCDHOME*, використовуватиме *WCDHOME* замість *HOME*. Усі файли "*.wcd" є текстовими файлами. Їх можна редагувати у звичайному текстовому редакторі. Версія wcd для командної оболонки Windows поводиться так само, як версія для DOS. Версія wcd для Cygwin поводиться як версія для Unix. wcd.exe Сама програма. У оболонках Unix програма завжди викликається функцією або альтернативною командою, оскільки поточний робочий каталог у оболонці Unix можна змінювати лише за допомогою вбудованої команди cd. Див. також розділ «ВСТАНОВЛЕННЯ». типовий файл даних ієрархії каталогів Це типовий файл даних ієрархії каталогів, де wcd шукає відповідники. Якщо цей файл непридатний до читання, wcd створить новий. DOS: \treedata.wcd або %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd додатковий файл даних ієрархії каталогів Необов’язковий додатковий файл даних ієрархії каталогів. Якщо такий файл існує і є придатним до читання, wcd спробує знайти відповідники і у цьому файлі. DOS: \extra.wcd або %HOME%\extra.wcd Unix: $HOME/.extra.wcd файл блокувань До цього додаткового файла wcd записує заблоковані шляхи. Див. параметр -b. Передбачено підтримку символів-замінників. DOS: \ban.wcd або %HOME%\ban.wcd Unix: $HOME/.ban.wcd файл альтернативних назв Необов’язковий файл із записами альтернативних назв wcd. Див. параметр -l. DOS: \alias.wcd або %HOME%\alias.wcd Unix: $HOME/.alias.wcd файл stack У цьому файлі зберігається стос каталогів wcd. Літеру диска можна змінити за допомогою параметра -d. DOS: c:\stack.wcd або %HOME%\stack.wcd Unix: $HOME/.stack.wcd Назву файла стосу можна змінити за допомогою змінної середовища *WCDSTACKFILE*. Див. розділ «ЗМІННІ СЕРЕДОВИЩА». скрипт go Це скрипт командної оболонки, який wcd.exe створює під час кожного запуску. Від використовується функцією або альтернативною командою. Літеру диска можна змінити за допомогою параметра -d. З історичних міркувань у системах Unix цей файл типово зберігається у "$HOME/bin". Каталог цього файла можна змінити за допомогою параметра -G. bash для DOS: c:/wcd.go або $HOME/wcd.go командна оболонка Windows: c:\wcdgo.bat або %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go командна оболонка OS/2: c:\wcdgo.cmd або %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go файл відносних шляхів у ієрархії каталогів Текстовий файл з відносними шляхами щодо каталогу *КАТАЛОГ*. Див. параметри +S, -n та +n. DOS: <шлях>\rtdata.wcd Unix: <шлях>/.rtdata.wcd ЗМІННІ СЕРЕДОВИЩА HOME Типово, wcd використовує змінну середовища *HOME* для визначення місця, де зберігатимуться файли програми. Див. також розділ «ФАЙЛИ». Перевизначити каталог можна за допомогою змінної середовища *WCDHOME*. *HOME* також визначає місце, звідки слід розпочинати сканування диска, якщо використано параметр -s. Перевизначити це місце можна за допомогою змінної середовища *WCDSCAN*. У версіях для Unix, Cygwin, Windows PowerShell, WinZsh та MSYS слід встановити значення *HOME* або *WCDHOME*. Для інших версій wcd використання цих змінних є необов’язковим. Якщо змінну *HOME* встановлено у DOS/Windows, wcd розташує свої файли (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) у каталозі *HOME*. Після встановлення змінної поведінка wcd стає еквівалентною до версії wcd для Unix. Типово, wcd скануватиме диск, починаючи з *HOME*. Сканування дисків не виконуватиметься у автоматичному режимі після зміни диска. Про потребу у скануванні слід повідомити явно. Приклад: wcd -S c: -A d: -A e: Після цього встановлення відповідності каталогів буде загальним на усіх сканованих дисках. WCDHOME Для зміни місця зберігання файлів wcd слід використовувати змінну середовища *WCDHOME*. Якщо встановлено одразу *HOME* і *WCDHOME*, замість *HOME* буде використано *WCDHOME*. З версіях wcd до версії 5.1.5 типовий каталог сканування можна змінити також за допомогою змінної *WCDHOME*. У наступних версіях таку поведінку було змінено. Починаючи з версії 5.1.5, *WCDHOME* не змінює типового каталогу сканування. Див. параметр -s. Починаючи з версії 5.1.5, для перевизначення типового каталогу сканування слід використовувати змінну середовища *WCDSCAN*. Приклад для командних оболонок DOS, Windows, OS/2: set WCDHOME=C:\Users\erwin\wcd Приклад для командних оболонок типу POSIX: export WCDHOME="$HOME/.wcd" Приклад для командних оболонок типу Csh: setenv WCDHOME "$HOME/.wcd" WCDSCAN Для перевизначення встановленого за допомогою змінної середовища *HOME* типового каталогу сканування скористайтеся змінною середовища *WCDSCAN*. Щоб визначити декілька каталогів, скористайтеся списком каталогів, відокремлених двокрапкою (Unix). У DOS або Windows записи у списку слід відокремлювати крапкою з комою. Приклади для командних оболонок DOS, Windows, OS/2: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Приклад для командних оболонок типу POSIX: export WCDSCAN="$HOME:/projectdisk/projectX" Приклад для командних оболонок типу Csh: setenv WCDSCAN "$HOME:/projectdisk/projectX" WCDFILTER Фільтри можна вказати за допомогою змінної середовища *WCDFILTER*. Усі каталоги, які не відповідають цим фільтрам, буде проігноровано. Записи у списку слід відокремлювати типовим роздільником каталогів у шляхах командної оболонки. Це щось подібне до визначення змінної середовища *PATH*. Те, чи буде враховано регістр символів, визначається параметрами операційної системи. Приклад для командних оболонок DOS, Windows, OS/2: set WCDFILTER=projects;doc Приклад для командних оболонок типу POSIX: export WCDFILTER="projects:doc" Приклад для командних оболонок типу Csh: setenv WCDFILTER "projects:doc" WCDBAN Шляхи, вказані за допомогою змінної середовища *WCDBAN*, вважатимуться заблокованими для wcd. Див. також параметр -b. Записи у списку шляхів слід відокремлювати типовим роздільником змінної *PATH* командної оболонки. WCDEXCLUDE Шляхи, вказані за допомогою змінної середовища *WCDEXCLUDE*, вважатимуться виключеними для wcd. Див. також параметри -x та -xf. Записи у списку шляхів слід відокремлювати типовим роздільником змінної *PATH* командної оболонки. Приклад для командних оболонок DOS, Windows, OS/2: set WCDEXCLUDE=*/windows;*/temp;*CVS Приклад для командних оболонок типу POSIX: export WCDEXCLUDE="/dev:/tmp:*CVS" Приклад для командних оболонок типу Csh: setenv WCDEXCLUDE "/dev:/tmp:*CVS" WCDUSERSHOME Встановлює основний каталог для домашніх каталогів користувачів. У DOS або Windows типовим значенням змінної є "\\users". У Unix або Cygwin типовим значенням є "/home". Ця змінна середовища використовується для сканування файлів даних ієрархії каталогів інших користувачів. Див. також параметри -u та +u. У докладному режимі wcd виводитиме усі фільтри, блокування та виключення. Див. параметр -v. WCDSTACKFILE Wcd надає перевагу значенню змінної *WCDSTACKFILE* над типовою назвою файла стосу (див. розділ «ФАЙЛИ»). За допомогою цієї змінної можна визначити окремий стос використаних каталогів для декількох різних командних оболонок (або використаних емуляторів термінала). Використання файла з унікальною назвою на основі поточного часу у форматі РРРММДД-ГГХХСС для кожної відкритої інтерактивної командної оболонки: export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Для окремого стосу на кожний екземпляр xterm(1) скористайтеся змінної середовища *WINDOWID* для xterm: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Для GNU screen(1), використання окремого стосу на екземпляр screen: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW TERMINFO Якщо визначено змінну середовища *TERMINFO*, wcd з інтерфейсом на основі ncurses шукатиме локальні визначення термінала до виконання пошуку у стандартному місці. Це корисно, якщо визначення термінала зберігаються у нестандартному місці. Часто використовуються стандартні місця "/usr/lib/terminfo" та "/usr/share/terminfo". PDC_RESTORE_SCREEN Wcd з інтерфейсом на основі PDCurses розпізнає змінну середовища *PDC_RESTORE_SCREEN*. Якщо встановлено цю змінну середовища, PDCurses скопіює вміст екрана на час запуску wcd; після завершення роботи wcd вміст екрана буде відновлено. Приклад для командної оболонки Windows: set PDC_RESTORE_SCREEN=1 У Windows передбачено можливість зберігання лише буфера незначного обсягу. Тому повне відновлення не завжди можливе. Якщо вміст буфера є доволі значним, до консолі після виходу з wcd буде виведено випадкові символи. SHELL Для виведення 8-бітових символів у скриптах переходу для командних оболонок типу POSIX та C слід вказати "#!$SHELL" у першому рядку. Якщо цього не зробити, у деяких оболонках скрипт переходу вважатиметься бінарним файлом і не використовуватиметься. У bash Cygwin у середовищі має бути визначено змінну *SHELL* за допомогою команди "export", інакше wcd не зможе прочитати змінну. BASH Wcd для bash DOS використовується $BASH замість $SHELL, оскільки $SHELL вказує на командну оболонку DOS. Можливо, слід визначити змінну $BASH за допомогою команди "export", інакше wcd не зможе прочитати змінну. ТАКОЖ ПЕРЕГЛЯНЬТЕ sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), АВТОРИ Wcd створено Erwin Waterlander Домашня сторінка проекту: SourceForge: Freecode: Форматування сторінки підручника було виконано Jari Aalto . Початкову версію NCD було створено Brad Kingsbury для пакунка "Norton Utilities" Пітера Нортона близько 1987 року. Див. також wcd-5.2.5/src/man/uk/man1/wcd.htm0000664000175000017500000101306512345660661016641 0ustar waterlanwaterlan wcd 5.2.5 - Wherever Change Directory

НАЗВА

wcd - довільна зміна каталогу (Wherever Change Directory)

засіб для зміни каталогу (chdir) у DOS та Unix

КОРОТКИЙ ОПИС

    wcd [параметри] [каталог]

ОПИС

Огляд

Wcd — програма, що керується з командного рядка і надає змогу швидко змінювати каталоги. Вона економить час на введенні даних з клавіатури. Достатньо ввести лише частину назву каталогу і wcd перейде до цього каталогу. У wcd передбачено можливості пришвидшення вибору потрібного варіанта з декількох, створення альтернативних назв каталогів та блокування каталогів. Крім того, у wcd ви зможете скористатися повноекранною інтерактивною навігацією деревом каталогів з швидким пошуком.

Ідеї wcd часткового запозичено з Norton Change Directory (NCD). Першу версію NCD у The Norton Utilities, Release 4 для DOS було випущено 1987 року компанією Пітера Нортона (Peter Norton).

Wcd було портовано на різні командні оболонки: command.com для DOS, cmd.exe та PowerShell для Windows, cmd.exe для OS/2 і командні оболонки Unix, зокрема Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh) та C (csh), а також інші оболонки, що працюють у будь-якій операційній системі.

У Wcd передбачено підтримку 8-бітових наборів символів на усіх системах та додаткову підтримку Unicode. Докладніше про це у розділі «ЛОКАЛІЗАЦІЯ».

Щоб дізнатися більше про налаштовування wcd для особистого користування, зверніться до розділу «ВСТАНОВЛЕННЯ».

Основні прийоми використання

Типово (якщо не використано символів-замінників), wcd шукає каталог, назва якого починається з введених вами символів.

Наприклад, вказана нижче команда змінить каталог на каталог поточного користувача /home/user/Desktop:

    wcd Desk

Якщо буде виявлено декілька відповідників, wcd покаже користувачеві список цих відповідників. Після цього користувач зможе вибрати потрібний варіант декількома натисканнями клавіш (найчастіше, достатньо одного натискання).

Шаблони-замінники

У wcd передбачено підтримку таких символів-замінників:

    *       відповідає будь-якій послідовності символів (нульової або більшої довжини)
    ?       відповідає довільному символу
    [НАБІР] відповідає довільному символу з вказаного набору,
    [!НАБІР] або [^НАБІР] відповідає будь-якому символу, що не належить до вказаного набору.

Набір символів може складатися з окремих символів або діапазонів символів. Діапазон слід вказувати так: символ дефіс символ, наприклад, 0-9 або A-Z. Мінімальним набором символів у конструкції [..] є [0-9a-zA-Z_]. Можна використовувати символи з розширеного набору (тобто 8-бітові символи), якщо у системі передбачено підтримку цих символів. Щоб придушити використання символів з набору []*?!^-\ для побудови синтаксичних лексем у межах конструкцій [..] тобто їхнього буквального використання, додавайте перед цими символами символ зворотної риски (\).

Використання символів-замінників надає доступ до досить потужних можливостей з пошуку. Наприклад, за допомогою вказаного нижче виразу можна знайти будь-який каталог, назва якого завершується на «top»:

    wcd *top

Знайти каталоги, у назві яких будь-де міститься частина «top»:

    wcd *top*

Знайти будь-який каталог, назва якого починається з «a», «b» або «c»:

    wcd [a-c]*

Крім того, можна вказати частину шляху до каталогу. У наведеному нижче прикладі wcd шукатиме каталог, назва якого починається з «Desk», шлях якого відповідає шаблону *me/Desk*.

    wcd me/Desk

Можна використовувати будь-який вираз, що містить риски та символи замінники. Приклад:

    wcd src*/*1?/a*2

Інші варіанти використання

Якщо у виразі не використано символів-замінників, а wcd знаходить повний відповідник з вказаним шляхом і назвою, wcd типово проігнорує усі відповідники, які могло б бути знайдено з використанням символів-замінників. Типову поведінку програми можна змінити за допомогою параметра -w.

Інтерактивний навігатор ієрархією каталогів можна запустити за допомогою параметра -g.

    wcd -g

Wcd створює файл даних ієрархії (treedata) у каталогах, звідки виконується пошук. У системах Unix та Windows wcd додає символічні посилання на файл treedata під час сканування диска, але не переходить за створеними посиланнями. Перехід за посиланнями може призвести до зациклювання wcd у ієрархії каталогів або сканування великих масивів каталогів у мережі.

Крім того, wcd може переходити до каталогів, яких немає у файлі treedata. Приклад:

    wcd ..

Якщо wcd буде виявлено відповідник критерію пошуку, але програма не зможе перейти до цього каталогу, буде виконано спробу вилучення каталогу з типового файла treedata, але не з додаткового файла treedata. Див. також параметр -k.

Wcd зберігає на диску стос переходів за каталогами. Типовим обсягом стосу є 10. Перехід стосом здійснюється циклічно. Див. параметри -z, -, + та =.

У середовищах з декількома користувачами для переходу до каталогів, що належать іншим користувачам, можна скористатися параметром -u.

У операційних системах DOS і Windows можна використовувати як роздільник між каталогами як символ «/», так і символ «\».

У системах DOS та Windows передбачено можливість переходу до каталогу на іншому диску. Для цього достатньо перед назвою каталогу на диску вказати назву диска.

    wcd d:games

Шляхи UNC Windows

У версіях для Windows (для командного рядка, PowerShell, MSYS, zsh, cygwin) передбачено підтримку шляхів UNC LAN Windows для SMB без літер дисків, наприклад \\назва_сервера\назва_ресурсу. У wcd для командного рядка Windows для автоматичного прив’язування шляху UNC до літери диска використовується команда «pushd». У In Windows PowerShell, MSYS, zsh та Cygwin передбачено повноцінну підтримку шляхів UNC. Шлях UNC може бути поточним робочим каталогом.

Інтерфейси

У wcd передбачено три різні інтерфейси вибору потрібного варіанта зі списку відповідників. Інтерфейс можна вибрати під час збирання програми.

Першим інтерфейсом є звичайні інтерфейси введення та виведення (stdin/stdout). До термінала буде виведено нумерований список варіантів. Користувач зможе вибрати відповідний варіант введенням його номера з наступним натисканням клавіші <Enter>. У цьому інтерфейсі не передбачено можливостей гортання для довгих списків. Для цього доведеться користуватися можливостями з гортання термінала або консолі. Код цього інтерфейсу доволі малий і портований.

Другий інтерфейс побудовано на основі бібліотеки conio. У ньому передбачено можливості гортання. Користувачу буде показано список з літерним позначенням пунктів. Для вибору пункту у списку достатньо натиснути клавішу з відповідною літерою. Цей інтерфейс працює швидше, оскільки треба натискати менше клавіш. Після вибору варіанта, якщо це можливо, зображення на екрані буде відновлено до стану перед показом варіантів. Якщо користувач надає перевагу цифровому позначенню пунктів, можна скористатися параметром -N.

Третій інтерфейс побудовано на основі бібліотеки curses. Він подібний до інтерфейсу на основі conio. Версія wcd на основі curses має додатковий «графічний» інтерфейс. За його допомогою користувач зможе вибрати каталог у повноекранному інтерактивному навігаторі ієрархією каталогів. Передбачено навігацію та пошук у стилі vim(1). Задіяти цей інтерфейс можна за допомогою параметра -g.

За допомогою параметра командного рядка -o програму можна завжди перевести до стандартного інтерфейсу stdin/stdout.

ПАРАМЕТРИ

-a

Додати поточний шлях до типового файла ієрархії.

За допомогою цього параметра можна швидко додати поточний шлях до типового файла ієрархії каталогів. Повторне сканування усього диска у певних випадках може бути досить тривалою справою.

-aa

Додати поточний і усі батьківські шляхи до типового файла ієрархії каталогів (treedata).

-A ШЛЯХ

Сканувати ієрархію каталогів, починаючи з каталогу ШЛЯХ, і дописати усі виявлені каталоги до файла ієрархії каталогів (treedata). Приклади:

    wcd -A .
    wcd -A /home -A /etc
    wcd -A d: -A e: -A \\server\share

У Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: wcd -A \\назва_сервера.

Див. також параметри -S, -s та -E.

-b

Заблокувати поточний шлях.

Wcd додає поточний шлях до файла блокування. Це означає, що wcd ігноруватиме усі відповідники з поточного каталогу і усіх його підкаталогів.

Файл блокувань (ban) можна редагувати у текстовому редакторі. Передбачено підтримку символів-замінників. Відповідність назв встановлюється за абсолютними шляхами.

Заблоковані шляхи не виключаються зі шляхів сканування диска. Щоб виключити заблоковані шляхи, скористайтеся параметром -xf.

-c, --direct-cd

Безпосередній режим CD. Типово, wcd працює так:

    1. Спробувати знайти відповідник у файлах ієрархії (treedata).
    2. Якщо нічого не знайдено, спробувати відкрити каталог, назву якого було введено.

У безпосередньому режимі CD wcd виконує обробку запиту у зворотному порядку.

    1. Cпробувати відкрити каталог, назву якого було введено.
    2. Якщо не вдалося, знайти відповідник у файлах ієрархії (treedata).
-d ДИСК

Встановити диск для файла стосу і переходу (лише для DOS).

Типово, файл стосу та скрипт переходу зберігаються на диску C:, якщо не встановлено значення змінної середовища HOME. Цим параметром можна скористатися, якщо диск C: захищено від запису. Цей параметр слід вказувати перед параметрами роботи зі стосом -, + та =.

-e

Додати поточний шлях до додаткового файла ієрархії.

За допомогою цього параметр можна швидко додати поточний шлях до додаткового файла ієрархії.

-ee

Додати поточний і усі батьківські шляхи до додаткового файла ієрархії каталогів (treedata).

-E ШЛЯХ

Сканувати ієрархію каталогів, починаючи з каталогу ШЛЯХ, і дописати усі виявлені каталоги до додаткового файла ієрархії каталогів (treedata). Див. також параметри -A та -S.

-f ФАЙЛ

Прочитати файл даних ієрархії каталогів ФАЙЛ. Не виконувати читання з типового файла ієрархії каталогів.

+f ФАЙЛ

Прочитати дані з файла ієрархії каталогів ФАЙЛ на додачу до даних з типового файла даних ієрархії каталогів.

-g

Графічний інтерфейс (лише у версії з інтерфейсом на основі curses).

Wcd запускає текстовий «графічний» інтерфейс на основі curses. Користувач може вибрати каталог за допомогою повноекранного інтерактивного навігатора ієрархією каталогів. Передбачено навігацію і пошук у стилі vim(1).

Якщо рядок пошуку не вказано, wcd показує усю ієрархію каталогів з типового та додаткового файлів даних ієрархії.

Якщо рядок пошуку вказано, список відповідників буде показано як ієрархію каталогів.

Типове компонування ієрархії подібне до компонування каталогів у початковій версії NCD у DOS. Різниця у компонуванні полягає у тому, що у NCD усі каталоги одного рівня було вирівняно однаковим відступом у всьому дереві. Це було можливим у NCD, оскільки максимальна довжина назви каталогу у DOS дорівнювала 12 (8.3) символам. У сучасних операційних системах назви каталогів можуть бути дуже довгими і різниця у довжинах може бути дуже великою. Тому теки однакового рівня вкладеності не вирівняно за однією лінією за усією ієрархією каталогів у wcd, а лише за гілками ієрархії. Отже, під час руху вгору-вниз ієрархією каталогів користувач спостерігатиме за зсувами списку у різні боки.

Навігаційна поведінка у wcd абсолютно збігається з початковою версією NCD. Наприклад, якщо ви натиснете клавішу зі стрілкою вниз, ви перейдете до наступного каталогу з тим самим рівнем вкладеності, переходячи гілками ієрархії. Це пришвидшує навігацію ієрархією каталогів.

Поведінку засобу навігації можна змінити за допомогою параметрів -Ta, -TC та -Tc.

-gd

Створити дамп файлів ієрархії каталогів (treedata) і вивести дані до стандартного виведення (stdout).

-G ШЛЯХ

Записати скрипт переходу у каталозі ШЛЯХ. Наприклад, у Unix, wcd -G ШЛЯХ призведе до запису скрипту переходу до ШЛЯХ/wcd.go.

-GN, --no-go-script

Не створювати скрипт переходу. Цим параметром можна скористатися у поєднанні з параметром -j, якщо з якихось причин створення wcd скрипту переходу є небажаним.

-h, --help

Показати довідку щодо використання і завершити роботу.

-i, --ignore-case

Ігнорувати регістр символів. У версіях wcd для DOS та Windows така поведінка є типовою. У версіях для Unix/Cygwin регістр типово враховується.

+i, --no-ignore-case

Брати до уваги регістр символів. Див. також параметр -i.

-I, --ignore-diacritics

Ігнорувати діакритичні знаки для писемностей на основі латиниці. Програма вважатиме літери з діакритичними знаками еквівалентними до їхніх відповідників без діакритичних знаків. Передбачено підтримку таких кодувань латиниці: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2 та Unicode Latin-1, Latin Extended-A, а також Latin Extended-B. Див. також https://uk.wikipedia.org/wiki/Діакритичний_знак

+I, --no-ignore-diacritics

Брати до уваги діакритичні позначки (типово). Див. також параметр -I.

-j, --just-go

Режим простого переходу.

У цьому режимі wcd не показуватиме списку, якщо для вказаної назви буде знайдено декілька відповідників. Wcd просто перейде до першого ж відповідника. Якщо wcd буде викликано знову з тими самими аргументами, програма змінить каталог на наступний пункт у списку тощо.

Wcd виведе назву каталогу, що якого переходитиме до стандартного виведення (stdout). Отже можна скористатися декількома способами встановлення. Можна створити таку функцію для сумісної з POSIX командної оболонки:

    wcd ()
    {
        cd "$($HOME/bin/wcd.exe -j $@)"
    }

Якщо ви користуєтеся застарілою командною оболонкою, у якій не передбачено підтримки заміни команди «$()», вам доведеться скористатися підставлянням команди у застарілому стилі з одинарними відкривними лапками.

    wcd ()
    {
        cd "`$HOME/bin/wcd.exe -j $@`"
    }

У системах Windows, якщо використано командну оболонку 4NT, можна створити такі альтернативні назви:

    alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`

Подібний метод усуває потребу у скрипті переходу, отже, параметр -j можна використати у поєднанні з параметром -GN.

-k, --keep-paths

Зберігати шляхи.

Зберігати шляхи до файла даних ієрархії каталогів, якщо wcd не може перейти до відповідного каталогу. Типовою поведінкою програми є вилучення шляхів з файла даних ієрархії, якщо wcd не може перейти до відповідного каталогу. Якщо буде використано цей параметр, програма не вилучатиме відповідних записів каталогів.

-K, --color

Використовувати кольори у графічному режимі.

-l АЛЬТЕРНАТИВНА НАЗВА

Надати поточному шляху альтернативну назву АЛЬТЕРНАТИВНА НАЗВА. Wcd запише поточний шлях з його альтернативною назвою до файла альтернативних назв. Альтернативні назви з різним регістром символів вважаються різними.

-m КАТАЛОГ

Створити каталог і додати його до файла даних ієрархії.

-L, --license

Вивести дані щодо умов ліцензування.

-M КАТАЛОГ

Створити каталог і додати його до додаткового файла даних ієрархії.

-n ШЛЯХ

Прочитати відносний файл даних ієрархії каталогів з каталогу ШЛЯХ.

Не виконувати читання з типового файла даних ієрархії каталогів. Файл даних відносних шляхів до каталогів має бути вже створено за допомогою параметра wcd +S. Крім того, ШЛЯХ може безпосередньо вказувати на файл.

Приклад. Припустімо, що іншу систему змонтовано до точки монтування /mnt/network:

    wcd -n /mnt/network src

Wcd відкриває файл даних відносних шляхів до каталогів у /mnt/network/. У цьому файлі містяться шляхи відносно відповідного каталогу.

+n ШЛЯХ

Прочитати дані з файла даних відносної ієрархії каталогів на додачу до даних з типового файла даних ієрархії каталогів. Див. параметр -n.

-N, --numbers

Використовувати числа замість літер.

Wcd з інтерфейсом на основі conio або curses (див. розділ «ІНТЕРФЕЙС») типово показує список варіантів з пунктами, позначеними літерами. Якщо використано параметр -N, пункти у списку буде пронумеровано. Незалежно дві параметра -N, користувач може натиснути клавішу з літерою або номером для вибору пункту зі списку відповідників.

-o

Використовувати інтерфейс stdin/stdout.

Якщо з певних причин інтерфейсом на основі conio або curses у wcd не можна або не бажано користуватися, користувач може перемкнути програму на інтерфейс stdin/stdout за допомогою параметра -o.

-od, --to-stdout

Вивести усі відповідники до stdout.

-q, --quiet

Менше повідомлень. Останній відповідник не виводиться до консолі.

-r КАТАЛОГ

Вилучити каталог і відповідний запис з файла даних ієрархії каталогів.

Якщо каталог є порожнім, wcd вилучить його і спробує вилучити відповідний запис з файла даних ієрархії каталогів.

-rmtree КАТАЛОГ

Рекурсивно вилучити каталог і відповідні записи з файла даних ієрархії каталогів.

Wcd вилучить каталог та усі його підкаталоги та файли і витре записи відповідних каталогів з файла даних ієрархії каталогів.

-s

Виконати сканування або повторне сканування диска, починаючи з каталогу $HOME. Якщо значення змінної HOME не визначено, сканування диска виконуватиметься, починаючи з кореневого каталогу, /.

Наявний типовий файл даних ієрархії каталогів буде перезаписано.

Типовий каталог сканування можна перевизначити за допомогою змінної середовища WCDSCAN. Див. розділ «ЗМІННІ СЕРЕДОВИЩА».

-S ШЛЯХ

Виконати сканування ієрархії каталогів, починаючи з каталогу ШЛЯХ, і перезаписати типовий файл даних ієрархії каталогів. Див. також параметри -A, -s та -E. Наприклад, з параметром -A ви можете створити типовий файл даних ієрархії каталогів за вашим вибором. Приклади:

Unix:

    wcd -S /
    wcd -S /home -A /etc -A /usr

DOS/Windows:

    wcd -S c:/
    wcd -S c: -A d: -A \\server\share

У версіях для Windows можна виконати сканування усіх каталогів спільного використання на сервері локальної мережі Windows за допомогою такої команди: wcd -S \\назва_сервера.

+S ШЛЯХ

Сканувати диск, починаючи з каталогу ШЛЯХ, і замінити відносні шляхи у файлі даних відносної ієрархії каталогів. Цей файл використовується, якщо додано параметри -n і +n. Приклад: wcd -n ШЛЯХ джерело.

-t

Не вилучати із записів рядок тимчасового каталогу монтування, /tmp_mnt (лише у Unix)

Типово, wcd вилучає /tmp_mnt/ з відповідників. Каталог /tmp_mnt використовується засобом автоматичного монтування. Таку обробку можна вимкнути за допомогою параметра -t.

-T, --ascii-tree

Малювати ієрархію за допомогою символів ASCII. Скористайтеся цим параметром, якщо символи малювання ліній у терміналі буде показано з помилками.

-Ta, --alt-tree-nav

Альтернативний режим навігації у форматі графічної ієрархії каталогів.

У типовому режимі компонування ієрархії у стилі NCD параметр -Ta вимикає перехід до непов’язаних каталогів.

У режимі компактної ієрархії альтернативний режим робить навігацію подібною до навігації у програмах для керування файлами з графічним інтерфейсом, зокрема Провіднику Windows або KDE Konqueror у Linux. Натискання клавіш зі стрілками вгору і вниз пересуває позначення теки на один рядок вгору або вниз. Першим натисканням клавіші зі стрілкою ліворуч можна згорнути підтеки, наступне натискання — перехід ліворуч.

Перемкнутися між режимами типової і альтернативної навігації без перезапуску програми можна за допомогою натискання комбінації клавіш Shift-A.

Якщо увімкнено режим альтернативної навігації, у нижньому правому куті екрана ви побачите літеру «A».

-TC, --center-tree

Центрований режим перегляду у графічній ієрархії. Позначений каталог залишається посередині екрана. Центрований режим можна увімкнути або вимкнути за допомогою натискання клавіші «t» у режимі графічної ієрархії.

Стандартний нецентрований режим, який мінімізує рух самої ієрархії на екрані, аналогічний до оригінального режиму NCD.

-Tc, --compact-tree

Типово, «графічну» ієрархію буде намальовано у той самий спосіб, як це робила початкова версія NCD для DOS. У DOS шлях до каталогу може складатися не більше ніж з 66 символів. Використання сучасної структури каталогів, без обмежень на довжину шляхів, може призвести до значного перевищення ширини ієрархії. Щоб подолати ці труднощі, wcd може малювати ієрархію каталогів у компактному форматі, подібному до формату більшості програм для керування файлами з графічним інтерфейсом, по одній теці на рядок. Увімкнути відповідний режим можна за допомогою параметра -Tc або перемикання натисканням клавіші «m».

-Td, --cjk-width

У застарілих шрифтах для показу ієрогліфів східноазійських мов (китайської, японської та корейської) частина символів ієрогліфів та символів малювання ліній займають дві позиції замість звичайної для Unicode ширини цих символів у одну позицію. Прикладами таких шрифтів є растровий шрифт Chinese CP936 для Windows та шрифт Simsun. За допомогою цього параметра можна забезпечити правильний показ графічної ієрархії каталогів з використанням застарілих шрифтів з ієрогліфами.

Якщо увімкнено режим ієрогліфів, у нижньому правому куті екрана ви побачите літеру «C».

-u КОРИСТУВАЧ

Сканувати файл даних ієрархії іншого користувача, КОРИСТУВАЧ, не сканувати типовий файл ієрархії поточного користувача. Див. також розділ ЗМІННІ СЕРЕДОВИЩА, а саме запис щодо змінної WCDUSERSHOME.

У Unix/Cygwin базовим каталогом для домашніх каталогів користувачів вважається /home. Wcd шукатиме файли /home/USER/.treedata.wcd та /home/USER/.wcd/.treedata.wcd, саме у цьому порядку, і читатиме дані з першого ж із цих файлів, який буде знайдено і який виявиться придатним до читання. У DOS/Windows базовим каталогом для домашніх каталогів користувачів вважається \\users, отже, wcd намагається прочитати дані з файлів \\users\USER\treedata.wcd та \\users\USER\.wcd\treedata.wcd.

+u КОРИСТУВАЧ

Прочитати дані з типового файла ієрархії каталогів користувача КОРИСТУВАЧ на додачу до даних з типового файла даних ієрархії каталогів вашого користувача.

-v, --verbose

Показувати докладні повідомлення. З цим параметром wcd виводитиме усі фільтри, блокування та виключення.

-V, --version

Показати дані щодо версії і завершити роботу.

-w, --wild-match-only

Встановлення відповідність для неточних відповідників, лише якщо використано символи-замінники.

-x ШЛЯХ

Виключити ШЛЯХ зі сканування.

Якщо буде використано цей параметр, wcd виключить шлях з назвою ШЛЯХ та усі його підкаталоги з переліку шляхів для сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Параметр -x у команді можна використовувати декілька разів.

    wcd -x <шлях1> -x <шлях2> -s

Параметр -x слід вказувати до усіх параметрів сканування (-s, -S, +S, -A, -E).

У системах DOS/Windows слід вказати літеру диска, якщо не визначено змінної середовища HOME або WCDHOME. Приклад:

    wcd -x c:/temp -S c:

У інших випадках літеру диска не слід вказувати.

    wcd -x /temp -s
-xf ФАЙЛ

Виключити зі сканування усі шляхи, вказані у файлі ФАЙЛ.

Якщо використано цей параметр, wcd виключить усі шляхи зі списку у файлі ФАЙЛ та усі підкаталоги цих шляхів зі сканування диска. Передбачено підтримку символів-замінників та встановлення відповідності за абсолютними шляхами. Шляхи має бути вказано по одному на рядок. Слід пам’ятати, що wcd ігноруватиме початкові та завершальні пробіли у рядку, оскільки такі пробіли є некоректними символами у назвах каталогів. Параметр -xf можна вказувати декілька разів. Якщо ви хочете виключити усі заблоковані шляхи зі сканування, можна зробити так (приклад для wcd у unix):

    wcd -xf ~/.ban.wcd -s

Передбачено підтримку символів-замінників. Наприклад, щоб виключити усі каталоги Subversion з файлами, призначеними для адміністрування копії сховища, додайте рядок */.svn.

Параметр -xf слід вказувати до усіх параметрів сканування (-s, -S, +S, -A, -E).

-y, --assume-yes

Вважати відповіддю на всі питання «так».

Wcd не проситиме користувача підтвердити дію відповіддю «так» або «ні», відповіддю завжди вважається «так». Цей параметр можна поєднати з параметром -rmtree. Параметр слід вказувати до параметрів, використання яких може призвести до появи питань, на які має відповідати користувач.

-z ЧИСЛО

Встановити для максимального розміру стосу значення ЧИСЛО.

Типовим розміром стосу є 10. Дії зі стосом можна вимкнути встановленням значення 0. Цей параметр слід використовувати перед будь-якими іншими параметрами, що призводять до дій зі стосом (-,+,=). Якщо цього не зробити, стосу буде повернуто типовий розмір 10.

Правильна команда:

    wcd -z 50 -

Новим розміром стосу буде 50, wcd перейде на один крок назад у стосі. Помилковою була б така команда:

    wcd - -z 50

Wcd повернеться на один каталог назад у стосі, розміру ж стосу буде повернуто типове значення 10. Параметр -z 50 буде проігноровано.

Додайте цей параметр як перший параметр до альтернативної команди wcd або функції, де ця програма використовується. Приклад для сумісних з POSIX командних оболонок:

    wcd ()
    {
        wcd.exe -z 50 "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }
-[ЧИСЛО]

Повернутися на ЧИСЛО пунктів назад у стосі. Типовим є значення у один пункт.

Повернутися на один каталог назад. Команда wcd - поверне вас на один каталог назад. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: wcd -3. Перехід стосом каталогів є циклічним.

+[ЧИСЛО]

Перейти вперед на ЧИСЛО пунктів у стосі. Типовим є значення у один пункт.

Перейти вперед на один каталог. Команда wcd + призведе до переходу на один каталог вперед. Щоб повернутися на більшу кількість кроків, додайте до неї кількість кроків. Приклад: wcd +2. Перехід стосом каталогів є циклічним.

=

Показати стос.

Скористайтеся цим параметром, якщо ви призабули скільки пунктів залишилося попереду і позаду у стосі. У відповідь на команду з цим параметром програма виведе вміст стосу для наступного вибору номера пункту. Поточне місце у стосі буде позначено зірочкою, *.

ВСТАНОВЛЕННЯ

Поточний робочий каталог командної оболонки Unix можна змінити лише за допомогою вбудованої команди cd(1). Тому програму завжди викликають функцією або за альтернативною назвою. Ця функція або альтернативна назва зберігається у скрипті командної оболонки (скрипті переходу), який створюється програмою wcd. Wcd може працювати лише після визначення функції або альтернативної назви.

Іншим варіантом внесення змін до поведінки встановленої вами програми є визначення значень змінних середовища HOME та WCDHOME. Див. розділ ЗМІННІ СЕРЕДОВИЩА.

Встановлення для командних оболонок типу POSIX

Для командних оболонок POSIX (ksh, bash, zsh, etc.) у Unix, Linux, Cygwin або типовій оболонці MSYS додайте таку функцію до файла запуску оболонки (наприклад, у Bash використовується файл $HOME/.bashrc):

    wcd ()
    {
        <ШЛЯХ>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }

Замініть ШЛЯХ на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку.

Розташування скрипту переходу, wcd.go, є різним для різних оболонок.

Wcd для bash у DJGPP DOS потрібна інша функція. Скрипт переходу не буде записано до каталогу bin і, якщо одночасно визначено WCDHOME та HOME, скрипт переходу буде записано до c:/.

    wcd ()
    {
        <ШЛЯХ>/wcd.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

Версія wcd для WinZsh теж має свої особливості. Немає каталогу bin.

    wcd ()
    {
        <ШЛЯХ>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

Докладніший опис можна знайти у розділі «ФАЙЛИ».

Встановлення для C-подібних командних оболонок (csh, tcsh)

Додайте такі альтернативні назви до файла запуску оболонки, $HOME/.cshrc або $HOME/.tcshrc :

    if ( ${?WCDHOME} ) then
        alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "<ШЛЯХ>/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

Замініть ШЛЯХ на адресу каталогу, до якого встановлено виконуваний файл wcd. Перезавантажте файли ініціалізації оболонки або запустіть нову оболонку.

Версія для командного рядка Windows

Розпакуйте архів zip і додайте каталог bin до вашої змінної середовища PATH.

Програма для Windows, що працює у вікні командної оболонки Windows (Command Prompt) не може змінити поточного каталогу, але це може зробити скрипт .bat. Пакетний скрипт wcd.ba» запускає програму wcd, яка створює новий пакетний скрипт, wcdgo.bat. Після цього wcd.bat запускає скрипт wcdgo.bat, який здійснює зміну каталогу.

Windows VISTA та новіші версії

У командній оболонці Windows VISTA та новіших версій користувачі мають обмежений доступ до каталогів. Що отримати доступ до усіх каталогів, вам знадобляться права доступу адміністратора. Запустити командну оболонку з правами адміністратора можна так: наведіть вказівник миші на піктограму командної оболонки, клацніть правою кнопкою миші і виберіть у контекстному меню пункт Запуск від імені адміністратора.

Версія для Windows PowerShell

Додайте вказану нижче функцію до вашого профілю користувача PowerShell. Дані щодо місця зберігання цього профілю зберігаються у змінній $profile. Слід також визначити змінну середовища HOME або WCDHOME.

    function wcd
    {
        <ШЛЯХ>\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

Замініть ШЛЯХ на адресу каталогу, до якого встановлено виконуваний файл wcd. Запустіть новий сеанс роботи у PowerShell. У Wcd для PowerShell передбачено роботу лише з файловими системами. Забезпечення роботи з іншими джерелами файлових даних не передбачено.

Версія для командного рядка OS/2

У командній оболонці OS/2 (cmd.exe) програма OS/2 не може змінювати робочого каталогу. Ось чому wcd створює командний скрипт (wcdgo.cmd), який має бути виконано у поточній оболонці. Скрипт wcd.cmd спочатку запускає програму wcdos2.exe, яка створює скрипт wcdgo.cmd. Після цього wcd.cmd запускає скрипт wcdgo.cmd.

ЛОКАЛІЗАЦІЯ

LANG

Основна мова визначається за допомогою змінної середовища LANG. Значення змінної LANG складається з декількох частин. Перша частина записується малими літерами і визначає код мови. Друга частина є необов’язковою, визначає код країни і записується прописними літерами, відокремлюється від першої частини символом підкреслювання. Передбачено також необов’язкову третю частину: кодування. Ця частина відокремлюється від другої частини крапкою. Ось декілька прикладів для командних оболонок стандартного типу POSIX:

    export LANG=uk               українська
    export LANG=uk_UA            українська, Україна
    export LANG=ru_UA            російська, Україна
    export LANG=es_ES            іспанська, Іспанія
    export LANG=es_MX            іспанська, Мексика
    export LANG=en_USiso88591    англійська, США, кодування Latin-1

Повний список мов та кодів краї наведено у підручнику з gettext(1): http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes. У системах Unix для отримання даних щодо локалі можна скористатися командою locale(1).

LANGUAGE

За допомогою змінної середовища LANGUAGE ви можете вказати список пріоритетності мов. Записи у списку слід відокремлювати двокрапками. Програма wcd надає перевагу LANGUAGE над LANG. Наприклад, перша голландська, далі німецька: LANGUAGE=nl:de. Спочатку вам слід увімкнути локалізацію, встановивши для змінної LANG (або LC_ALL) значення, відмінне від C. Далі ви зможете використовувати список пріоритетності мов за допомогою змінної LANGUAGE. Додаткові відомості можна знайти у підручнику з gettext: http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

Якщо вами буде вибрано мову, перекладу якою немає, буде показано стандартні повідомлення англійською мовою.

WCDLOCALEDIR

За допомогою визначення змінної середовища WCDLOCALEDIR можна перевизначити значення LOCALEDIR, вказане під час збирання та встановлення програми. Змінна LOCALEDIR використовується wcd з підтримкою перекладів для пошуку файлів перекладів. Типовим значенням для системи GNU є /usr/local/share/locale. Дізнатися про поточне значення змінної LOCALEDIR можна за допомогою команди wcd -V.

Якщо ви встановили wcd до каталогу, відмінного від типового, вам варто встановити значення змінної середовища WCDLOCALEDIR так, щоб вона вказувала на каталог з файлами перекладів.

Приклад для cmd у Windows:

    set WCDLOCALEDIR=c:/my_prefix/share/locale

Приклад для оболонки POSIX:

    export WCDLOCALEDIR=$HOME/share/locale
LC_COLLATE

Якщо wcd вдасться знайти декілька відповідників вказаного користувачем каталогу, програма покаже упорядкований список варіантів. Спосіб упорядковування залежить від параметрів локалі. Якщо у середовищі встановлено значення змінної LANG, відповідники буде упорядковано відповідно до порядку, який використовується у словниках або телефонних книгах відповідною мовою. Наприклад, буде проігноровано крапки і дефіси, літери з акцентами вважатимуться еквівалентними до літер без акцентів, ігноруватимуться відмінності у написанні великими чи малими літерами.

Під час визначення параметрів упорядковування перевага надається змінній середовища LC_COLLATE, а не змінній LANG. Якщо ви вкажете для LC_COLLATE значення C або POSIX, упорядковування за параметрами локалі буде вимкнено. Наприклад, якщо ви хочете скористатися українською мовою інтерфейсу, але не хочете використовувати українські параметри упорядковування, ви можете зробити так:

    export LANG=uk_UA
    export LC_COLLATE=C
LC_CTYPE

Під час визначення параметрів кодування у wcd надається перевага змінній LC_CTYPE, а не LANG. Наприклад, щоб встановити кодування символів UTF-8, слід скористатися такою командою:

    export LC_CTYPE=en_US.UTF-8
LC_ALL

Усі змінні середовища, пов’язані з локаллю, назви яких починаються з LC_, можна перевизначити за допомогою змінної середовища LC_ALL. Wcd надає перевагу значенню LC_ALL над значеннями LC_COLLATE та LC_CTYPE.

ТАБЛИЦІ КОДУВАНЬ WINDOWS

Існує дві групи кодових сторінок: кодові сторінки DOS (OEM) та кодові сторінки Windows (ANSI). Типовим кодуванням для Windows, якщо систему налаштовано на західноєвропейські параметри регіону, є ANSI CP1252. У програмах Windows, наприклад у notepad, використовується ця типова загальносистемна кодова сторінка ANSI. У консолі Windows типово використовується кодова сторінка OEM (CP437 або CP850) для сумісності з програмами DOS. Якщо ви використовуєте версію wcd для DOS у консолі Windows, програма не працюватиме, оскільки у ній використовується кодова сторінка DOS. Але у версії wcd для DOS не передбачено підтримку довгих назв каталогів та мережевих дисків у Windows.

Версія wcd для Windows є типовою програмою Windows, вона використовуватиме загальносистемну кодову сторінку ANSI Windows. Отже, у західноєвропейській локалізації Windows програма використовуватиме кодову сторінку CP1252 для назв каталогів та повідомлень. З метою забезпечення однорідності виведення даних, незалежно від активної кодової сторінки, усі версії wcd для Windows перетворюють виведені дані у форматі ANSI у формат Unicode у командній оболонці та PowerShell.

У консольних растрових шрифтах передбачено оригінальну кодову сторінку OEM, що встановлюється разом з Windows, отже, вам слід змінити шрифт консолі на Lucida Console, щоб літери з Unicode (та ANSI) було показано належним чином.

Версії wcd без підтримки Unicode до версії 5.2.0 виводять дані у форматі ANSI. Для цих застарілих версій кодову сторінку консолі слід зробити еквівалентною до загальносистемної кодової сторінки (змінюється на 1252), щоб забезпечити належну роботу wcd для Windows зі спеціальними символами, зокрема символами з акцентами, символами кирилиці та символом євро.

Загальносистемну кодову сторінку Windows можна змінити за допомогою регіональних параметрів «Панелі керування». Кодову сторінку консолі Windows можна змінити за допомогою команди chcp.

Програма виводить дані щодо справжнього кодування символів у відповідь на команду wcd -V. Щоб визначити активну кодову сторінку консолі Windows, введіть команду chcp.

UNICODE

У wcd може бути передбачено підтримку Unicode. Щоб визначити, чи було зібрано wcd з підтримкою Unicode, скористайтеся командою wcd -V. Якщо у вашому терміналі або консолі та шрифті передбачено підтримку, ви зможете бачити символ євро та китайські ієрогліфи.

Перетворення у Unicode у wcd виконується програмно. У ядрі програми усі дані обробляються як потік даних. У широкі символи Unicode перетворюються лише рядки, що виводяться на екран. Wcd повністю покладається на функції libc і не містить специфічного для UTF-8 коду. Див. також http://www.cl.cam.ac.uk/~mgk25/unicode.html

У wcd передбачено необов’язкову підтримку встановлення відповідності за Unicode з нормалізацією. Щоб визначити, чи передбачено у wcd підтримку нормалізації, скористайтеся командою wcd -V. У wcd з підтримкою нормалізації Unicode відповідність назв Unicode виконується на основі сумісної еквівалентності. Без підтримки нормалізації Unicode відповідність назв встановлюється за двійковою еквівалентністю. Див. також http://en.wikipedia.org/wiki/Unicode_normalization

UTF-8 у Unix/Linux

Щоб у вашій консолі або терміналі можна було переглядати символи UTF-8, у консолі і терміналі також має бути передбачено підтримку UTF-8. У версії xterm, яка постачається разом з XFree86 4.0 або наступними версіями, передбачено підтримку UTF-8. Щоб задіяти цю підтримку, запустіть xterm(1) у локалі UTF-8 і скористайтеся шрифтом з кодуванням iso10646-1, наприклад за допомогою такої команди:

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

У сучасних дистрибутивах GNU/Linux типовою використовується кодування UTF-8. Можна працювати і з іншими багатобайтовими кодуваннями символів, але належного тестування працездатності з цими кодуванням не виконувалося.

У wcd припускається, що кодуванням файлів даних ієрархії каталогів є кодування символів поточної локалі. До файлів даних ієрархії каталогів символ позначки порядку байтів (BOM) не записується.

UTF-16 у Windows

У Windows підтримку Unicode передбачено у всіх версіях PowerShell та у командній оболонці Windows у Windows 7 (та новіших версіях). Unicode також працює у Take Command або TCC/LE створених JP Software, якими можна скористатися у старіших версіях Windows (XP/Vista).

У Windows усі назви каталогів на диску кодуються за допомогою UTF-16. У програмах Windows без підтримки Unicode символи Unicode перетворюються у символи типової кодової сторінки ANSI. Для символів, які не є частиною регіонального кодування, це перетворення є неможливим, отже програми без підтримки Unicode виводитимуть замість них символ знаку питання або помилковий символ.

Wcd з підтримкою Unicode читатиме закодовані у UTF-16 назви каталогів і перетворюватиме дані до UTF-8 у внутрішньому коді. Усі дані файлів ієрархії каталогів буде закодовано у UTF-8. Ці дані є несумісними з версіями wcd без підтримки Unicode. Wcd створить скрипт переходу у кодуванні UTF-8.

Усі версії Windows PowerShell можуть запускати скрипти у кодуванні UTF-8, якщо у скрипті є символ BOM UTF-8.

Починаючи з Windows 7, у командній оболонці Windows передбачено можливість змінити за допомогою пакетного скрипту каталог на каталог з літерами Unicode у назві. Кодуванням назви каталогу має бути UTF-8, а пакетний скрипт не повинен містити позначки порядку байтів (BOM). Слід змінити активну кодову сторінку командної оболонки на 65001 (UTF-8) до виконання команди cd. Wcd для командної оболонки створити такий скрипт переходу (wcdgo.bat). Цей скрипти спочатку змінюватиме кодову сторінку на 65001, потім змінюватиме каталог, і нарешті, повертатиме початкове значення параметрів кодової сторінки.

Якщо літери буде показано не так, як слід, вам слід встановити шрифт True Type Lucida Console (не растровий шрифт).

Версія wcd для Windows без підтримки Unicode може читати файли даних ієрархії каталогів у кодуванні Unicode, починаючи з версії 5.2.0, якщо у файлі є позначка порядку байтів (BOM) (див. http://en.wikipedia.org/wiki/Byte_order_mark), але не може змінювати каталоги на каталоги з тими літерами Unicode у назві, які не є частиною типової кодової сторінки ANSI системи. Версія wcd для Windows з підтримкою Unicode записує BOM до файлів ієрархії каталогів у кодуванні UTF-8, починаючи з версії 5.2.0, отже, ці файли можна читати за допомогою notepad.

UTF-8 у Cygwin

У Cygwin передбачено підтримку Unicode, починаючи з версії 1.7. Шар обробки Cygwin виконує перетворення назв каталогів Windows у UTF-16 до UTF-8. Отже, програми, зокрема wcd, не потрібно перейматися процедурами перетворення, вони можуть обробляти дані у кодуванні UTF-8, як це робиться у Unix/Linux. Встановити кодування символів UTF-8 можна за допомогою змінної середовища LANG або LC_CTYPE. Ймовірно, вам доведеться пересканувати ваші диски. Якщо ви користуєтеся типовою консоллю Cygwin, вам слід встановити для неї шрифт True Type Lucida Console (не растровий шрифт).

Версія wcd для Cygwin поводиться точно так само, як версія wcd для Unix. Мітка порядку байтів (BOM) не записується до файлів даних ієрархії каталогів. Кодуванням файлів вважається кодування символів локалі Cygwin.

ФАЙЛИ

Якщо встановлено змінну середовища WCDHOME, використовуватиме WCDHOME замість HOME. Усі файли *.wcd є текстовими файлами. Їх можна редагувати у звичайному текстовому редакторі. Версія wcd для командної оболонки Windows поводиться так само, як версія для DOS. Версія wcd для Cygwin поводиться як версія для Unix.

wcd.exe

Сама програма. У оболонках Unix програма завжди викликається функцією або альтернативною командою, оскільки поточний робочий каталог у оболонці Unix можна змінювати лише за допомогою вбудованої команди cd. Див. також розділ «ВСТАНОВЛЕННЯ».

типовий файл даних ієрархії каталогів

Це типовий файл даних ієрархії каталогів, де wcd шукає відповідники. Якщо цей файл непридатний до читання, wcd створить новий.

    DOS: \treedata.wcd або %HOME%\treedata.wcd
    Unix: $HOME/.treedata.wcd
додатковий файл даних ієрархії каталогів

Необов’язковий додатковий файл даних ієрархії каталогів. Якщо такий файл існує і є придатним до читання, wcd спробує знайти відповідники і у цьому файлі.

    DOS: \extra.wcd або %HOME%\extra.wcd
    Unix: $HOME/.extra.wcd
файл блокувань

До цього додаткового файла wcd записує заблоковані шляхи. Див. параметр -b. Передбачено підтримку символів-замінників.

    DOS: \ban.wcd або %HOME%\ban.wcd
    Unix: $HOME/.ban.wcd
файл альтернативних назв

Необов’язковий файл із записами альтернативних назв wcd. Див. параметр -l.

    DOS: \alias.wcd або %HOME%\alias.wcd
    Unix: $HOME/.alias.wcd
файл stack

У цьому файлі зберігається стос каталогів wcd. Літеру диска можна змінити за допомогою параметра -d.

    DOS: c:\stack.wcd або %HOME%\stack.wcd
    Unix: $HOME/.stack.wcd

Назву файла стосу можна змінити за допомогою змінної середовища WCDSTACKFILE. Див. розділ «ЗМІННІ СЕРЕДОВИЩА».

скрипт go

Це скрипт командної оболонки, який wcd.exe створює під час кожного запуску. Від використовується функцією або альтернативною командою. Літеру диска можна змінити за допомогою параметра -d. З історичних міркувань у системах Unix цей файл типово зберігається у $HOME/bin. Каталог цього файла можна змінити за допомогою параметра -G.

    bash для DOS: c:/wcd.go або $HOME/wcd.go
    командна оболонка Windows: c:\wcdgo.bat або %HOME%\wcdgo.bat
    Windows PowerShell: $env:HOME\wcdgo.ps1
    WinZsh: $HOME/wcd.go
    Cygwin/MSYS: $HOME/bin/wcd.go
    командна оболонка OS/2: c:\wcdgo.cmd або %HOME%\wcdgo.cmd
    Unix: $HOME/bin/wcd.go
файл відносних шляхів у ієрархії каталогів

Текстовий файл з відносними шляхами щодо каталогу КАТАЛОГ. Див. параметри +S, -n та +n.

    DOS: <шлях>\rtdata.wcd
    Unix: <шлях>/.rtdata.wcd

ЗМІННІ СЕРЕДОВИЩА

HOME

Типово, wcd використовує змінну середовища HOME для визначення місця, де зберігатимуться файли програми. Див. також розділ «ФАЙЛИ». Перевизначити каталог можна за допомогою змінної середовища WCDHOME.

HOME також визначає місце, звідки слід розпочинати сканування диска, якщо використано параметр -s. Перевизначити це місце можна за допомогою змінної середовища WCDSCAN.

У версіях для Unix, Cygwin, Windows PowerShell, WinZsh та MSYS слід встановити значення HOME або WCDHOME. Для інших версій wcd використання цих змінних є необов’язковим.

Якщо змінну HOME встановлено у DOS/Windows, wcd розташує свої файли (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) у каталозі HOME. Після встановлення змінної поведінка wcd стає еквівалентною до версії wcd для Unix. Типово, wcd скануватиме диск, починаючи з HOME. Сканування дисків не виконуватиметься у автоматичному режимі після зміни диска. Про потребу у скануванні слід повідомити явно. Приклад:

    wcd -S c: -A d: -A e:

Після цього встановлення відповідності каталогів буде загальним на усіх сканованих дисках.

WCDHOME

Для зміни місця зберігання файлів wcd слід використовувати змінну середовища WCDHOME. Якщо встановлено одразу HOME і WCDHOME, замість HOME буде використано WCDHOME.

З версіях wcd до версії 5.1.5 типовий каталог сканування можна змінити також за допомогою змінної WCDHOME. У наступних версіях таку поведінку було змінено. Починаючи з версії 5.1.5, WCDHOME не змінює типового каталогу сканування. Див. параметр -s. Починаючи з версії 5.1.5, для перевизначення типового каталогу сканування слід використовувати змінну середовища WCDSCAN.

Приклад для командних оболонок DOS, Windows, OS/2:

    set WCDHOME=C:\Users\erwin\wcd

Приклад для командних оболонок типу POSIX:

    export WCDHOME="$HOME/.wcd"

Приклад для командних оболонок типу Csh:

    setenv WCDHOME "$HOME/.wcd"
WCDSCAN

Для перевизначення встановленого за допомогою змінної середовища HOME типового каталогу сканування скористайтеся змінною середовища WCDSCAN. Щоб визначити декілька каталогів, скористайтеся списком каталогів, відокремлених двокрапкою (Unix). У DOS або Windows записи у списку слід відокремлювати крапкою з комою.

Приклади для командних оболонок DOS, Windows, OS/2:

    set WCDSCAN=C:\Users\erwin;D:\data

    set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX

Приклад для командних оболонок типу POSIX:

    export WCDSCAN="$HOME:/projectdisk/projectX"

Приклад для командних оболонок типу Csh:

    setenv WCDSCAN "$HOME:/projectdisk/projectX"
WCDFILTER

Фільтри можна вказати за допомогою змінної середовища WCDFILTER. Усі каталоги, які не відповідають цим фільтрам, буде проігноровано. Записи у списку слід відокремлювати типовим роздільником каталогів у шляхах командної оболонки. Це щось подібне до визначення змінної середовища PATH. Те, чи буде враховано регістр символів, визначається параметрами операційної системи.

Приклад для командних оболонок DOS, Windows, OS/2:

    set WCDFILTER=projects;doc

Приклад для командних оболонок типу POSIX:

    export WCDFILTER="projects:doc"

Приклад для командних оболонок типу Csh:

    setenv WCDFILTER "projects:doc"
WCDBAN

Шляхи, вказані за допомогою змінної середовища WCDBAN, вважатимуться заблокованими для wcd. Див. також параметр -b. Записи у списку шляхів слід відокремлювати типовим роздільником змінної PATH командної оболонки.

WCDEXCLUDE

Шляхи, вказані за допомогою змінної середовища WCDEXCLUDE, вважатимуться виключеними для wcd. Див. також параметри -x та -xf. Записи у списку шляхів слід відокремлювати типовим роздільником змінної PATH командної оболонки.

Приклад для командних оболонок DOS, Windows, OS/2:

    set WCDEXCLUDE=*/windows;*/temp;*CVS

Приклад для командних оболонок типу POSIX:

    export WCDEXCLUDE="/dev:/tmp:*CVS"

Приклад для командних оболонок типу Csh:

    setenv WCDEXCLUDE "/dev:/tmp:*CVS"
WCDUSERSHOME

Встановлює основний каталог для домашніх каталогів користувачів. У DOS або Windows типовим значенням змінної є \\users. У Unix або Cygwin типовим значенням є /home. Ця змінна середовища використовується для сканування файлів даних ієрархії каталогів інших користувачів. Див. також параметри -u та +u. У докладному режимі wcd виводитиме усі фільтри, блокування та виключення. Див. параметр -v.

WCDSTACKFILE

Wcd надає перевагу значенню змінної WCDSTACKFILE над типовою назвою файла стосу (див. розділ «ФАЙЛИ»). За допомогою цієї змінної можна визначити окремий стос використаних каталогів для декількох різних командних оболонок (або використаних емуляторів термінала).

Використання файла з унікальною назвою на основі поточного часу у форматі РРРММДД-ГГХХСС для кожної відкритої інтерактивної командної оболонки:

    export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)

Для окремого стосу на кожний екземпляр xterm(1) скористайтеся змінної середовища WINDOWID для xterm:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID

Для GNU screen(1), використання окремого стосу на екземпляр screen:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
TERMINFO

Якщо визначено змінну середовища TERMINFO, wcd з інтерфейсом на основі ncurses шукатиме локальні визначення термінала до виконання пошуку у стандартному місці. Це корисно, якщо визначення термінала зберігаються у нестандартному місці. Часто використовуються стандартні місця /usr/lib/terminfo та /usr/share/terminfo.

PDC_RESTORE_SCREEN

Wcd з інтерфейсом на основі PDCurses розпізнає змінну середовища PDC_RESTORE_SCREEN. Якщо встановлено цю змінну середовища, PDCurses скопіює вміст екрана на час запуску wcd; після завершення роботи wcd вміст екрана буде відновлено. Приклад для командної оболонки Windows:

    set PDC_RESTORE_SCREEN=1

У Windows передбачено можливість зберігання лише буфера незначного обсягу. Тому повне відновлення не завжди можливе. Якщо вміст буфера є доволі значним, до консолі після виходу з wcd буде виведено випадкові символи.

SHELL

Для виведення 8-бітових символів у скриптах переходу для командних оболонок типу POSIX та C слід вказати #!$SHELL у першому рядку. Якщо цього не зробити, у деяких оболонках скрипт переходу вважатиметься бінарним файлом і не використовуватиметься. У bash Cygwin у середовищі має бути визначено змінну SHELL за допомогою команди export, інакше wcd не зможе прочитати змінну.

BASH

Wcd для bash DOS використовується $BASH замість $SHELL, оскільки $SHELL вказує на командну оболонку DOS. Можливо, слід визначити змінну $BASH за допомогою команди export, інакше wcd не зможе прочитати змінну.

ТАКОЖ ПЕРЕГЛЯНЬТЕ

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

АВТОРИ

Wcd створено Erwin Waterlander <waterlan@xs4all.nl>

Домашня сторінка проекту: http://waterlan.home.xs4all.nl/

SourceForge: http://sourceforge.net/projects/wcd/

Freecode: http://freecode.com/projects/wcd/

Форматування сторінки підручника було виконано Jari Aalto <jari.aalto@cante.net>.

Початкову версію NCD було створено Brad Kingsbury для пакунка "Norton Utilities" Пітера Нортона близько 1987 року. Див. також http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml

wcd-5.2.5/src/man/de/0000775000175000017500000000000012345660655014464 5ustar waterlanwaterlanwcd-5.2.5/src/man/de/man1/0000775000175000017500000000000012345660661015315 5ustar waterlanwaterlanwcd-5.2.5/src/man/de/man1/wcd.po0000664000175000017500000034466112343164017016440 0ustar waterlanwaterlan# German translation of the wcd man page. # Copyright (C) 2014 Erwin Waterlander (msgids) # This file is distributed under the same license as the wcd package. # Mario Blättermann , 2014. # msgid "" msgstr "" "Project-Id-Version: wcd-man 5.2.5-beta12\n" "POT-Creation-Date: 2014-05-27 23:08+0300\n" "PO-Revision-Date: 2014-06-01 15:52+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" #. type: =head1 #: wcd.pod:43 msgid "NAME" msgstr "BEZEICHNUNG" #. type: textblock #: wcd.pod:45 msgid "wcd - Wherever Change Directory" msgstr "wcd - Wherever Change Directory" #. type: textblock #: wcd.pod:47 msgid "chdir for DOS and Unix" msgstr "chdir für DOS und Unix" #. type: =head1 #: wcd.pod:49 msgid "SYNOPSIS" msgstr "ÜBERSICHT" #. type: verbatim #: wcd.pod:51 #, no-wrap msgid "" " wcd [options] [directory]\n" "\n" msgstr "" " wcd [Optionen] [Verzeichnis]\n" "\n" #. type: =head1 #: wcd.pod:53 msgid "DESCRIPTION" msgstr "BESCHREIBUNG" #. type: =head2 #: wcd.pod:55 msgid "Overview" msgstr "Übersicht" #. type: textblock #: wcd.pod:57 msgid "Wcd is a command-line program to change directory fast. It saves time typing at the keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd has a fast selection method in case of multiple matches and allows aliasing and banning of directories. Wcd also includes a full screen interactive directory tree browser with speed search." msgstr "Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche." #. type: textblock #: wcd.pod:63 msgid "Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in I, for DOS in 1987, published by Peter Norton." msgstr "Wcd wurde nach dem Vorbild des Norton Change Directory (NCD) entworfen. NCD erschien zuerst 1987 in I für DOS, veröffentlicht von Peter Norton." #. type: textblock #: wcd.pod:66 msgid "Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn (ksh), Z (zsh), and C (csh) shell and others running on any operating system." msgstr "Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: DOS (command.com), Windows (cmd.exe und PowerShell), OS/2 (cmd.exe) sowie Unix-Shells wie Bourne- (sh), Bourne-Again- (bash), Korn- (ksh), Z- (zsh) und die C- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells." #. type: textblock #: wcd.pod:71 msgid "Wcd supports 8 bit character sets on all systems, and has optional support for Unicode. See section LOCALIZATION." msgstr "Wcd unterstützt 8-Bit-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt LOKALISIERUNG." #. type: textblock #: wcd.pod:74 msgid "See section INSTALLATION how to setup wcd for personal use." msgstr "Im Abschnitt INSTALLATION finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können." #. type: =head2 #: wcd.pod:76 msgid "Basic use" msgstr "Grundlegende Verwendung" #. type: textblock #: wcd.pod:78 msgid "By default (if no wildcards are used) wcd searches for a directory with a name that begins with the typed name." msgstr "Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt." #. type: textblock #: wcd.pod:81 msgid "For instance this command will change to directory to the current user's C
:" msgstr "Beispielsweise wechselt dieser Befehl in das Verzeichnis C
des aktuellen Benutzers:" #. type: verbatim #: wcd.pod:84 #, no-wrap msgid "" " wcd Desk\n" "\n" msgstr "" " wcd Desk\n" "\n" #. type: textblock #: wcd.pod:86 msgid "When there are multiple matches, wcd will present the user a list of all matches. The user can then make a selection with a few keystrokes (most of the times only one)." msgstr "Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem)." #. type: =head2 #: wcd.pod:90 msgid "Wildcards" msgstr "Platzhalter" #. type: textblock #: wcd.pod:92 msgid "Wcd supports following wildcards:" msgstr "Wcd unterstützt die folgenden Platzhalter:" #. type: verbatim #: wcd.pod:94 #, no-wrap msgid "" " * matches any sequence of characters (zero or more)\n" " ? matches any character\n" " [SET] matches any character in the specified set,\n" " [!SET] or [^SET] matches any character not in the specified set.\n" "\n" msgstr "" " * findet jede Zeichensequenz (kein oder mehr Zeichen)\n" " ? findet jedes einzelne Zeichen\n" " [GRUPPE] findet jedes Zeichen in der angegebenen Gruppe,\n" " [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen\n" " GRUPPE nicht enthalten ist.\n" "\n" #. type: textblock #: wcd.pod:99 msgid "A set is composed of characters or ranges; a range looks like I as in C<0-9> or C. The C<[0-9a-zA-Z_]> is the minimal set of characters allowed in the C<[..]> pattern construct. International characters (i.e. 8 bit characters) are allowed if the system supports them. To suppress the special syntactic significance of any of C<[]*?!^-\\> inside or outside a C<[..]> construct and match the character exactly, precede the character with a backslash (C<\\>) marker." msgstr "Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form I, zum Beispiel C<0-9> oder C. Dabei ist C<[0-9a-zA-Z_]> die minimal mögliche Gruppe nach dem Muster C<[..]>. Internationale Zeichen (zum Beispiel 8-Bit-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen C<[]*?!^-\\> innerhalb oder außerhalb des Musters C<[..]> zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich (C<\\>) voran, um es zu maskieren." #. type: textblock #: wcd.pod:108 msgid "Using wildcards makes powerful searching possible. For instance this matches any directory name that ends with \"top\":" msgstr "Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet: " #. type: verbatim #: wcd.pod:111 #, no-wrap msgid "" " wcd *top\n" "\n" msgstr "" " wcd *top\n" "\n" #. type: textblock #: wcd.pod:113 msgid "Match directories that have \"top\" anywhere in the name:" msgstr "Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält:" #. type: verbatim #: wcd.pod:115 #, no-wrap msgid "" " wcd *top*\n" "\n" msgstr "" " wcd *top*\n" "\n" #. type: textblock #: wcd.pod:117 msgid "Match any directory name that begins with \"a\", \"b\" or \"c\":" msgstr "Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt:" #. type: verbatim #: wcd.pod:119 #, no-wrap msgid "" " wcd [a-c]*\n" "\n" msgstr "" " wcd [a-c]*\n" "\n" #. type: textblock #: wcd.pod:121 msgid "It is also possible to give a part of a directory path. Here Wcd searches for directory that begins with \"Desk\" and which path matches I<*me/Desk*>." msgstr "Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf I<*me/Desk*> passt." #. type: verbatim #: wcd.pod:124 #, no-wrap msgid "" " wcd me/Desk\n" "\n" msgstr "" " wcd me/Desk\n" "\n" #. type: textblock #: wcd.pod:126 msgid "It is allowed to type any kind of expression with slashes and wildcards. E.g.:" msgstr "Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel:" #. type: verbatim #: wcd.pod:129 #, no-wrap msgid "" " wcd src*/*1?/a*2\n" "\n" msgstr "" " wcd src*/*1?/a*2\n" "\n" #. type: =head2 #: wcd.pod:131 msgid "Other uses" msgstr "Weitere Anwendungsfälle" #. type: textblock #: wcd.pod:133 msgid "If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches by default. This behaviour can be changed with the B<-w> option." msgstr "Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option B<-w> geändert werden." #. type: textblock #: wcd.pod:136 msgid "The interactive directory tree browser can be started by using option B<-g>." msgstr "Der interaktive Verzeichnisbaumbrowser kann mit der Option B<-g> gestartet werden." #. type: verbatim #: wcd.pod:138 #, no-wrap msgid "" " wcd -g\n" "\n" msgstr "" " wcd -g\n" "\n" #. type: textblock #: wcd.pod:140 msgid "Wcd generates a treedata file where it searches the directory. On Unix and Windows systems wcd does add symbolic links to the treedata file while scanning the disk, but does not follow them. While following links wcd could end up scanning infinite loops, or scan very large portions of a network." msgstr "Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten." #. type: textblock #: wcd.pod:145 msgid "Wcd can also change to directories that are not in the treedata file. E.g.:" msgstr "Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel:" #. type: verbatim #: wcd.pod:147 #, no-wrap msgid "" " wcd ..\n" "\n" msgstr "" " wcd ..\n" "\n" #. type: textblock #: wcd.pod:149 msgid "If wcd found a match but can't change to the directory it tries to remove it from the default treedata file. Not from the extra treedata file. See also option B<-k>." msgstr "Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option B<-k>." #. type: textblock #: wcd.pod:153 msgid "Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10 and is cyclic. See options B<-z>, B<->, B<+> and B<=>." msgstr "Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen B<-z>, B<->, B<+> und B<=>." #. type: textblock #: wcd.pod:157 msgid "In multi-user environments option B<-u> can be used to change to directories of other users." msgstr "In Umgebungen mit mehreren Benutzern kann mit der Option B<-u> in die Verzeichnisse anderer Benutzer gewechselt werden." #. type: textblock #: wcd.pod:161 msgid "On DOS and Windows systems it does not matter if you use a slash \"/\" or a backslash \"\\\" as a directory separator." msgstr "Auf DOS- und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\\« als Verzeichnistrenner verwenden." #. type: textblock #: wcd.pod:164 msgid "It is possible on DOS and Windows systems to change drive and directory in one go by preceding the directory name with the drive name." msgstr "Auf DOS- und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen." #. type: verbatim #: wcd.pod:167 #, no-wrap msgid "" " wcd d:games\n" "\n" msgstr "" " wcd d:games\n" "\n" #. type: =head2 #: wcd.pod:171 msgid "Windows UNC paths" msgstr "UNC-Pfade unter Windows" #. type: textblock #: wcd.pod:173 msgid "The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB LAN UNC paths without drive letter such as C<\\\\servername\\sharename>. Wcd for Windows Command Prompt makes use of the \"pushd\" command to automatically map a UNC path to a drive letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The current working directory can be a UNC path." msgstr "Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, MSYS, zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie C<\\\\Servername\\Freigabename>. Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, MSYS, zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein." #. type: =head2 #: wcd.pod:181 msgid "Interfaces" msgstr "Schnittstellen" #. type: textblock #: wcd.pod:183 msgid "Wcd has three different interfaces to choose from a list of matches. The interface can be chosen at compile time." msgstr "Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt." #. type: textblock #: wcd.pod:186 msgid "The first interface uses plain stdin/stdout. A numbered list is printed in the terminal. The user has to choose from the list by typing a number followed by . This interface does not provide scroll back functionality in case of a long list. The scroll back capability of the terminal/console has to be used. It is very small and portable." msgstr "Die erste Schnittstelle verwendet die Standardeingabe und -ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel." #. type: textblock #: wcd.pod:192 msgid "The second interface is built with the conio library. It provides a builtin scroll back capability. The user is presented a list numbered with letters. Choosing from a list can be done by pressing just one letter. This interface is fast because it saves keystrokes. If possible the screen will be restored after exiting. One who prefers to type numbers can use the B<-N> option." msgstr "Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option B<-N> verwenden." #. type: textblock #: wcd.pod:199 msgid "The third interface is built with the curses library. It is similar to the conio interface. The curses version of wcd has also an additional 'graphical' interface. It lets the user select a directory via a full screen interactive directory tree browser. It has a vim(1) like navigation and search method. It can be activated with option B<-g>." msgstr "Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Diese Schnittstelle kann mit der Option B<-g> aktiviert werden." #. type: textblock #: wcd.pod:205 msgid "By using the B<-o> option one can always fall back to the stdin/stdout interface." msgstr "Mit der Option B<-o> ist es jederzeit möglich, auf die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen." #. type: =head1 #: wcd.pod:208 msgid "OPTIONS" msgstr "OPTIONEN" #. type: =item #: wcd.pod:212 msgid "B<-a>" msgstr "B<-a>" #. type: textblock #: wcd.pod:214 msgid "Add current path to the default treedata file." msgstr "fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu." #. type: textblock #: wcd.pod:216 msgid "Use this option to quickly add the current path to the default treedata file. Re-scanning the complete disk can take a long time in some cases." msgstr "Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern." #. type: =item #: wcd.pod:219 msgid "B<-aa>" msgstr "B<-aa>" #. type: textblock #: wcd.pod:221 msgid "Add current and all parent paths to the default treedata file." msgstr "fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu." #. type: =item #: wcd.pod:223 msgid "B<-A PATH>" msgstr "B<-A PFAD>" #. type: textblock #: wcd.pod:225 msgid "Scan directory tree from I and append to the default treedata file. Examples:" msgstr "liest den Verzeichnisbaum aus I und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele:" #. type: verbatim #: wcd.pod:228 #, no-wrap msgid "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" msgstr "" " wcd -A .\n" " wcd -A /home -A /etc\n" " wcd -A d: -A e: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:232 msgid "On Windows one can scan all shared directories of a Windows LAN server by typing something like: C." msgstr "Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: C." #. type: textblock #: wcd.pod:236 msgid "See also option B<-S> and B<-s> and B<-E>." msgstr "Siehe auch die Optionen B<-S>, B<-s> und B<-E>." #. type: =item #: wcd.pod:238 msgid "B<-b>" msgstr "B<-b>" #. type: textblock #: wcd.pod:240 msgid "Ban current path." msgstr "verbannt den aktuellen Pfad." #. type: textblock #: wcd.pod:242 msgid "Wcd places the current path in the ban file. This means that wcd ignores all matches of this directory and its sub directories." msgstr "Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen." #. type: textblock #: wcd.pod:245 msgid "The ban file can be edited with a text editor. Use of wildcards is supported and names are matched against the absolute path." msgstr "Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen." #. type: textblock #: wcd.pod:248 msgid "Banned paths are not excluded from scanning the disk. To do that use option B<-xf>." msgstr "Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option B<-xf>." #. type: =item #: wcd.pod:251 msgid "B<-c, --direct-cd>" msgstr "B<-c, --direct-cd>" #. type: textblock #: wcd.pod:253 msgid "Direct CD mode. By default wcd works as follows:" msgstr "Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt:" #. type: verbatim #: wcd.pod:255 #, no-wrap msgid "" " 1. Try to find a match in the treedata file(s)\n" " 2. If no match, try to open the directory you typed.\n" "\n" msgstr "" " 1. Es wird versucht, einen Treffer in der oder den Baumdatei(en)\n" " zu finden.\n" " 2. Wird nichts gefunden, wird versucht, das eingegebene\n" " Verzeichnis zu öffnen.\n" "\n" #. type: textblock #: wcd.pod:258 msgid "In direct CD mode wcd works in reversed order." msgstr "Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge:" #. type: verbatim #: wcd.pod:260 #, no-wrap msgid "" " 1. Try to open the directory you typed.\n" " 2. If not, try to find a match in the treedata file(s).\n" "\n" msgstr "" " 1. Es wird versucht, das eingegebene Verzeichnis zu öffnen.\n" " 2. Wird nichts gefunden, wird nach einem Treffer in der oder\n" " den Baumdatei(en) gesucht.\n" "\n" #. type: =item #: wcd.pod:264 msgid "B<-d DRIVE>" msgstr "B<-d LAUFWERK>" #. type: textblock #: wcd.pod:266 msgid "Set drive for stack and go file (DOS only)." msgstr "legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur DOS)." #. type: textblock #: wcd.pod:268 msgid "The stack file and the go-script are by default stored on drive C: if environment variable I is not set. Use this option if drive C: is a read-only drive. This option must be used in front of the stack options B<->, B<+> and B<=>." msgstr "Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable I nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen B<->, B<+> und B<=> stehen." #. type: =item #: wcd.pod:273 msgid "B<-e>" msgstr "B<-e>" #. type: textblock #: wcd.pod:275 msgid "Add current path to the extra treedata file." msgstr "fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu." #. type: textblock #: wcd.pod:277 msgid "Use this option to quickly add the current path to the extra treedata file." msgstr "Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen." #. type: =item #: wcd.pod:279 msgid "B<-ee>" msgstr "B<-ee>" #. type: textblock #: wcd.pod:281 msgid "Add current and all parent paths to extra treedata file." msgstr "fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu." #. type: =item #: wcd.pod:283 msgid "B<-E PATH>" msgstr "B<-E PFAD>" #. type: textblock #: wcd.pod:285 msgid "Scan directory tree from I and append to Extra treedata file. See also options B<-A> and B<-S>." msgstr "liest den Verzeichnisbaum aus I und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen B<-A> und B<-S>." #. type: =item #: wcd.pod:288 msgid "B<-f FILE>" msgstr "B<-f DATEI>" #. type: textblock #: wcd.pod:290 msgid "Read treedata file I. Do not read the default treedata file." msgstr "liest die Baumdatei I. Die vorgegebene Baumdatei wird nicht gelesen." #. type: =item #: wcd.pod:292 msgid "B<+f FILE>" msgstr "B<+f DATEI>" #. type: textblock #: wcd.pod:294 msgid "Read treedata file I in addition to the default treedata file." msgstr "liest die Baumdatei I zusätzlich zur vorgegebenen Baumdatei." #. type: =item #: wcd.pod:296 msgid "B<-g>" msgstr "B<-g>" #. type: textblock #: wcd.pod:298 msgid "Graphical interface (only in version with curses interface)." msgstr "verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle)." #. type: textblock #: wcd.pod:300 msgid "Wcd starts a textual curses based 'graphical' interface. The user can select a directory via a full-screen interactive directory tree browser. It has a vim(1) like navigation and search method." msgstr "Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1)." #. type: textblock #: wcd.pod:304 msgid "If no search string is given wcd presents the whole tree which is in the default treedata file and the extra treedata files." msgstr "Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar." #. type: textblock #: wcd.pod:307 msgid "If a search string is given the match list is presented as a directory tree." msgstr "Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt." #. type: textblock #: wcd.pod:310 msgid "The default tree layout is similar to the tree layout of the original NCD on DOS. The difference in layout is that in NCD all directories of a same depth level were vertically aligned over the whole tree. This was possible in NCD, because the maximum width of a directory name in DOS was 12 (8.3) characters. On modern operating systems directory names can be very long, so also the differences in length can be large. Therefore folders with a same depth are not vertically aligned over the whole tree in wcd, but only in sub-branches. So there is some sideways movement when moving straight up and down from one sub-branch to another sub-branch." msgstr "Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen NCD unter DOS. Der Unterschied besteht darin, dass in NCD alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in NCD möglich, da ein Verzeichnisname in DOS nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen." #. type: textblock #: wcd.pod:320 msgid "The navigation behaviour in Wcd is exactly the same as in the original NCD. For instance if you push the Down key you go down to the next directory with the same depth level, jumping over branches. This enables fast navigation through the tree." msgstr "Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen NCD. Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum." #. type: textblock #: wcd.pod:325 msgid "See options B<-Ta>, B<-TC>, and B<-Tc> to change the navigation behaviour." msgstr "Siehe die Optionen B<-Ta>, B<-TC> und B<-Tc> zum Ändern des Navigationsverhaltens." #. type: =item #: wcd.pod:327 msgid "B<-gd>" msgstr "B<-gd>" #. type: textblock #: wcd.pod:329 msgid "Dump the treedata files as a tree to stdout." msgstr "gibt die Baumdateien als Baum in die Standardausgabe aus." #. type: =item #: wcd.pod:331 msgid "B<-G PATH>" msgstr "B<-G PFAD>" #. type: textblock #: wcd.pod:333 msgid "Write go-script in directory I. For instance on Unix, C will write a go-script B." msgstr "schreibt das Go-Skript in das Verzeichnis I. Unter Unix beispielsweise schreibt C ein Go-Skript in B." #. type: =item #: wcd.pod:336 msgid "B<-GN, --no-go-script>" msgstr "B<-GN, --no-go-script>" #. type: textblock #: wcd.pod:338 msgid "Do not create go-script. This option can be used in combination with the option B<-j> if one does not want wcd to create a go-script." msgstr "verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit B<-j> verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen." #. type: =item #: wcd.pod:341 msgid "B<-h, --help>" msgstr "B<-h, --help>" #. type: textblock #: wcd.pod:343 msgid "Show help and exit." msgstr "zeigt eine Hilfe an und beendet das Programm." #. type: =item #: wcd.pod:345 msgid "B<-i, --ignore-case>" msgstr "B<-i, --ignore-case>" #. type: textblock #: wcd.pod:347 msgid "Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin versions regard case by default." msgstr "ignoriert Groß-/Kleinschreibung. In den DOS- und Windows-Versionen ist dies der Standard. In den Unix- und Cygwin-Versionen wird per Vorgabe die Groß-/Kleinschreibung berücksichtigt." #. type: =item #: wcd.pod:351 msgid "B<+i, --no-ignore-case>" msgstr "B<+i, --no-ignore-case>" #. type: textblock #: wcd.pod:353 msgid "Regard case. See also option B<-i>." msgstr "berücksichtigt Groß-/Kleinschreibung. Siehe auch Option B<-i>." #. type: =item #: wcd.pod:355 msgid "B<-I, --ignore-diacritics>" msgstr "B<-I, --ignore-diacritics>" #. type: textblock #: wcd.pod:357 msgid "Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their base letter without diacritical mark. The following Latin encodings are supported: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1, Latin Extended-A, and Latin Extended-B. See also L" msgstr "ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, sowie Unicode Latin-1, Latin Extended-A, und Latin Extended-B. Siehe auch L" #. type: =item #: wcd.pod:364 msgid "B<+I, --no-ignore-diacritics>" msgstr "B<+I, --no-ignore-diacritics>" #. type: textblock #: wcd.pod:366 msgid "Regard diacritics (default). See also option B<-I>." msgstr "berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option B<-I>." #. type: =item #: wcd.pod:368 msgid "B<-j, --just-go>" msgstr "B<-j, --just-go>" #. type: textblock #: wcd.pod:370 msgid "Just go mode." msgstr "Geh-einfach-Modus." #. type: textblock #: wcd.pod:372 msgid "In this mode wcd will not present a list when there is more than one directory that matches the given directory. Wcd will just change to the first option. When wcd is invoked again with the same arguments it will change to the next option, and so on." msgstr "In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter." #. type: textblock #: wcd.pod:377 msgid "Wcd will print the directory to go to to stdout. So a different installation method can be used. One could make the following function for a POSIX compatible shell:" msgstr "Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen:" #. type: verbatim #: wcd.pod:381 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"$($HOME/bin/wcd.exe -j $@)\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:386 msgid "When you are using an old shell that doesn't support \"$()\" command substitution you have to use old style command substitution with back-quotes." msgstr "Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden." #. type: verbatim #: wcd.pod:389 #, no-wrap msgid "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " cd \"`$HOME/bin/wcd.exe -j $@`\"\n" " }\n" "\n" #. type: textblock #: wcd.pod:395 msgid "On Windows systems, if one is running 4NT shell, one could make the following alias:" msgstr "Auf Windows-Systemen mit einer NT4-Shell können Sie den folgenden Alias anlegen:" #. type: verbatim #: wcd.pod:398 #, no-wrap msgid "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" msgstr "" " alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`\n" "\n" #. type: textblock #: wcd.pod:401 msgid "This method eliminates the need of the go-script, so one can use option B<-GN> in combination with B<-j>." msgstr "Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option B<-GN> zusammen mit B<-j> verwenden." #. type: =item #: wcd.pod:404 msgid "B<-k, --keep-paths>" msgstr "B<-k, --keep-paths>" #. type: textblock #: wcd.pod:406 msgid "Keep paths." msgstr "erhält Pfade." #. type: textblock #: wcd.pod:408 msgid "Keep paths in the treedata file when wcd can't change to them. The default behaviour of wcd is that it tries to remove paths from the treedata when wcd can't change to them. With this option this behavior is turned off." msgstr "Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert." #. type: =item #: wcd.pod:412 msgid "B<-K, --color>" msgstr "B<-K, --color>" #. type: textblock #: wcd.pod:414 msgid "Use colors in graphical mode." msgstr "verwendet Farben im grafischen Modus." #. type: =item #: wcd.pod:416 msgid "B<-l ALIAS>" msgstr "B<-l ALIAS>" #. type: textblock #: wcd.pod:418 msgid "Name the current path with I. Wcd places the current path with alias I in the alias file. Aliases are case sensitive." msgstr "benennt den aktuellen Pfad mit I. Wcd speichert den aktuellen Pfad mit dem I in der Alias-Datei. Bei Aliasen wird Groß-/Kleinschreibung berücksichtigt." #. type: =item #: wcd.pod:421 msgid "B<-m DIR>" msgstr "B<-m VERZEICHNIS>" #. type: textblock #: wcd.pod:423 msgid "Make directory and add to treedata file." msgstr "erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu." #. type: =item #: wcd.pod:425 msgid "B<-L, --license>" msgstr "B<-L, --license>" #. type: textblock #: wcd.pod:427 msgid "Print the distribution license." msgstr "zeigt die Lizenz des Programms an." #. type: =item #: wcd.pod:429 msgid "B<-M DIR>" msgstr "B<-M VERZEICHNIS>" #. type: textblock #: wcd.pod:431 msgid "Make directory and add to extra treedata file." msgstr "erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu." #. type: =item #: wcd.pod:433 msgid "B<-n PATH>" msgstr "B<-n PFAD>" #. type: textblock #: wcd.pod:435 msgid "Read relative treedata file from I." msgstr "liest die relative Baumdatei aus I." #. type: textblock #: wcd.pod:437 msgid "Do not read the default treedata file. The relative treedata file should already have been created using the wcd B<+S> option. I may also point to a file directly." msgstr "Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option B<+S> angelegt worden sein. I kann auch direkt auf eine Datei verweisen." #. type: textblock #: wcd.pod:441 msgid "An example. Suppose another system has been mounted to mount point C:" msgstr "Ein Beispiel. Nehmen wir an, ein anderes System wurde in C eingehängt:" #. type: verbatim #: wcd.pod:444 #, no-wrap msgid "" " wcd -n /mnt/network src\n" "\n" msgstr "" " wcd -n /mnt/network src\n" "\n" #. type: textblock #: wcd.pod:446 msgid "Wcd opens the relative treedata file in C. The file contains the paths relative from that point." msgstr "Wcd öffnet die Datei der relativen Baumansicht in C. Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet." #. type: =item #: wcd.pod:449 msgid "B<+n PATH>" msgstr "B<+n PFAD>" #. type: textblock #: wcd.pod:451 msgid "Read relative treedata file in addition to the default treedata file. See option B<-n>." msgstr "liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option B<-n>." #. type: =item #: wcd.pod:454 msgid "B<-N, --numbers>" msgstr "B<-N, --numbers>" #. type: textblock #: wcd.pod:456 msgid "Use numbers instead of letters." msgstr "verwendet Zahlen anstelle von Buchstaben." #. type: textblock #: wcd.pod:458 msgid "Wcd with a conio or curses based interface (see section INTERFACE) presents a match list by default numbered with letters. When the B<-N> option is used the match list is numbered with numbers. Regardless of the B<-N> option one can type a letter or numbers to make a selection from the list of matches." msgstr "Wcd mit einer Conio- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option B<-N> angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option B<-N> können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen." #. type: =item #: wcd.pod:463 msgid "B<-o>" msgstr "B<-o>" #. type: textblock #: wcd.pod:465 msgid "Use stdin/stdout interface." msgstr "verwendet die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe)." #. type: textblock #: wcd.pod:467 msgid "When for some kind of reason the conio or curses interface of wcd does not work one can fall back to the stdin/stdout interface of wcd by using the B<-o> option." msgstr "Falls aus verschiedenen Gründen die conio- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option B<-o> auf die stdin/stdout-Schnittstelle ausweichen." #. type: =item #: wcd.pod:471 msgid "B<-od, --to-stdout>" msgstr "B<-od, --to-stdout>" #. type: textblock #: wcd.pod:473 msgid "Dump all matches to stdout." msgstr "gibt alle Übereinstimmungen in die Standardausgabe aus." #. type: =item #: wcd.pod:475 msgid "B<-q, --quiet>" msgstr "B<-q, --quiet>" #. type: textblock #: wcd.pod:477 msgid "Quieter operation. Printing of the final match is suppressed." msgstr "Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt." #. type: =item #: wcd.pod:479 msgid "B<-r DIR>" msgstr "B<-r VERZEICHNIS>" #. type: textblock #: wcd.pod:481 msgid "Remove directory and remove from the treedata file." msgstr "entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei." #. type: textblock #: wcd.pod:483 msgid "If the directory is empty, wcd will remove it, and try to remove it from the treedata file." msgstr "Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen." #. type: =item #: wcd.pod:486 msgid "B<-rmtree DIR>" msgstr "B<-rmtree VERZEICHNIS>" #. type: textblock #: wcd.pod:488 msgid "Recursively remove directory and remove from the treedata file." msgstr "entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei." #. type: textblock #: wcd.pod:490 msgid "Wcd will remove the directory and all its sub directories and files, and remove the directories from the treedata file." msgstr "Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt." #. type: =item #: wcd.pod:493 msgid "B<-s>" msgstr "B<-s>" #. type: textblock #: wcd.pod:495 msgid "(re)Scan disk from C<$HOME> directory. If I is not defined the disk is scanned from root directory /." msgstr "liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis C<$HOME> ein. Falls I nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen." #. type: textblock #: wcd.pod:498 msgid "The existing default treedata file is overwritten." msgstr "Die existierende vorgegebene Baumdatei wird dabei überschrieben." #. type: textblock #: wcd.pod:500 msgid "The default scan directory can be overruled with environment variable C. See section ENVIRONMENT VARIABLES." msgstr "Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable C außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt UMGEBUNGSVARIABLEN." #. type: =item #: wcd.pod:503 msgid "B<-S PATH>" msgstr "B<-S PFAD>" #. type: textblock #: wcd.pod:505 msgid "Scan directory tree from I and overwrite the default treedata file. See also options B<-A>, B<-s> and B<-E>. E.g. with option B<-A> you can create a default treedata file of your choice. Examples:" msgstr "liest den Verzeichnisbaum aus I und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen B<-A>, B<-s> und B<-E>. Zum Beispiel können Sie mit der Option B<-A> eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele:" #. type: textblock #: wcd.pod:509 msgid "Unix:" msgstr "Unix:" #. type: verbatim #: wcd.pod:511 #, no-wrap msgid "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" msgstr "" " wcd -S /\n" " wcd -S /home -A /etc -A /usr\n" "\n" #. type: textblock #: wcd.pod:514 msgid "DOS/Windows:" msgstr "DOS/Windows:" #. type: verbatim #: wcd.pod:516 #, no-wrap msgid "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" msgstr "" " wcd -S c:/\n" " wcd -S c: -A d: -A \\\\server\\share\n" "\n" #. type: textblock #: wcd.pod:519 msgid "With the Windows versions one can scan all shared directories of a Windows LAN server by typing something like: C." msgstr "Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: C." #. type: =item #: wcd.pod:523 msgid "B<+S PATH>" msgstr "B<-S PFAD>" #. type: textblock #: wcd.pod:525 msgid "Scan disk from I and place relative paths in a relative treedata file. This file is used by the B<-n> and B<+n> options of wcd. E.g. C." msgstr "liest das Laufwerk aus I ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen B<-n> und B<+n> verwendet. Beispiel C." #. type: =item #: wcd.pod:529 msgid "B<-t>" msgstr "B<-t>" #. type: textblock #: wcd.pod:531 msgid "Do not strip tmp mount dir C (Unix only)" msgstr "entfernt das temporäre Einhängeverzeichnis C nicht (nur Unix)." #. type: textblock #: wcd.pod:533 msgid "Wcd strips by default C from the match. Directory C is used by the auto-mounter. This behaviour can be turned off with the B<-t> option." msgstr "Wcd entfernt per Vorgabe C aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option B<-t> abschalten." #. type: =item #: wcd.pod:537 msgid "B<-T, --ascii-tree>" msgstr "B<-T, --ascii-tree>" #. type: textblock #: wcd.pod:539 msgid "Draw tree with ASCII characters. Use this option if line drawing characters are not displayed properly in your terminal." msgstr "zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden." #. type: =item #: wcd.pod:542 msgid "B<-Ta, --alt-tree-nav>" msgstr "B<-Ta, --alt-tree-nav>" #. type: textblock #: wcd.pod:544 msgid "Alternative way of navigation in the graphical tree." msgstr "verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht." #. type: textblock #: wcd.pod:546 msgid "In the default NCD style tree layout the B<-Ta> option disables jumping to unrelated directories." msgstr "In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option B<-Ta> das Springen in beziehungslose Verzeichnisse." #. type: textblock #: wcd.pod:549 msgid "In compact tree mode the alternative mode makes navigation similar to navigation in GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and Down moves the selected folder one line up or down. Pressing Left first folds the sub-folders and the next move left moves really left." msgstr "In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem KDE Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links." #. type: textblock #: wcd.pod:555 msgid "You can switch on-the-fly between default and alternative navigation by pressing ." msgstr "Sie können direkt zwischen dem Vorgabe- und dem Alternativmodus wechseln, indem Sie drücken." #. type: textblock #: wcd.pod:558 msgid "When alternative navigation mode is on, you will see an \"A\" in the lower right corner." msgstr "Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke." #. type: =item #: wcd.pod:560 msgid "B<-TC, --center-tree>" msgstr "B<-TC, --center-tree>" #. type: textblock #: wcd.pod:562 msgid "Centered view in the graphical tree. The selected directory stays in the middle of the screen. The centered mode can also be switched on and off with key in the graphical tree." msgstr "zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste im grafischen Baum an- und abgeschaltet werden." #. type: textblock #: wcd.pod:566 msgid "The standard non-centered behaviour, which minimises tree movement, is the same as in the original NCD." msgstr "Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen NCD." #. type: =item #: wcd.pod:569 msgid "B<-Tc, --compact-tree>" msgstr "B<-Tc, --compact-tree>" #. type: textblock #: wcd.pod:571 msgid "By default the 'graphical' tree is drawn the same way as the original NCD on DOS did it. On DOS a directory path could only be 66 characters in total. With the deep directory structures of today the tree can become very wide. To overcome this wcd can draw the tree in a compact way, similar to most GUI file managers, with only one folder per line. Use option B<-Tc> or switch on-the-fly with the key." msgstr "Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen NCD unter DOS. Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option B<-Tc> oder schalten Sie direkt mit der Taste um." #. type: =item #: wcd.pod:578 msgid "B<-Td, --cjk-width>" msgstr "B<-Td, --cjk-width>" #. type: textblock #: wcd.pod:580 msgid "Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters and line drawing symbols with a column width of 2, while the normal Unicode width for these characters is 1 column. For instance the Chinese CP936 raster font on Windows and the Simsun font. Use this option for a correct outlining of the graphical tree when a legacy CJK font is used." msgstr "Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird." #. type: textblock #: wcd.pod:586 msgid "When CJK mode is on, you will see a \"C\" in the lower right corner." msgstr "Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt." #. type: =item #: wcd.pod:588 msgid "B<-u USER>" msgstr "B<-u BENUTZER>" #. type: textblock #: wcd.pod:590 msgid "Scan treedata file of another user based on I, do not scan your own default treedata file. See also section ENVIRONMENT VARIABLES for I." msgstr "liest die Daten eines anderen Benutzers für die Baumansicht basierend auf I ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch I im Abschnitt UMGEBUNGSVARIABLEN." #. type: textblock #: wcd.pod:593 msgid "On Unix/Cygwin the base directory for user home directories is assumed to be C. Wcd will look for C and C, in that order, and read the first one that exists and is readable. On DOS/Windows the base directory for user home directories is assumed to be C<\\\\users>, so wcd tries to read C<\\\\users\\USER\\treedata.wcd> and C<\\\\users\\USER\\.wcd\\treedata.wcd>." msgstr "Unter Unix/Cygwin wird C als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach C
und C
, in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird C<\\\\users> als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd C<\\\\users\\BENUTZER\\treedata.wcd> und C<\\\\users\\BENUTZER\\.wcd\\treedata.wcd> zu lesen." #. type: =item #: wcd.pod:601 msgid "B<+u USER>" msgstr "B<+u BENUTZER>" #. type: textblock #: wcd.pod:603 msgid "Read default treedata file of USER in addition to your own treedata file." msgstr "liest die vorgegebene Baumansicht-Datei von BENUTZER zusätzlich zu Ihrer eigenen Baumansicht-Datei ein." #. type: =item #: wcd.pod:606 msgid "B<-v, --verbose>" msgstr "B<-v, --verbose>" #. type: textblock #: wcd.pod:608 msgid "Display verbose messages. With this option wcd prints all filters, bans and excludes." msgstr "zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an." #. type: =item #: wcd.pod:611 msgid "B<-V, --version>" msgstr "B<-V, --version>" #. type: textblock #: wcd.pod:613 msgid "Print version information and exit." msgstr "zeigt Versionsinformationen an und beendet das Programm." #. type: =item #: wcd.pod:615 msgid "B<-w, --wild-match-only>" msgstr "B<-w, --wild-match-only>" #. type: textblock #: wcd.pod:617 msgid "Wild matching only. Treat all matches as wild matches." msgstr "zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen." #. type: =item #: wcd.pod:619 msgid "B<-x PATH>" msgstr "B<-x PFAD>" #. type: textblock #: wcd.pod:621 msgid "Exclude I from scanning." msgstr "schließt I vom Einlesen aus." #. type: textblock #: wcd.pod:623 msgid "When this option is used wcd will exclude I and all its subdirectories when wcd is scanning a disk. Wildcards are supported and matched against absolute paths. Option B<-x> can be used multiple times." msgstr "Mit dieser Option schließt wcd I und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option B<-x> kann mehrfach angegeben werden." #. type: verbatim #: wcd.pod:627 #, no-wrap msgid "" " wcd -x -x -s\n" "\n" msgstr "" " wcd -x -x -s\n" "\n" #. type: textblock #: wcd.pod:629 msgid "Option B<-x> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." msgstr "Die Option B<-x> muss vor jeder anderen Einleseoption angegeben werden (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #. type: textblock #: wcd.pod:633 msgid "On DOS/Windows systems one must specify the drive letter depending on if environment variable I or I is set. If I or I is set one needs to specify the drive letter. An example:" msgstr "Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen I oder I gesetzt ist. Falls I oder I gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel:" #. type: verbatim #: wcd.pod:637 #, no-wrap msgid "" " wcd -x c:/temp -S c:\n" "\n" msgstr "" " wcd -x c:/temp -S c:\n" "\n" #. type: textblock #: wcd.pod:639 msgid "Otherwise do not specify drive letter." msgstr "Anderenfalls geben Sie keinen Laufwerksbuchstaben an." #. type: verbatim #: wcd.pod:641 #, no-wrap msgid "" " wcd -x /temp -s\n" "\n" msgstr "" " wcd -x /temp -s\n" "\n" #. type: =item #: wcd.pod:644 msgid "B<-xf FILE>" msgstr "B<-xf DATEI>" #. type: textblock #: wcd.pod:646 msgid "Exclude all paths listed in I from scanning." msgstr "schließt alle in I aufgelisteten Pfade vom Einlesen aus." #. type: textblock #: wcd.pod:648 msgid "When this option is used wcd will exclude all paths listed in I and all their subdirectories when wcd is scanning a disk. Wildcards are supported and they are matched against absolute paths; one path per line. Be aware that wcd will not ignore leading or trailing blanks on a line, because they are legal characters in a directory name. Option B<-xf> can be used multiple times. When one wants to exclude all banned paths from scanning one can do the following (example for wcd on unix):" msgstr "Wenn diese Option ausgewählt ist, schließt wcd alle in I aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option B<-xf> kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix):" #. type: verbatim #: wcd.pod:656 #, no-wrap msgid "" " wcd -xf ~/.ban.wcd -s\n" "\n" msgstr "" " wcd -xf ~/.ban.wcd -s\n" "\n" #. type: textblock #: wcd.pod:658 msgid "Wildcards are supported. For instance to exclude all your Subversion directories with administrative files add a line with C<*/.svn>." msgstr "Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit C<*/.svn> hinzu." #. type: textblock #: wcd.pod:661 msgid "Option B<-xf> must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." msgstr "Die Option B<-xf> muss vor jeder anderen Einleseoption angegeben werden (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #. type: =item #: wcd.pod:664 msgid "B<-y, --assume-yes>" msgstr "B<-y, --assume-yes>" #. type: textblock #: wcd.pod:666 msgid "Assume Yes on all queries." msgstr "beantwortet alle Abfragen automatisch mit »ja«." #. type: textblock #: wcd.pod:668 msgid "Wcd will not prompt the user with yes/no questions, but assumes the user answers yes on all questions. This can be used in combination with option B<-rmtree>. This option must be used in front of options that can lead to yes/no questions." msgstr "Wcd gibt keine Ja-/Nein-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option B<-rmtree> verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja-/Nein-Abfragen führen könnten." #. type: =item #: wcd.pod:673 msgid "B<-z NUMBER>" msgstr "B<-z ZAHL>" #. type: textblock #: wcd.pod:675 msgid "Set maximum stack size to NUMBER." msgstr "setzt die maximale Stapelgröße auf ZAHL." #. type: textblock #: wcd.pod:677 msgid "The default size of the stack is 10. Stack operation can be turned off by setting the size to 0. This option must be used in front of any other stack operations (B<->,B<+>,B<=>). Otherwise the size of the stack will be set back to the default 10." msgstr "Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (B<->,B<+>,B<=>). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt." #. type: textblock #: wcd.pod:682 msgid "A correct command is:" msgstr "Ein korrekter Befehl ist:" #. type: verbatim #: wcd.pod:684 #, no-wrap msgid "" " wcd -z 50 -\n" "\n" msgstr "" " wcd -z 50 -\n" "\n" #. type: textblock #: wcd.pod:686 msgid "The new stack size will be 50, wcd will go one directory back. A wrong command is:" msgstr "Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre:" #. type: verbatim #: wcd.pod:689 #, no-wrap msgid "" " wcd - -z 50\n" "\n" msgstr "" " wcd - -z 50\n" "\n" #. type: textblock #: wcd.pod:691 msgid "Wcd goes one directory back, the stack gets the default size 10. The B<-z 50> is ignored." msgstr "Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument B<-z 50> wird ignoriert." #. type: textblock #: wcd.pod:694 msgid "Add this option as the first option to your wcd alias or function. E.g. for the a POSIX compatible shell this would be:" msgstr "Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das:" #. type: verbatim #: wcd.pod:697 #, no-wrap msgid "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" "\twcd.exe -z 50 \"$@\"\n" "\t. ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: =item #: wcd.pod:703 msgid "B<-[NUMBER]>" msgstr "B<-[ZAHL]>" #. type: textblock #: wcd.pod:705 msgid "Push dir NUMBER of times. Default is one." msgstr "legt ein Verzeichnis auf den Stapel (ZAHL mal). Vorgabe ist 1." #. type: textblock #: wcd.pod:707 msgid "Go back a directory. Command C goes one directory back. To go more directories back add a number to it. E.g. command C. The stack is cyclic." msgstr "Geht ein Verzeichnis zurück. Der Befehl C geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls C. Der Stapel ist zyklisch." #. type: =item #: wcd.pod:711 msgid "B<+[NUMBER]>" msgstr "B<+[ZAHL]>" #. type: textblock #: wcd.pod:713 msgid "Pop dir NUMBER of times. Default is one." msgstr "nimmt ein Verzeichnis vom Stapel (ZAHL mal). Vorgabe ist 1." #. type: textblock #: wcd.pod:715 msgid "Go forward a directory. Command C goes one directory forward. To go more directories forward add a number to it. E.g. command C. The stack is cyclic." msgstr "Geht ein Verzeichnis vor. Der Befehl C geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls C. Der Stapel ist zyklisch." #. type: =item #: wcd.pod:719 msgid "B<=>" msgstr "B<=>" #. type: textblock #: wcd.pod:721 msgid "Show stack." msgstr "zeigt den Stapel an." #. type: textblock #: wcd.pod:723 msgid "Use this option if you do not know anymore how many times to push or pop. The stack is printed and you can choose a number. The current place in the stack is marked with an asterisk C<*>." msgstr "Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk C<*> markiert." #. type: =head1 #: wcd.pod:729 msgid "INSTALLATION" msgstr "INSTALLATION" #. type: textblock #: wcd.pod:731 msgid "The current working directory of a Unix shell can only be changed by the builtin cd(1) command. Therefore the program is always called by a function or an alias. The function or alias sources a shell script (go-script) which is generated by the wcd program. Wcd can only work after the function or alias is defined." msgstr "Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten cd(1)-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde." #. type: textblock #: wcd.pod:737 msgid "Another important influence on your installation is the definition of environment variables I and I. See section ENVIRONMENT VARIABLES." msgstr "Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen I und I. Siehe den Abschnitt UMGEBUNGSVARIABLEN." #. type: =head2 #: wcd.pod:741 msgid "Install for POSIX type shells" msgstr "Installation für POSIX-Shells" #. type: textblock #: wcd.pod:743 msgid "For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the following function to the shell startup file (e.g. Bash uses C<$HOME/.bashrc>):" msgstr "Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem MSYS fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel C<$HOME/.bashrc>):" #. type: verbatim #: wcd.pod:747 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/bin/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:753 msgid "Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start new shell." msgstr "I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell." #. type: textblock #: wcd.pod:756 msgid "The location of the go-script C differs per shell." msgstr "Der Ort des Go-Skripts C ist abhängig von der Shell selbst." #. type: textblock #: wcd.pod:758 msgid "Wcd for DJGPP DOS bash requires a different function. The go script is not written in a directory C, and if I and I are both not defined the go-script is written on c:/." msgstr "Wcd für die auf DJGPP basierende DOS-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis C gespeichert, und falls weder I noch I definiert sind, wird das Go-Skript nach c:/ geschrieben." #. type: verbatim #: wcd.pod:762 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME:-\"c:\"}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:768 msgid "The WinZsh version of wcd is also a bit different. No C directory." msgstr "Die WinZsh-Version von wcd ist auch etwas anders. Es gibt kein C-Verzeichnis." #. type: verbatim #: wcd.pod:770 #, no-wrap msgid "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" msgstr "" " wcd ()\n" " {\n" " /wcd.exe \"$@\"\n" " . ${WCDHOME:-${HOME}}/wcd.go\n" " }\n" "\n" #. type: textblock #: wcd.pod:776 msgid "See section FILES for more information." msgstr "Weitere Informationen finden Sie im Abschnitt DATEIEN." #. type: =head2 #: wcd.pod:778 msgid "Install for C-alike shells (csh, tcsh)" msgstr "Installation für C-ähnliche Shells (csh, tcsh)" #. type: textblock #: wcd.pod:780 msgid "Add the following alias to the shell startup file C<$HOME/.cshrc> or C<$HOME/.tcshrc> :" msgstr "Fügen Sie den folgenden Alias zur Shell-Startdatei C<$HOME/.cshrc> oder C<$HOME/.tcshrc> hinzu:" #. type: verbatim #: wcd.pod:783 #, no-wrap msgid "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" msgstr "" " if ( ${?WCDHOME} ) then\n" " alias wcd \"/wcd.exe \\!* ; source $WCDHOME/bin/wcd.go\"\n" " else\n" " alias wcd \"/wcd.exe \\!* ; source $HOME/bin/wcd.go\"\n" " endif\n" "\n" #. type: textblock #: wcd.pod:789 msgid "Replace I with the location where the wcd executable has been installed. Reload the shell initialization files or start a new shell." msgstr "I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell." #. type: =head2 #: wcd.pod:793 msgid "Windows Command Prompt version" msgstr "Version für den Windows-Befehlszeileninterpreter" #. type: textblock #: wcd.pod:795 msgid "Unpack the zip file and add directory C to your environment variable I." msgstr "Entpacken Sie die Zip-Datei und fügen Sie den Ordner C zu Ihrer Umgebungsvariable I hinzu." #. type: textblock #: wcd.pod:798 msgid "In Windows Command Prompt a Windows program cannot change the current work directory, but a .bat file can. The batch scrip C runs the wcd program which generates a new batch script C. Then C runs C which actually changes the directory." msgstr "Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat-Datei möglich. Das Batch-Skript C ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript C erzeugt. Dann führt C wiederum C aus, welches tatsächlich das Verzeichnis wechselt." #. type: =head2 #: wcd.pod:803 msgid "Windows VISTA and higher" msgstr "Windows VISTA und neuer" #. type: textblock #: wcd.pod:805 msgid "In a Windows VISTA and higher Command Prompt you may have limited access to directories. To get access to more directories you need administrator rights. You can get a Command Prompt with administrator rights if you right click on the Command Prompt icon and select I." msgstr "Im Befehlszeileninterpreter in Windows VISTA oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und I wählen." #. type: =head2 #: wcd.pod:810 msgid "Windows PowerShell version" msgstr "Version für die Windows PowerShell" #. type: textblock #: wcd.pod:812 msgid "Add the following function to your PowerShell user profile. The location of this profile is stored in the $profile variable. It is required that one of the environment variables I or I is defined." msgstr "Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable $profile bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen I oder I definiert ist." #. type: verbatim #: wcd.pod:816 #, no-wrap msgid "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" msgstr "" " function wcd\n" " {\n" " \\wcdwin32psh.exe $args\n" " & $env:HOME\\wcdgo.ps1\n" " }\n" "\n" #. type: textblock #: wcd.pod:822 msgid "Replace I with the location where the wcd executable has been installed. Start a new PowerShell. Wcd for PowerShell supports only the file system provider. No other providers." msgstr "I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber." #. type: =head2 #: wcd.pod:826 msgid "OS/2 Command Prompt version" msgstr "Version für den Befehlszeileninterpreter von OS/2" #. type: textblock #: wcd.pod:828 msgid "In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work directory. That is why wcd generates a command script C which must be executed in the current shell. The script C first executes C, which creates the C script. Then C executes the C script." msgstr "Im Befehlszeileninterpreter von OS/2 (cmd.exe) kann ein OS/2-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript C, das in der aktuellen Shell ausgeführt werden muss. Das Skript C führt zuerst C aus, welches seinerseits das Skript C erzeugt. Danach führt C das Skript C aus." #. type: =head1 #: wcd.pod:835 msgid "LOCALIZATION" msgstr "LOKALISIERUNG" #. type: =item #: wcd.pod:839 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:841 msgid "The primary language is selected with the environment variable I. The I variable consists out of several parts. The first part is in small letters the language code. The second one is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells:" msgstr "Die primäre Sprache wird durch die Umgebungsvariable I festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells:" #. type: verbatim #: wcd.pod:848 #, no-wrap msgid "" " export LANG=nl Dutch\n" " export LANG=nl_NL Dutch, The Netherlands\n" " export LANG=nl_BE Dutch, Belgium\n" " export LANG=es_ES Spanish, Spain\n" " export LANG=es_MX Spanish, Mexico\n" " export LANG=en_US.iso88591 English, USA, Latin-1 encoding\n" "\n" msgstr "" " export LANG=de Deutsch\n" " export LANG=de_DE Deutsch, Deutschland\n" " export LANG=de_CH Deutsch, Schweiz\n" " export LANG=es_ES Spanisch, Spanien\n" " export LANG=es_MX Spanisch, Mexiko\n" " export LANG=en_US.iso88591 English, USA, Latin-1-Zeichenkodierung\n" "\n" #. type: textblock #: wcd.pod:855 msgid "For a complete list of language and country codes see the gettext(1) manual: L On Unix systems you can use to command locale(1) to get locale specific information." msgstr "Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu gettext(1): L. Auf Unix-Systemen können Sie den Befehl locale(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten." #. type: =item #: wcd.pod:861 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:863 msgid "With the I environment variable you can specify a priority list of languages, separated by colons. Wcd gives preference to I over I. For instance, first Dutch and then German: C. You have to first enable localization, by setting I or I to a value other than I, before you can use a language priority list through the I variable. See also the gettext(1) manual: L" msgstr "Mit der Umgebungsvariable I können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt I vor I den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: C. Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable I oder I auf einen anderen Wert als I setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: L" #. type: textblock #: wcd.pod:871 msgid "If you select a language which is not available you will get the standard English messages." msgstr "Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache." #. type: =item #: wcd.pod:874 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:876 msgid "With the environment variable I the I used during compilation and installation of wcd can be overruled. I is used by wcd with native language support to find the language files. The GNU default value is C. By typing C wcd will print the I that is used." msgstr "Mit der Umgebungsvariable I kann die während der Kompilierung und Installation verwendete Variable I außer Kraft gesetzt werden. I wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist C. Nach Eingabe von C wird das von wcd verwendete I angezeigt." #. type: textblock #: wcd.pod:882 msgid "If you have installed wcd in a different directory than the default directory you may need to set the environment variable I to point to the locale directory." msgstr "Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable I setzen, die auf das Verzeichnis mit den Sprachdateien zeigt." #. type: textblock #: wcd.pod:887 msgid "An example for Windows cmd:" msgstr "Ein Beispiel für den Windows-Befehlszeileninterpreter:" #. type: verbatim #: wcd.pod:889 #, no-wrap msgid "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" msgstr "" " set WCDLOCALEDIR=c:/my_prefix/share/locale\n" "\n" #. type: textblock #: wcd.pod:892 msgid "An example for a POSIX shell:" msgstr "Ein Beispiel für eine POSIX-Shell:" #. type: verbatim #: wcd.pod:894 #, no-wrap msgid "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" msgstr "" " export WCDLOCALEDIR=$HOME/share/locale\n" "\n" #. type: =item #: wcd.pod:896 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:898 msgid "When there are multiple directory matches wcd presents a sorted list. The sorting depends on the locale settings. If the environment I has been set the matches are sorted like dictionaries or phone books are sorted in that language. For instance dots and dashes are ignored, or letters e with and without accent are equal, or upper and lower case is ignored." msgstr "Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable I gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß-/Kleinschreibung wird nicht berücksichtigt." #. type: textblock #: wcd.pod:904 msgid "The sorting gives preference to environment variable I over I. If you make I equal to C or C, locale sorting is turned off. For instance if you want Dutch language, but not Dutch sorting, you can do something like this:" msgstr "Die Sortierung bevorzugt die Umgebungsvariable I vor I. Falls Sie I auf C oder C setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes:" #. type: verbatim #: wcd.pod:909 #, no-wrap msgid "" " export LANG=nl_NL\n" " export LC_COLLATE=C\n" "\n" msgstr "" " export LANG=de_DE\n" " export LC_COLLATE=C\n" "\n" #. type: =item #: wcd.pod:912 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:914 msgid "With regard to character encoding Wcd will give preference to variable I over I. For instance to set character encoding to UTF-8 the following environment setting can be done." msgstr "Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable I vor I. Um beispielsweise die Zeichenkodierung auf UTF-8 zu setzen, können Sie Folgendes ausführen:" #. type: verbatim #: wcd.pod:918 #, no-wrap msgid "" " export LC_CTYPE=en_US.UTF-8\n" "\n" msgstr "" " export LC_CTYPE=en_US.UTF-8\n" "\n" #. type: =item #: wcd.pod:920 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:922 msgid "All locale environment variables that start with I are overruled by the environment variable I if it is defined. Wcd gives preference to I over I and I." msgstr "Alle lokalen Umgebungsvariablen, die mit I beginnen, werden durch die Umgebungsvariable I außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt I vor I und I." #. type: =head2 #: wcd.pod:929 msgid "WINDOWS CODE PAGES" msgstr "WINDOWS CODE PAGES" #. type: textblock #: wcd.pod:931 msgid "There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI). The default encoding for Windows, when configured with Western regional settings, is ANSI CP1252. Windows programs, for instance notepad, use this default system ANSI code page. The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility with DOS programs. If you use a DOS version of wcd in a Windows console it will work, because of the DOS code page. But the DOS version of wcd lacks support for long directory names and network drives on Windows." msgstr "Es gibt zwei Gruppen von Codepages, die DOS Codepages (OEM) und die Windows Codepages (ANSI). Die vorgegebene Zeichenkodierung für Windows ist ANSI CP1252, wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (CP437 oder CP850), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke." #. type: textblock #: wcd.pod:940 msgid "The Windows version of wcd is a native Windows program and will use the Windows system ANSI code page. So on a Western regional Windows it will use code page CP1252 for directory names and messages. In order to get consistent output, independent of the active code page, all Windows versions of Wcd translate ANSI output to Unicode output in the Command Prompt and PowerShell." msgstr "Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage CP1252 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben." #. type: textblock #: wcd.pod:946 msgid "The console raster font only supports the original OEM code page installed with Windows, so you have to change the console's font to true type Lucida Console to make Unicode (and ANSI) letters appear correctly." msgstr "Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode- und ANSI-Zeichen korrekt angezeigt werden." #. type: textblock #: wcd.pod:950 msgid "Non-Unicode versions of Wcd I use plain ANSI output. For these older versions the code page of the console has to be made equal to the system code page (changed to 1252) to make wcd for Windows work properly with special characters such as accented characters or the Euro symbol." msgstr "Die Nicht-Unicode-Versionen von Wcd I verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann." #. type: textblock #: wcd.pod:955 msgid "The Windows system code page can be changed via the Control Panel regional options. The Windows console code page is changed with the C command." msgstr "Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl C geändert." #. type: textblock #: wcd.pod:958 msgid "When you type C, the actual character encoding used by wcd is shown. Type the command C to display the active code page of the Windows console." msgstr "Wenn Sie C eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl C ein, um die aktive Codepage für die Windows-Konsole anzuzeigen." #. type: =head2 #: wcd.pod:963 msgid "UNICODE" msgstr "UNICODE" #. type: textblock #: wcd.pod:965 msgid "Wcd has optional support for Unicode. To see if wcd was built with Unicode support type C. If your terminal/console and font supports it, you should see the Euro symbol and Chinese characters (meaning: \"Chinese\")." msgstr "Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode-Unterstützung erstellt wurde, geben Sie C ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat)." #. type: textblock #: wcd.pod:970 msgid "Wcd has been I converted to Unicode. In its core wcd handles all data as a stream of bytes. Only the lines printed to screen are on the fly converted to Unicode wide characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also L" msgstr "Wcd wurde »weich« auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF-8-spezifischen Code. Siehe auch L." #. type: textblock #: wcd.pod:976 msgid "Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd has normalisation support type C. Wcd with Unicode normalization support will match Unicode names based on I equivalence. Without Unicode normalization support, names are matched when they are binary equivalent. See also L" msgstr "Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie C ein. Wcd mit Unicode-Normalisierung findet Treffer mittels I Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch L." #. type: =head3 #: wcd.pod:983 msgid "UTF-8 on Unix/Linux" msgstr "UTF-8 unter Unix/Linux" #. type: textblock #: wcd.pod:985 msgid "In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance with" msgstr "Um UTF-8-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch UTF-8 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF-8-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie xterm(1) mit einer UTF-8-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646-1, zum Beispiel mit" #. type: verbatim #: wcd.pod:990 #, no-wrap msgid "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" msgstr "" " LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'\n" "\n" #. type: textblock #: wcd.pod:992 msgid "Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character encodings should also work, but that has not been tested." msgstr "Moderne GNU-Linux-Distributionen unterstützen UTF-8 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet." #. type: textblock #: wcd.pod:995 msgid "Wcd assumes that the treedata files are encoded in the locale character encoding. There are no Byte Order Marks written to treedata files." msgstr "Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben." #. type: =head3 #: wcd.pod:999 msgid "UTF-16 on Windows" msgstr "UTF-16 unter Windows" #. type: textblock #: wcd.pod:1001 msgid "On Windows Unicode is supported in all versions of PowerShell, and in Windows Command Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP Software, which can be used on older Windows versions (XP/Vista)." msgstr "Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder TCC/LE von JP Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista)." #. type: textblock #: wcd.pod:1006 msgid "On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode Windows programs the Unicode characters are translated to the default ANSI code page. For characters that are not part of the regional setting this translation is not possible and non-Unicode programs print a question mark or a wrong character instead." msgstr "Unter Windows sind alle Verzeichnisnamen in Unicode UTF-16 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus." #. type: textblock #: wcd.pod:1012 msgid "Wcd with Unicode support will read the UTF-16 encoded directory names and converts them internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8." msgstr "Wcd mit Unicode-Unterstützung liest die in UTF-16 kodierten Verzeichnisnamen und wandelt diese intern in UTF-8 um. Alle Baumdateien sind in UTF-8 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in UTF-8 kodiertes Go-Skript." #. type: textblock #: wcd.pod:1017 msgid "All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided there is an UTF-8 BOM in the script." msgstr "Alle Versionen der Windows Powershell können in UTF-8 kodierte Skripte ausführen, sofern sich im Skript eine BOM (Bytereihenfolge-Markierung) für UTF-8 befindet." #. type: textblock #: wcd.pod:1020 msgid "Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch script to a directory with Unicode letters in the name. The directory name needs to be encoded in UTF-8, and the batch script must I have a BOM. The active code page of the Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command Prompt will create such a go script C. It first changes the code page to 65001, then changes directory, and finally sets the code page back to the original code page." msgstr "Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in UTF-8 kodiert sein, und das Batch-Skript I (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (UTF-8) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript C. Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück." #. type: textblock #: wcd.pod:1028 msgid "You need to set the font to True Type Lucida Console (not raster font) when letters don't appear correctly." msgstr "Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden." #. type: textblock #: wcd.pod:1031 msgid "The non-Unicode Windows version of Wcd can read Unicode treedata files since version 5.2.0, provided there is a Byte Order Mark (BOM) in the file (see L), but it can't change to directories with Unicode letters in the name that are not part of the default system ANSI code page. The Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since version 5.2.0, which makes them also readable by notepad." msgstr "Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine BOM (Markierung der Bytereihenfolge) in der Datei befindet (siehe L). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine BOM in die in UTF-8 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind." #. type: =head3 #: wcd.pod:1040 msgid "UTF-8 on Cygwin" msgstr "UTF-8 unter Cygwin" #. type: textblock #: wcd.pod:1042 msgid "Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character encoding to UTF-8 with the I or I environment variable. You may need to rescan your drives. You need to set the font to True Type Lucida Console (not raster font) if you use the default Cygwin console." msgstr "Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF-16-Namen unter Windows in UTF-8 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF-8-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable I oder I auf UTF-8. Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden." #. type: textblock #: wcd.pod:1050 msgid "The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in the treedata files, and it is assumed they are encoded in the B locale character encoding." msgstr "Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (BOM) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in B vorgegeben ist." #. type: =head1 #: wcd.pod:1054 msgid "FILES" msgstr "DATEIEN" #. type: textblock #: wcd.pod:1056 msgid "If the environment variable I is set wcd will use I instead of I. All C<*.wcd> files are text files. They can be edited with a text editor. The Windows Command Prompt version of wcd behaves as the DOS version. The Cygwin version of wcd behaves as the Unix version." msgstr "Falls die Umgebungsvariable I gesetzt ist, verwendet wcd I anstelle von I. Alle C<*.wcd>-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version." #. type: =item #: wcd.pod:1065 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1067 msgid "The program. In Unix shells the program is always called by a function or alias, because the current working directory of a Unix shell can only be changed by the builtin cd command. See also section INSTALLATION." msgstr "Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt INSTALLATION." #. type: =item #: wcd.pod:1072 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1074 msgid "This is the default treedata file where wcd searches for matches. If it is not readable wcd will create a new one." msgstr "Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei." #. type: verbatim #: wcd.pod:1077 #, no-wrap msgid "" " DOS: \\treedata.wcd or %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" msgstr "" " DOS: \\treedata.wcd or %HOME%\\treedata.wcd\n" " Unix: $HOME/.treedata.wcd\n" "\n" #. type: =item #: wcd.pod:1080 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1082 msgid "An optional extra treedata file. If it exists and is readable wcd will try to find matches in this file also." msgstr "Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern." #. type: verbatim #: wcd.pod:1085 #, no-wrap msgid "" " DOS: \\extra.wcd or %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" msgstr "" " DOS: \\extra.wcd or %HOME%\\extra.wcd\n" " Unix: $HOME/.extra.wcd\n" "\n" #. type: =item #: wcd.pod:1088 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1090 msgid "In this optional file wcd places banned paths. See option B<-b>. Wildcards are supported." msgstr "In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option B<-b>. Platzhalter werden unterstützt." #. type: verbatim #: wcd.pod:1093 #, no-wrap msgid "" " DOS: \\ban.wcd or %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" msgstr "" " DOS: \\ban.wcd or %HOME%\\ban.wcd\n" " Unix: $HOME/.ban.wcd\n" "\n" #. type: =item #: wcd.pod:1096 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1098 msgid "Optional file with wcd aliases. See option B<-l>." msgstr "Optionale Datei mit Aliasen für wcd. Siehe Option B<-l>." #. type: verbatim #: wcd.pod:1100 #, no-wrap msgid "" " DOS: \\alias.wcd or %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" msgstr "" " DOS: \\alias.wcd or %HOME%\\alias.wcd\n" " Unix: $HOME/.alias.wcd\n" "\n" #. type: =item #: wcd.pod:1103 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1105 msgid "In this file wcd stores its stack. The drive letter can be changed with the B<-d> option." msgstr "In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option B<-d> geändert werden." #. type: verbatim #: wcd.pod:1108 #, no-wrap msgid "" " DOS: c:\\stack.wcd or %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" msgstr "" " DOS: c:\\stack.wcd or %HOME%\\stack.wcd\n" " Unix: $HOME/.stack.wcd\n" "\n" #. type: textblock #: wcd.pod:1111 msgid "The name of the stack file can be changed with environment variable I. See section ENVIRONMENT VARIABLES." msgstr "Der Name der Stapeldatei kann mit der Umgebungsvariable I geändert werden. Siehe Abschnitt UMGEBUNGSVARIABLEN." #. type: =item #: wcd.pod:1114 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1116 msgid "This is the shell script which wcd.exe creates each time. It is sourced via a function or an alias. The drive letter can be changed with the B<-d> option. For history reasons it is placed by default in C<$HOME/bin> on Unix systems. The directory of this file can be changed with the option B<-G>." msgstr "Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option B<-d> geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in C<$HOME/bin> gespeichert. Das Verzeichnis für diese Datei kann mit der Option B<-G> geändert werden." #. type: verbatim #: wcd.pod:1121 #, no-wrap msgid "" " DOS bash: c:/wcd.go or $HOME/wcd.go\n" " Windows Command Prompt: c:\\wcdgo.bat or %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2 Command Prompt: c:\\wcdgo.cmd or %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" msgstr "" " DOS Bash: c:/wcd.go oder $HOME/wcd.go\n" " Windows Befehlszeileninterpreter: c:\\wcdgo.bat oder %HOME%\\wcdgo.bat\n" " Windows PowerShell: $env:HOME\\wcdgo.ps1\n" " WinZsh: $HOME/wcd.go\n" " Cygwin/MSYS: $HOME/bin/wcd.go\n" " OS/2-Befehlszeileninterpreter: c:\\wcdgo.cmd oder %HOME%\\wcdgo.cmd\n" " Unix: $HOME/bin/wcd.go\n" "\n" #. type: =item #: wcd.pod:1129 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1131 msgid "Text file with relative paths from I. See options B<+S>, B<-n> and B<+n>." msgstr "Textdatei mit relativen Pfaden von I. Siehe die Optionen B<+S>, B<-n> und B<+n>." #. type: verbatim #: wcd.pod:1134 #, no-wrap msgid "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" msgstr "" " DOS: \\rtdata.wcd\n" " Unix: /.rtdata.wcd\n" "\n" #. type: =head1 #: wcd.pod:1139 msgid "ENVIRONMENT VARIABLES" msgstr "UMGEBUNGSVARIABLEN" #. type: =item #: wcd.pod:1143 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1145 msgid "Wcd uses by default environment variable I to determine where to store its files. See also section FILES. This can be overruled with environment variable I." msgstr "Wcd verwendet per Vorgabe die Umgebungsvariable I, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt DATEIEN. Dies kann mit der Umgebungsvariable I außer Kraft gesetzt werden." #. type: textblock #: wcd.pod:1149 msgid "I also defines where to start scanning the disk when option B<-s> is used. This can be overruled with the environment variable I." msgstr "I legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option B<-s> verwendet wird. Dies kann mit der Umgebungsvariable I außer Kraft gesetzt werden." #. type: textblock #: wcd.pod:1153 msgid "For the Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version it is required that I or I is set. For the other versions of wcd the use of these variables is optional." msgstr "In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und MSYS ist es erforderlich, dass I oder I gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional." #. type: textblock #: wcd.pod:1157 msgid "If I is set on DOS/Windows, wcd will place all its files (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) in directory I. The behaviour of wcd is then equal to the Unix version of wcd. Wcd will scan the disk default from I. Drives will not be automatically scanned by changing to them. You need to tell wcd explicitly. E.g.:" msgstr "Falls I unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis I. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus I ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel:" #. type: verbatim #: wcd.pod:1164 #, no-wrap msgid "" " wcd -S c: -A d: -A e:\n" "\n" msgstr "" " wcd -S c: -A d: -A e:\n" "\n" #. type: textblock #: wcd.pod:1166 msgid "Matching of directories is now global over all scanned drives." msgstr "Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt." #. type: =item #: wcd.pod:1169 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1171 msgid "Environment variable I can be used to change the location of wcd's files. If both I and I are set, I will be used instead of I." msgstr "Mit der Umgebungsvariable I können Sie den Ort der Dateien von wcd ändern. Falls sowohl I als auch I gesetzt ist, wird I anstelle von I verwendet." #. type: textblock #: wcd.pod:1175 msgid "In wcd versions prior to 5.1.5 I also changed the default scan directory. This has changed. Since version 5.1.5 I does not change the default scan directory. See option B<-s>. From version 5.1.5, use environment I to overrule the default scan directory." msgstr "In Wcd-Versionen vor 5.1.5 wurde durch I auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option B<-s>. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable I, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen." #. type: textblock #: wcd.pod:1180 msgid "Example for DOS, Windows, OS/2 Command Prompt:" msgstr "Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:" #. type: verbatim #: wcd.pod:1182 #, no-wrap msgid "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" msgstr "" " set WCDHOME=C:\\Users\\erwin\\wcd\n" "\n" #. type: textblock #: wcd.pod:1184 wcd.pod:1205 wcd.pod:1225 wcd.pod:1250 msgid "An example for POSIX type shells:" msgstr "Ein Beispiel für POSIX-Shells:" #. type: verbatim #: wcd.pod:1186 #, no-wrap msgid "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" msgstr "" " export WCDHOME=\"$HOME/.wcd\"\n" "\n" #. type: textblock #: wcd.pod:1188 wcd.pod:1209 wcd.pod:1229 wcd.pod:1254 msgid "An example for Csh type shells:" msgstr "Ein Beispiel für Csh-Shells:" #. type: verbatim #: wcd.pod:1190 #, no-wrap msgid "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" msgstr "" " setenv WCDHOME \"$HOME/.wcd\"\n" "\n" #. type: =item #: wcd.pod:1192 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1194 msgid "Use environment variable I to overrule the default scan directory I. Define a colon separated list (Unix) to define more than one directory. On DOS/Windows make the list semi-colon separated." msgstr "Verwenden Sie die Umgebungsvariable I, um die Einstellung des vorgegebenen Einleseverzeichnisses I außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen." #. type: textblock #: wcd.pod:1199 msgid "Examples for DOS, Windows, OS/2 Command Prompt:" msgstr "Beispiel für die Befehlszeileninterpreter von DOS, Windows und OS/2:" #. type: verbatim #: wcd.pod:1201 #, no-wrap msgid "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" msgstr "" " set WCDSCAN=C:\\Users\\erwin;D:\\data\n" "\n" #. type: verbatim #: wcd.pod:1203 #, no-wrap msgid "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" msgstr "" " set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\\\projectdrive\\projectX\n" "\n" #. type: verbatim #: wcd.pod:1207 #, no-wrap msgid "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " export WCDSCAN=\"$HOME:/projectdisk/projectX\"\n" "\n" #. type: verbatim #: wcd.pod:1211 #, no-wrap msgid "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" msgstr "" " setenv WCDSCAN \"$HOME:/projectdisk/projectX\"\n" "\n" #. type: =item #: wcd.pod:1213 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1215 msgid "Specify filters with environment variable I. All directories that do not match the filter(s) are ignored. A list can be specified by separating filters by the shell path separator. Similar as specifying the I variable. The case sensitivity is mandated by the Operating system." msgstr "Geben Sie Filter mit der Umgebungsvariable I an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable I. Ob dabei Groß-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab." #. type: textblock #: wcd.pod:1221 wcd.pod:1246 msgid "An example for DOS, Windows, OS/2 Command Prompt:" msgstr "Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:" #. type: verbatim #: wcd.pod:1223 #, no-wrap msgid "" " set WCDFILTER=projects;doc\n" "\n" msgstr "" " set WCDFILTER=projects;doc\n" "\n" #. type: verbatim #: wcd.pod:1227 #, no-wrap msgid "" " export WCDFILTER=\"projects:doc\"\n" "\n" msgstr "" " export WCDFILTER=\"projects:doc\"\n" "\n" #. type: verbatim #: wcd.pod:1231 #, no-wrap msgid "" " setenv WCDFILTER \"projects:doc\"\n" "\n" msgstr "" " setenv WCDFILTER \"projects:doc\"\n" "\n" #. type: =item #: wcd.pod:1233 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1235 msgid "The paths specified with environment I will be banned by wcd. See also option B<-b>. Specify a list of paths separated by shell I separator." msgstr "Die in der Umgebungsvariable I angegebenen Pfade werden gebannt, siehe auch die Option B<-b>. Geben Sie eine Liste der Pfade an, durch das I-Trennzeichen der Shell getrennt." #. type: =item #: wcd.pod:1239 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1241 msgid "The paths specified with environment I will be excluded by wcd. See also options B<-x> and B<-xf>. Specify a list of paths separated by shell I separator." msgstr "Die in der Umgebungsvariable I angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen B<-x> und B<-xf>. Geben Sie eine Liste der Pfade an, durch das I-Trennzeichen der Shell getrennt." #. type: verbatim #: wcd.pod:1248 #, no-wrap msgid "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" msgstr "" " set WCDEXCLUDE=*/windows;*/temp;*CVS\n" "\n" #. type: verbatim #: wcd.pod:1252 #, no-wrap msgid "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " export WCDEXCLUDE=\"/dev:/tmp:*CVS\"\n" "\n" #. type: verbatim #: wcd.pod:1256 #, no-wrap msgid "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" msgstr "" " setenv WCDEXCLUDE \"/dev:/tmp:*CVS\"\n" "\n" #. type: =item #: wcd.pod:1258 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1260 msgid "Set the base of user's home directories. On DOS/Windows the default value is C<\\\\users>. On Unix/Cygwin the default value is C. This variable is used to scan treedata files of other users. See also options B<-u> and B<+u>. In verbose mode wcd will print all filters, bans and excludes. See option B<-v>." msgstr "Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert C<\\\\users>. Unter Unix/Cygwin ist C die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen B<-u> und B<+u>. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option B<-v>." #. type: =item #: wcd.pod:1267 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1269 msgid "Wcd gives preference to I over the default stack file name (see section FILES). With this variable each shell (or used terminal emulator) can have its private stack of used directories." msgstr "Wcd bevorzugt I gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt DATEIEN). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben." #. type: textblock #: wcd.pod:1273 msgid "To use a unique time based YYYYMMDD-HHMMSS file for each opened interactive shell." msgstr "So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell:" #. type: verbatim #: wcd.pod:1276 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)\n" "\n" #. type: textblock #: wcd.pod:1278 msgid "For a stack per xterm(1), use the xterm I environment variable:" msgstr "Für einen Stapel pro xterm(1) verwenden Sie die Umgebungsvariable I:" #. type: verbatim #: wcd.pod:1280 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID\n" "\n" #. type: textblock #: wcd.pod:1282 msgid "For GNU screen(1), to use stack per screen:" msgstr "Einen Stapel pro Bildschirm erreichen Sie für GNU screen(1) so:" #. type: verbatim #: wcd.pod:1284 #, no-wrap msgid "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" msgstr "" " export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW\n" "\n" #. type: =item #: wcd.pod:1286 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1288 msgid "If the environment variable I is defined, wcd with ncurses interface checks for a local terminal definition before checking in the standard place. This is useful if terminal definitions are not on a standard place. Often used standard places are C and C." msgstr "Wenn die Umgebungsvariable I, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind C und C." #. type: =item #: wcd.pod:1294 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1296 msgid "Wcd with PDCurses interface recognizes the environment variable I. If this environment variable is set, PDCurses will take a copy of the contents of the screen at the time that wcd is started; when wcd exits, the screen will be restored. An example for Windows Command Prompt:" msgstr "Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable I. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter:" #. type: verbatim #: wcd.pod:1302 #, no-wrap msgid "" " set PDC_RESTORE_SCREEN=1\n" "\n" msgstr "" " set PDC_RESTORE_SCREEN=1\n" "\n" #. type: textblock #: wcd.pod:1304 msgid "Windows allows only a small buffer to be saved. So it is not always possible to restore everything. Some garbage data may be printed in the console after wcd exists if you have set a large buffer width." msgstr "Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben." #. type: =item #: wcd.pod:1309 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1311 msgid "Printing of C<#!$SHELL> on the first line of the go-script for POSIX type shell or C shell is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. In Cygwin Bash the variable I must be set in environment using the C command, otherwise wcd can't read the variable." msgstr "Die Angabe von C<#!$SHELL> in der ersten Zeile des Go-Skripts (für POSIX- oder C-Shells) ist für 8-Bit-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable I mit dem Befehl C gesetzt werden, sonst kann wcd diese Variable nicht lesen." #. type: =item #: wcd.pod:1319 msgid "B" msgstr "B" #. type: textblock #: wcd.pod:1321 msgid "Wcd for DOS bash uses C<$BASH> instead of C<$SHELL>, because C<$SHELL> points to the DOS command shell. One may need to define C<$BASH> with an C command, otherwise wcd can't read the variable." msgstr "Wcd für die DOS-Bash verwendet C<$BASH> anstelle von C<$SHELL>, weil C<$SHELL> auf die DOS-Befehlsshell zeigt. C<$BASH> muss mit einem C-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen." #. type: =head1 #: wcd.pod:1328 msgid "SEE ALSO" msgstr "SIEHE AUCH" #. type: textblock #: wcd.pod:1330 msgid "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," msgstr "sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1)," #. type: =head1 #: wcd.pod:1338 msgid "AUTHORS" msgstr "AUTOREN" #. type: textblock #: wcd.pod:1340 msgid "Wcd was written by Erwin Waterlander " msgstr "Wcd wurde von Erwin Waterlander geschrieben." #. type: textblock #: wcd.pod:1342 msgid "Project homepage: L" msgstr "Projektseite: L" #. type: textblock #: wcd.pod:1345 msgid "SourceForge: L" msgstr "SourceForge: L" #. type: textblock #: wcd.pod:1348 msgid "Freecode: L" msgstr "Freecode: L" #. type: textblock #: wcd.pod:1351 msgid "The manual page formatting was provided by Jari Aalto ." msgstr "Die Formatierung der Handbuchseite wurde von Jari Aalto bereitgestellt." #. type: textblock #: wcd.pod:1354 msgid "NCD was originally written by Brad Kingsbury for Peter Norton's \"Norton Utilities\" around 1987. See also L" msgstr "NCD wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch L" #~ msgid "Option -x must be used in front of any scan option (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #~ msgstr "Die Option -x muss vor jeder anderen Einleseoption angegeben werden (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>)." #~ msgid "Replace with the location where wcd executable have been installed. Reload the shell initialization files or start new shell." #~ msgstr "Ersetzen Sie durch den Ort, an dem die ausführbare wcd-Datei installiert ist. Laden Sie die Initialisierungsdateien der Shell erneut oder starten Sie eine neue Shell." wcd-5.2.5/src/man/de/man1/wcd.10000664000175000017500000017154512345660660016170 0ustar waterlanwaterlan.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.20) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "wcd 1" .TH wcd 1 "2014-06-10" "wcd" "2014-06-10" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "BEZEICHNUNG" .IX Header "BEZEICHNUNG" wcd \- Wherever Change Directory .PP chdir für \s-1DOS\s0 und Unix .SH "ÜBERSICHT" .IX Header "ÜBERSICHT" .Vb 1 \& wcd [Optionen] [Verzeichnis] .Ve .SH "BESCHREIBUNG" .IX Header "BESCHREIBUNG" .SS "Übersicht" .IX Subsection "Übersicht" Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche. .PP Wcd wurde nach dem Vorbild des Norton Change Directory (\s-1NCD\s0) entworfen. \s-1NCD\s0 erschien zuerst 1987 in \fIThe Norton Utilities, Release 4\fR für \s-1DOS,\s0 veröffentlicht von Peter Norton. .PP Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: \s-1DOS \&\s0(command.com), Windows (cmd.exe und PowerShell), \s-1OS/2 \s0(cmd.exe) sowie Unix-Shells wie Bourne\- (sh), Bourne\-Again\- (bash), Korn\- (ksh), Z\- (zsh) und die C\- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells. .PP Wcd unterstützt 8\-Bit\-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt \s-1LOKALISIERUNG.\s0 .PP Im Abschnitt \s-1INSTALLATION\s0 finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können. .SS "Grundlegende Verwendung" .IX Subsection "Grundlegende Verwendung" Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt. .PP Beispielsweise wechselt dieser Befehl in das Verzeichnis \&\f(CW\*(C`/home/user/Desktop\*(C'\fR des aktuellen Benutzers: .PP .Vb 1 \& wcd Desk .Ve .PP Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem). .SS "Platzhalter" .IX Subsection "Platzhalter" Wcd unterstützt die folgenden Platzhalter: .PP .Vb 5 \& * findet jede Zeichensequenz (kein oder mehr Zeichen) \& ? findet jedes einzelne Zeichen \& [GRUPPE] findet jedes Zeichen in der angegebenen Gruppe, \& [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen \& GRUPPE nicht enthalten ist. .Ve .PP Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form \fIZeichen minus Zeichen\fR, zum Beispiel \f(CW\*(C`0\-9\*(C'\fR oder \f(CW\*(C`A\-Z\*(C'\fR. Dabei ist \&\f(CW\*(C`[0\-9a\-zA\-Z_]\*(C'\fR die minimal mögliche Gruppe nach dem Muster \&\f(CW\*(C`[..]\*(C'\fR. Internationale Zeichen (zum Beispiel 8\-Bit\-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen \f(CW\*(C`[]*?!^\-\e\*(C'\fR innerhalb oder außerhalb des Musters \f(CW\*(C`[..]\*(C'\fR zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich (\f(CW\*(C`\e\*(C'\fR) voran, um es zu maskieren. .PP Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet: .PP .Vb 1 \& wcd *top .Ve .PP Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält: .PP .Vb 1 \& wcd *top* .Ve .PP Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt: .PP .Vb 1 \& wcd [a\-c]* .Ve .PP Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf \&\fI*me/Desk*\fR passt. .PP .Vb 1 \& wcd me/Desk .Ve .PP Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel: .PP .Vb 1 \& wcd src*/*1?/a*2 .Ve .SS "Weitere Anwendungsfälle" .IX Subsection "Weitere Anwendungsfälle" Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option \fB\-w\fR geändert werden. .PP Der interaktive Verzeichnisbaumbrowser kann mit der Option \fB\-g\fR gestartet werden. .PP .Vb 1 \& wcd \-g .Ve .PP Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix\- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten. .PP Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel: .PP .Vb 1 \& wcd .. .Ve .PP Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option \fB\-k\fR. .PP Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen \fB\-z\fR, \fB\-\fR, \fB+\fR und \fB=\fR. .PP In Umgebungen mit mehreren Benutzern kann mit der Option \fB\-u\fR in die Verzeichnisse anderer Benutzer gewechselt werden. .PP Auf \s-1DOS\-\s0 und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\e« als Verzeichnistrenner verwenden. .PP Auf \s-1DOS\-\s0 und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen. .PP .Vb 1 \& wcd d:games .Ve .SS "UNC-Pfade unter Windows" .IX Subsection "UNC-Pfade unter Windows" Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, \s-1MSYS,\s0 zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie \&\f(CW\*(C`\e\eServername\eFreigabename\*(C'\fR. Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«\-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, \s-1MSYS,\s0 zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein. .SS "Schnittstellen" .IX Subsection "Schnittstellen" Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt. .PP Die erste Schnittstelle verwendet die Standardeingabe und \-ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel. .PP Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option \fB\-N\fR verwenden. .PP Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in \fIvim\fR\|(1). Diese Schnittstelle kann mit der Option \fB\-g\fR aktiviert werden. .PP Mit der Option \fB\-o\fR ist es jederzeit möglich, auf die stdin/stdout\-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen. .SH "OPTIONEN" .IX Header "OPTIONEN" .IP "\fB\-a\fR" 4 .IX Item "-a" fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu. .Sp Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern. .IP "\fB\-aa\fR" 4 .IX Item "-aa" fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu. .IP "\fB\-A \s-1PFAD\s0\fR" 4 .IX Item "-A PFAD" liest den Verzeichnisbaum aus \fI\s-1PFAD\s0\fR und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele: .Sp .Vb 3 \& wcd \-A . \& wcd \-A /home \-A /etc \& wcd \-A d: \-A e: \-A \e\eserver\eshare .Ve .Sp Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: \f(CW\*(C`wcd \-A \&\e\eServername\*(C'\fR. .Sp Siehe auch die Optionen \fB\-S\fR, \fB\-s\fR und \fB\-E\fR. .IP "\fB\-b\fR" 4 .IX Item "-b" verbannt den aktuellen Pfad. .Sp Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen. .Sp Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen. .Sp Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option \fB\-xf\fR. .IP "\fB\-c, \-\-direct\-cd\fR" 4 .IX Item "-c, --direct-cd" Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt: .Sp .Vb 4 \& 1. Es wird versucht, einen Treffer in der oder den Baumdatei(en) \& zu finden. \& 2. Wird nichts gefunden, wird versucht, das eingegebene \& Verzeichnis zu öffnen. .Ve .Sp Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge: .Sp .Vb 3 \& 1. Es wird versucht, das eingegebene Verzeichnis zu öffnen. \& 2. Wird nichts gefunden, wird nach einem Treffer in der oder \& den Baumdatei(en) gesucht. .Ve .IP "\fB\-d \s-1LAUFWERK\s0\fR" 4 .IX Item "-d LAUFWERK" legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur \s-1DOS\s0). .Sp Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable \fI\s-1HOME\s0\fR nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen \fB\-\fR, \fB+\fR und \fB=\fR stehen. .IP "\fB\-e\fR" 4 .IX Item "-e" fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu. .Sp Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen. .IP "\fB\-ee\fR" 4 .IX Item "-ee" fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu. .IP "\fB\-E \s-1PFAD\s0\fR" 4 .IX Item "-E PFAD" liest den Verzeichnisbaum aus \fI\s-1PFAD\s0\fR und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen \fB\-A\fR und \fB\-S\fR. .IP "\fB\-f \s-1DATEI\s0\fR" 4 .IX Item "-f DATEI" liest die Baumdatei \fI\s-1DATEI\s0\fR. Die vorgegebene Baumdatei wird nicht gelesen. .IP "\fB+f \s-1DATEI\s0\fR" 4 .IX Item "+f DATEI" liest die Baumdatei \fI\s-1DATEI\s0\fR zusätzlich zur vorgegebenen Baumdatei. .IP "\fB\-g\fR" 4 .IX Item "-g" verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle). .Sp Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in \fIvim\fR\|(1). .Sp Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar. .Sp Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt. .Sp Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen \s-1NCD\s0 unter \&\s-1DOS.\s0 Der Unterschied besteht darin, dass in \s-1NCD\s0 alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in \&\s-1NCD\s0 möglich, da ein Verzeichnisname in \s-1DOS\s0 nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen. .Sp Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen \&\s-1NCD.\s0 Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum. .Sp Siehe die Optionen \fB\-Ta\fR, \fB\-TC\fR und \fB\-Tc\fR zum Ändern des Navigationsverhaltens. .IP "\fB\-gd\fR" 4 .IX Item "-gd" gibt die Baumdateien als Baum in die Standardausgabe aus. .IP "\fB\-G \s-1PFAD\s0\fR" 4 .IX Item "-G PFAD" schreibt das Go-Skript in das Verzeichnis \fI\s-1PFAD\s0\fR. Unter Unix beispielsweise schreibt \f(CW\*(C`wcd \-G PFAD\*(C'\fR ein Go-Skript in \fBPFAD/wcd.go\fR. .IP "\fB\-GN, \-\-no\-go\-script\fR" 4 .IX Item "-GN, --no-go-script" verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit \&\fB\-j\fR verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen. .IP "\fB\-h, \-\-help\fR" 4 .IX Item "-h, --help" zeigt eine Hilfe an und beendet das Programm. .IP "\fB\-i, \-\-ignore\-case\fR" 4 .IX Item "-i, --ignore-case" ignoriert Groß\-/Kleinschreibung. In den \s-1DOS\-\s0 und Windows-Versionen ist dies der Standard. In den Unix\- und Cygwin-Versionen wird per Vorgabe die Groß\-/Kleinschreibung berücksichtigt. .IP "\fB+i, \-\-no\-ignore\-case\fR" 4 .IX Item "+i, --no-ignore-case" berücksichtigt Groß\-/Kleinschreibung. Siehe auch Option \fB\-i\fR. .IP "\fB\-I, \-\-ignore\-diacritics\fR" 4 .IX Item "-I, --ignore-diacritics" ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: \s-1CP437, CP850, CP852, CP1250, CP1252, ISO\-8859\-1, ISO\-8859\-2,\s0 sowie Unicode Latin\-1, Latin Extended-A, und Latin Extended-B. Siehe auch .IP "\fB+I, \-\-no\-ignore\-diacritics\fR" 4 .IX Item "+I, --no-ignore-diacritics" berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option \fB\-I\fR. .IP "\fB\-j, \-\-just\-go\fR" 4 .IX Item "-j, --just-go" Geh-einfach-Modus. .Sp In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter. .Sp Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen: .Sp .Vb 4 \& wcd () \& { \& cd "$($HOME/bin/wcd.exe \-j $@)" \& } .Ve .Sp Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden. .Sp .Vb 4 \& wcd () \& { \& cd "\`$HOME/bin/wcd.exe \-j $@\`" \& } .Ve .Sp Auf Windows-Systemen mit einer NT4\-Shell können Sie den folgenden Alias anlegen: .Sp .Vb 1 \& alias wcd \`cd %@execstr[wcdwin32.exe \-z 0 \-j %1]\` .Ve .Sp Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option \&\fB\-GN\fR zusammen mit \fB\-j\fR verwenden. .IP "\fB\-k, \-\-keep\-paths\fR" 4 .IX Item "-k, --keep-paths" erhält Pfade. .Sp Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert. .IP "\fB\-K, \-\-color\fR" 4 .IX Item "-K, --color" verwendet Farben im grafischen Modus. .IP "\fB\-l \s-1ALIAS\s0\fR" 4 .IX Item "-l ALIAS" benennt den aktuellen Pfad mit \fI\s-1ALIAS\s0\fR. Wcd speichert den aktuellen Pfad mit dem \fI\s-1ALIAS\s0\fR in der Alias-Datei. Bei Aliasen wird Groß\-/Kleinschreibung berücksichtigt. .IP "\fB\-m \s-1VERZEICHNIS\s0\fR" 4 .IX Item "-m VERZEICHNIS" erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu. .IP "\fB\-L, \-\-license\fR" 4 .IX Item "-L, --license" zeigt die Lizenz des Programms an. .IP "\fB\-M \s-1VERZEICHNIS\s0\fR" 4 .IX Item "-M VERZEICHNIS" erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu. .IP "\fB\-n \s-1PFAD\s0\fR" 4 .IX Item "-n PFAD" liest die relative Baumdatei aus \fI\s-1PFAD\s0\fR. .Sp Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option \fB+S\fR angelegt worden sein. \fI\s-1PFAD\s0\fR kann auch direkt auf eine Datei verweisen. .Sp Ein Beispiel. Nehmen wir an, ein anderes System wurde in \f(CW\*(C`/mnt/network\*(C'\fR eingehängt: .Sp .Vb 1 \& wcd \-n /mnt/network src .Ve .Sp Wcd öffnet die Datei der relativen Baumansicht in \f(CW\*(C`/mnt/network/\*(C'\fR. Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet. .IP "\fB+n \s-1PFAD\s0\fR" 4 .IX Item "+n PFAD" liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option \fB\-n\fR. .IP "\fB\-N, \-\-numbers\fR" 4 .IX Item "-N, --numbers" verwendet Zahlen anstelle von Buchstaben. .Sp Wcd mit einer Conio\- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option \fB\-N\fR angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option \fB\-N\fR können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen. .IP "\fB\-o\fR" 4 .IX Item "-o" verwendet die stdin/stdout\-Schnittstelle (Standardeingabe/Standardausgabe). .Sp Falls aus verschiedenen Gründen die conio\- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option \fB\-o\fR auf die stdin/stdout\-Schnittstelle ausweichen. .IP "\fB\-od, \-\-to\-stdout\fR" 4 .IX Item "-od, --to-stdout" gibt alle Übereinstimmungen in die Standardausgabe aus. .IP "\fB\-q, \-\-quiet\fR" 4 .IX Item "-q, --quiet" Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt. .IP "\fB\-r \s-1VERZEICHNIS\s0\fR" 4 .IX Item "-r VERZEICHNIS" entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei. .Sp Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen. .IP "\fB\-rmtree \s-1VERZEICHNIS\s0\fR" 4 .IX Item "-rmtree VERZEICHNIS" entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei. .Sp Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt. .IP "\fB\-s\fR" 4 .IX Item "-s" liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis \f(CW$HOME\fR ein. Falls \fI\s-1HOME\s0\fR nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen. .Sp Die existierende vorgegebene Baumdatei wird dabei überschrieben. .Sp Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable \&\f(CW\*(C`WCDSCAN\*(C'\fR außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt \s-1UMGEBUNGSVARIABLEN.\s0 .IP "\fB\-S \s-1PFAD\s0\fR" 4 .IX Item "-S PFAD" liest den Verzeichnisbaum aus \fI\s-1PFAD\s0\fR und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen \fB\-A\fR, \fB\-s\fR und \fB\-E\fR. Zum Beispiel können Sie mit der Option \fB\-A\fR eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele: .Sp Unix: .Sp .Vb 2 \& wcd \-S / \& wcd \-S /home \-A /etc \-A /usr .Ve .Sp DOS/Windows: .Sp .Vb 2 \& wcd \-S c:/ \& wcd \-S c: \-A d: \-A \e\eserver\eshare .Ve .Sp Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: \f(CW\*(C`wcd \-S \&\e\eServername\*(C'\fR. .IP "\fB\-S \s-1PFAD\s0\fR" 4 .IX Item "-S PFAD" liest das Laufwerk aus \fI\s-1PFAD\s0\fR ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen \fB\-n\fR und \fB+n\fR verwendet. Beispiel \f(CW\*(C`wcd \-n PFAD src\*(C'\fR. .IP "\fB\-t\fR" 4 .IX Item "-t" entfernt das temporäre Einhängeverzeichnis \f(CW\*(C`/tmp_mnt\*(C'\fR nicht (nur Unix). .Sp Wcd entfernt per Vorgabe \f(CW\*(C`/tmp_mnt/\*(C'\fR aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option \&\fB\-t\fR abschalten. .IP "\fB\-T, \-\-ascii\-tree\fR" 4 .IX Item "-T, --ascii-tree" zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden. .IP "\fB\-Ta, \-\-alt\-tree\-nav\fR" 4 .IX Item "-Ta, --alt-tree-nav" verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht. .Sp In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option \fB\-Ta\fR das Springen in beziehungslose Verzeichnisse. .Sp In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem \s-1KDE\s0 Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links. .Sp Sie können direkt zwischen dem Vorgabe\- und dem Alternativmodus wechseln, indem Sie drücken. .Sp Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke. .IP "\fB\-TC, \-\-center\-tree\fR" 4 .IX Item "-TC, --center-tree" zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste im grafischen Baum an\- und abgeschaltet werden. .Sp Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen \s-1NCD.\s0 .IP "\fB\-Tc, \-\-compact\-tree\fR" 4 .IX Item "-Tc, --compact-tree" Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen \s-1NCD\s0 unter \s-1DOS.\s0 Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option \fB\-Tc\fR oder schalten Sie direkt mit der Taste um. .IP "\fB\-Td, \-\-cjk\-width\fR" 4 .IX Item "-Td, --cjk-width" Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936\-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird. .Sp Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt. .IP "\fB\-u \s-1BENUTZER\s0\fR" 4 .IX Item "-u BENUTZER" liest die Daten eines anderen Benutzers für die Baumansicht basierend auf \&\fI\s-1BENUTZER\s0\fR ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch \fI\s-1WCDUSERSHOME\s0\fR im Abschnitt \s-1UMGEBUNGSVARIABLEN.\s0 .Sp Unter Unix/Cygwin wird \f(CW\*(C`/home\*(C'\fR als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach \f(CW\*(C`/home/BENUTZER/.treedata.wcd\*(C'\fR und \&\f(CW\*(C`/home/BENUTZER/.wcd/.treedata.wcd\*(C'\fR, in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird \&\f(CW\*(C`\e\eusers\*(C'\fR als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd \&\f(CW\*(C`\e\eusers\eBENUTZER\etreedata.wcd\*(C'\fR und \f(CW\*(C`\e\eusers\eBENUTZER\e.wcd\etreedata.wcd\*(C'\fR zu lesen. .IP "\fB+u \s-1BENUTZER\s0\fR" 4 .IX Item "+u BENUTZER" liest die vorgegebene Baumansicht-Datei von \s-1BENUTZER\s0 zusätzlich zu Ihrer eigenen Baumansicht-Datei ein. .IP "\fB\-v, \-\-verbose\fR" 4 .IX Item "-v, --verbose" zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an. .IP "\fB\-V, \-\-version\fR" 4 .IX Item "-V, --version" zeigt Versionsinformationen an und beendet das Programm. .IP "\fB\-w, \-\-wild\-match\-only\fR" 4 .IX Item "-w, --wild-match-only" zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen. .IP "\fB\-x \s-1PFAD\s0\fR" 4 .IX Item "-x PFAD" schließt \fI\s-1PFAD\s0\fR vom Einlesen aus. .Sp Mit dieser Option schließt wcd \fI\s-1PFAD\s0\fR und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option \fB\-x\fR kann mehrfach angegeben werden. .Sp .Vb 1 \& wcd \-x \-x \-s .Ve .Sp Die Option \fB\-x\fR muss vor jeder anderen Einleseoption angegeben werden (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \fB\-A\fR, \fB\-E\fR). .Sp Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen \fI\s-1HOME\s0\fR oder \fI\s-1WCDHOME\s0\fR gesetzt ist. Falls \fI\s-1HOME\s0\fR oder \&\fI\s-1WCDHOME\s0\fR gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel: .Sp .Vb 1 \& wcd \-x c:/temp \-S c: .Ve .Sp Anderenfalls geben Sie keinen Laufwerksbuchstaben an. .Sp .Vb 1 \& wcd \-x /temp \-s .Ve .IP "\fB\-xf \s-1DATEI\s0\fR" 4 .IX Item "-xf DATEI" schließt alle in \fI\s-1DATEI\s0\fR aufgelisteten Pfade vom Einlesen aus. .Sp Wenn diese Option ausgewählt ist, schließt wcd alle in \fI\s-1DATEI\s0\fR aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option \&\fB\-xf\fR kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix): .Sp .Vb 1 \& wcd \-xf ~/.ban.wcd \-s .Ve .Sp Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit \f(CW\*(C`*/.svn\*(C'\fR hinzu. .Sp Die Option \fB\-xf\fR muss vor jeder anderen Einleseoption angegeben werden (\fB\-s\fR, \fB\-S\fR, \fB+S\fR, \fB\-A\fR, \fB\-E\fR). .IP "\fB\-y, \-\-assume\-yes\fR" 4 .IX Item "-y, --assume-yes" beantwortet alle Abfragen automatisch mit »ja«. .Sp Wcd gibt keine Ja\-/Nein\-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option \fB\-rmtree\fR verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja\-/Nein\-Abfragen führen könnten. .IP "\fB\-z \s-1ZAHL\s0\fR" 4 .IX Item "-z ZAHL" setzt die maximale Stapelgröße auf \s-1ZAHL.\s0 .Sp Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (\fB\-\fR,\fB+\fR,\fB=\fR). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt. .Sp Ein korrekter Befehl ist: .Sp .Vb 1 \& wcd \-z 50 \- .Ve .Sp Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre: .Sp .Vb 1 \& wcd \- \-z 50 .Ve .Sp Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument \fB\-z 50\fR wird ignoriert. .Sp Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das: .Sp .Vb 5 \& wcd () \& { \& wcd.exe \-z 50 "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .IP "\fB\-[\s-1ZAHL\s0]\fR" 4 .IX Item "-[ZAHL]" legt ein Verzeichnis auf den Stapel (\s-1ZAHL\s0 mal). Vorgabe ist 1. .Sp Geht ein Verzeichnis zurück. Der Befehl \f(CW\*(C`wcd \-\*(C'\fR geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls \f(CW\*(C`wcd \-3\*(C'\fR. Der Stapel ist zyklisch. .IP "\fB+[\s-1ZAHL\s0]\fR" 4 .IX Item "+[ZAHL]" nimmt ein Verzeichnis vom Stapel (\s-1ZAHL\s0 mal). Vorgabe ist 1. .Sp Geht ein Verzeichnis vor. Der Befehl \f(CW\*(C`wcd +\*(C'\fR geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls \f(CW\*(C`wcd +2\*(C'\fR. Der Stapel ist zyklisch. .IP "\fB=\fR" 4 .IX Item "=" zeigt den Stapel an. .Sp Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk \&\f(CW\*(C`*\*(C'\fR markiert. .SH "INSTALLATION" .IX Header "INSTALLATION" Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten \fIcd\fR\|(1)\-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde. .PP Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen \fI\s-1HOME\s0\fR und \fI\s-1WCDHOME\s0\fR. Siehe den Abschnitt \&\s-1UMGEBUNGSVARIABLEN.\s0 .SS "Installation für POSIX-Shells" .IX Subsection "Installation für POSIX-Shells" Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem \s-1MSYS\s0 fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel \f(CW\*(C`$HOME/.bashrc\*(C'\fR): .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/bin/wcd.go \& } .Ve .PP \&\fI\s-1PFAD\s0\fR wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. .PP Der Ort des Go-Skripts \f(CW\*(C`wcd.go\*(C'\fR ist abhängig von der Shell selbst. .PP Wcd für die auf \s-1DJGPP\s0 basierende DOS-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis \f(CW\*(C`bin\*(C'\fR gespeichert, und falls weder \fI\s-1WCDHOME\s0\fR noch \fI\s-1HOME\s0\fR definiert sind, wird das Go-Skript nach c:/ geschrieben. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME:\-"c:"}}/wcd.go \& } .Ve .PP Die WinZsh-Version von wcd ist auch etwas anders. Es gibt kein \&\f(CW\*(C`bin\*(C'\fR\-Verzeichnis. .PP .Vb 5 \& wcd () \& { \& /wcd.exe "$@" \& . ${WCDHOME:\-${HOME}}/wcd.go \& } .Ve .PP Weitere Informationen finden Sie im Abschnitt \s-1DATEIEN.\s0 .SS "Installation für C\-ähnliche Shells (csh, tcsh)" .IX Subsection "Installation für C-ähnliche Shells (csh, tcsh)" Fügen Sie den folgenden Alias zur Shell-Startdatei \f(CW\*(C`$HOME/.cshrc\*(C'\fR oder \&\f(CW\*(C`$HOME/.tcshrc\*(C'\fR hinzu: .PP .Vb 5 \& if ( ${?WCDHOME} ) then \& alias wcd "/wcd.exe \e!* ; source $WCDHOME/bin/wcd.go" \& else \& alias wcd "/wcd.exe \e!* ; source $HOME/bin/wcd.go" \& endif .Ve .PP \&\fI\s-1PFAD\s0\fR wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. .SS "Version für den Windows-Befehlszeileninterpreter" .IX Subsection "Version für den Windows-Befehlszeileninterpreter" Entpacken Sie die Zip-Datei und fügen Sie den Ordner \f(CW\*(C`bin\*(C'\fR zu Ihrer Umgebungsvariable \fI\s-1PATH\s0\fR hinzu. .PP Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat\-Datei möglich. Das Batch-Skript \f(CW\*(C`wcd.bat\*(C'\fR ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript \f(CW\*(C`wcdgo.bat\*(C'\fR erzeugt. Dann führt \f(CW\*(C`wcd.go\*(C'\fR wiederum \f(CW\*(C`wcdgo.bat\*(C'\fR aus, welches tatsächlich das Verzeichnis wechselt. .SS "Windows \s-1VISTA\s0 und neuer" .IX Subsection "Windows VISTA und neuer" Im Befehlszeileninterpreter in Windows \s-1VISTA\s0 oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und \fIAls Administrator ausführen\fR wählen. .SS "Version für die Windows PowerShell" .IX Subsection "Version für die Windows PowerShell" Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable \f(CW$profile\fR bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen \fI\s-1HOME\s0\fR oder \fI\s-1WCDHOME\s0\fR definiert ist. .PP .Vb 5 \& function wcd \& { \& \ewcdwin32psh.exe $args \& & $env:HOME\ewcdgo.ps1 \& } .Ve .PP \&\fI\s-1PFAD\s0\fR wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber. .SS "Version für den Befehlszeileninterpreter von \s-1OS/2\s0" .IX Subsection "Version für den Befehlszeileninterpreter von OS/2" Im Befehlszeileninterpreter von \s-1OS/2 \s0(cmd.exe) kann ein OS/2\-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript \f(CW\*(C`wcdgo.cmd\*(C'\fR, das in der aktuellen Shell ausgeführt werden muss. Das Skript \f(CW\*(C`wcd.cmd\*(C'\fR führt zuerst \f(CW\*(C`wcdos2.exe\*(C'\fR aus, welches seinerseits das Skript \f(CW\*(C`wcdgo.cmd\*(C'\fR erzeugt. Danach führt \f(CW\*(C`wcd.cmd\*(C'\fR das Skript \f(CW\*(C`wcdgo.cmd\*(C'\fR aus. .SH "LOKALISIERUNG" .IX Header "LOKALISIERUNG" .IP "\fB\s-1LANG\s0\fR" 4 .IX Item "LANG" Die primäre Sprache wird durch die Umgebungsvariable \fI\s-1LANG\s0\fR festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells: .Sp .Vb 6 \& export LANG=de Deutsch \& export LANG=de_DE Deutsch, Deutschland \& export LANG=de_CH Deutsch, Schweiz \& export LANG=es_ES Spanisch, Spanien \& export LANG=es_MX Spanisch, Mexiko \& export LANG=en_US.iso88591 English, USA, Latin\-1\-Zeichenkodierung .Ve .Sp Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu \fIgettext\fR\|(1): . Auf Unix-Systemen können Sie den Befehl \fIlocale\fR\|(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten. .IP "\fB\s-1LANGUAGE\s0\fR" 4 .IX Item "LANGUAGE" Mit der Umgebungsvariable \fI\s-1LANGUAGE\s0\fR können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt \fI\s-1LANGUAGE\s0\fR vor \fI\s-1LANG\s0\fR den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: \f(CW\*(C`LANGUAGE=de:nl\*(C'\fR. Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable \fI\s-1LANG\s0\fR oder \fI\s-1LC_ALL\s0\fR auf einen anderen Wert als \fIC\fR setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: .Sp Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache. .IP "\fB\s-1WCDLOCALEDIR\s0\fR" 4 .IX Item "WCDLOCALEDIR" Mit der Umgebungsvariable \fI\s-1WCDLOCALEDIR\s0\fR kann die während der Kompilierung und Installation verwendete Variable \fI\s-1LOCALEDIR\s0\fR außer Kraft gesetzt werden. \fI\s-1LOCALEDIR\s0\fR wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist \f(CW\*(C`/usr/local/share/locale\*(C'\fR. Nach Eingabe von \f(CW\*(C`wcd \-V\*(C'\fR wird das von wcd verwendete \fI\s-1LOCALEDIR\s0\fR angezeigt. .Sp Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable \fI\s-1WCDLOCALEDIR\s0\fR setzen, die auf das Verzeichnis mit den Sprachdateien zeigt. .Sp Ein Beispiel für den Windows-Befehlszeileninterpreter: .Sp .Vb 1 \& set WCDLOCALEDIR=c:/my_prefix/share/locale .Ve .Sp Ein Beispiel für eine POSIX-Shell: .Sp .Vb 1 \& export WCDLOCALEDIR=$HOME/share/locale .Ve .IP "\fB\s-1LC_COLLATE\s0\fR" 4 .IX Item "LC_COLLATE" Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable \fI\s-1LANG\s0\fR gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß\-/Kleinschreibung wird nicht berücksichtigt. .Sp Die Sortierung bevorzugt die Umgebungsvariable \fI\s-1LC_COLLATE\s0\fR vor \&\fI\s-1LANG\s0\fR. Falls Sie \fI\s-1LC_COLLATE\s0\fR auf \f(CW\*(C`C\*(C'\fR oder \f(CW\*(C`POSIX\*(C'\fR setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes: .Sp .Vb 2 \& export LANG=de_DE \& export LC_COLLATE=C .Ve .IP "\fB\s-1LC_CTYPE\s0\fR" 4 .IX Item "LC_CTYPE" Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable \fI\s-1LC_CTYPE\s0\fR vor \&\fI\s-1LANG\s0\fR. Um beispielsweise die Zeichenkodierung auf \s-1UTF\-8\s0 zu setzen, können Sie Folgendes ausführen: .Sp .Vb 1 \& export LC_CTYPE=en_US.UTF\-8 .Ve .IP "\fB\s-1LC_ALL\s0\fR" 4 .IX Item "LC_ALL" Alle lokalen Umgebungsvariablen, die mit \fI\s-1LC_\s0\fR beginnen, werden durch die Umgebungsvariable \fI\s-1LC_ALL\s0\fR außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt \fI\s-1LC_ALL\s0\fR vor \fI\s-1LC_COLLATE\s0\fR und \fI\s-1LC_CTYPE\s0\fR. .SS "\s-1WINDOWS CODE PAGES\s0" .IX Subsection "WINDOWS CODE PAGES" Es gibt zwei Gruppen von Codepages, die \s-1DOS\s0 Codepages (\s-1OEM\s0) und die Windows Codepages (\s-1ANSI\s0). Die vorgegebene Zeichenkodierung für Windows ist \s-1ANSI CP1252,\s0 wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (\s-1CP437\s0 oder \s-1CP850\s0), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke. .PP Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage \s-1CP1252\s0 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben. .PP Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode\- und ANSI-Zeichen korrekt angezeigt werden. .PP Die Nicht-Unicode-Versionen von Wcd \fIvor Version 5.2.0\fR verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann. .PP Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl \f(CW\*(C`chcp\*(C'\fR geändert. .PP Wenn Sie \f(CW\*(C`wcd \-V\*(C'\fR eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl \f(CW\*(C`chcp\*(C'\fR ein, um die aktive Codepage für die Windows-Konsole anzuzeigen. .SS "\s-1UNICODE\s0" .IX Subsection "UNICODE" Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode\-Unterstützung erstellt wurde, geben Sie \f(CW\*(C`wcd \-V\*(C'\fR ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat). .PP Wcd wurde »weich« auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF\-8\-spezifischen Code. Siehe auch . .PP Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie \f(CW\*(C`wcd \-V\*(C'\fR ein. Wcd mit Unicode-Normalisierung findet Treffer mittels \fIkompatiblen\fR Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch . .PP \fI\s-1UTF\-8\s0 unter Unix/Linux\fR .IX Subsection "UTF-8 unter Unix/Linux" .PP Um UTF\-8\-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch \s-1UTF\-8\s0 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF\-8\-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie \fIxterm\fR\|(1) mit einer UTF\-8\-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646\-1, zum Beispiel mit .PP .Vb 1 \& LC_CTYPE=en_GB.UTF\-8 xterm \-u8 \-fn \*(Aq\-Misc\-Fixed\-Medium\-R\-SemiCondensed\-\-13\-120\-75\-75\-C\-60\-ISO10646\-1\*(Aq .Ve .PP Moderne GNU-Linux-Distributionen unterstützen \s-1UTF\-8\s0 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet. .PP Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben. .PP \fI\s-1UTF\-16\s0 unter Windows\fR .IX Subsection "UTF-16 unter Windows" .PP Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder \s-1TCC/LE\s0 von \s-1JP\s0 Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista). .PP Unter Windows sind alle Verzeichnisnamen in Unicode \s-1UTF\-16\s0 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus. .PP Wcd mit Unicode\-Unterstützung liest die in \s-1UTF\-16\s0 kodierten Verzeichnisnamen und wandelt diese intern in \s-1UTF\-8\s0 um. Alle Baumdateien sind in \s-1UTF\-8\s0 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in \s-1UTF\-8\s0 kodiertes Go-Skript. .PP Alle Versionen der Windows Powershell können in \s-1UTF\-8\s0 kodierte Skripte ausführen, sofern sich im Skript eine \s-1BOM \s0(Bytereihenfolge-Markierung) für \&\s-1UTF\-8\s0 befindet. .PP Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in \s-1UTF\-8\s0 kodiert sein, und das Batch-Skript \fIdarf keine \s-1BOM\s0 enthalten\fR (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (\s-1UTF\-8\s0) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript \f(CW\*(C`wcdgo.bat\*(C'\fR. Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück. .PP Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden. .PP Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine \s-1BOM \s0(Markierung der Bytereihenfolge) in der Datei befindet (siehe ). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine \s-1BOM\s0 in die in \s-1UTF\-8\s0 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind. .PP \fI\s-1UTF\-8\s0 unter Cygwin\fR .IX Subsection "UTF-8 unter Cygwin" .PP Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF\-16\-Namen unter Windows in \s-1UTF\-8\s0 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF\-8\-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable \fI\s-1LANG\s0\fR oder \fI\s-1LC_CTYPE\s0\fR auf \s-1UTF\-8.\s0 Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden. .PP Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (\s-1BOM\s0) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in \fBCygwin\fR vorgegeben ist. .SH "DATEIEN" .IX Header "DATEIEN" Falls die Umgebungsvariable \fI\s-1WCDHOME\s0\fR gesetzt ist, verwendet wcd \fI\s-1WCDHOME\s0\fR anstelle von \fI\s-1HOME\s0\fR. Alle \f(CW\*(C`*.wcd\*(C'\fR\-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version. .IP "\fBwcd.exe\fR" 4 .IX Item "wcd.exe" Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt \s-1INSTALLATION.\s0 .IP "\fBvorgegebene Baumdatei\fR" 4 .IX Item "vorgegebene Baumdatei" Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei. .Sp .Vb 2 \& DOS: \etreedata.wcd or %HOME%\etreedata.wcd \& Unix: $HOME/.treedata.wcd .Ve .IP "\fBzusätzliche Baumdatei\fR" 4 .IX Item "zusätzliche Baumdatei" Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern. .Sp .Vb 2 \& DOS: \eextra.wcd or %HOME%\eextra.wcd \& Unix: $HOME/.extra.wcd .Ve .IP "\fBBann-Datei\fR" 4 .IX Item "Bann-Datei" In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option \&\fB\-b\fR. Platzhalter werden unterstützt. .Sp .Vb 2 \& DOS: \eban.wcd or %HOME%\eban.wcd \& Unix: $HOME/.ban.wcd .Ve .IP "\fBAlias-Datei\fR" 4 .IX Item "Alias-Datei" Optionale Datei mit Aliasen für wcd. Siehe Option \fB\-l\fR. .Sp .Vb 2 \& DOS: \ealias.wcd or %HOME%\ealias.wcd \& Unix: $HOME/.alias.wcd .Ve .IP "\fBStapeldatei\fR" 4 .IX Item "Stapeldatei" In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option \fB\-d\fR geändert werden. .Sp .Vb 2 \& DOS: c:\estack.wcd or %HOME%\estack.wcd \& Unix: $HOME/.stack.wcd .Ve .Sp Der Name der Stapeldatei kann mit der Umgebungsvariable \fI\s-1WCDSTACKFILE\s0\fR geändert werden. Siehe Abschnitt \s-1UMGEBUNGSVARIABLEN.\s0 .IP "\fBGo-Skript\fR" 4 .IX Item "Go-Skript" Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option \fB\-d\fR geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in \f(CW\*(C`$HOME/bin\*(C'\fR gespeichert. Das Verzeichnis für diese Datei kann mit der Option \fB\-G\fR geändert werden. .Sp .Vb 7 \& DOS Bash: c:/wcd.go oder $HOME/wcd.go \& Windows Befehlszeileninterpreter: c:\ewcdgo.bat oder %HOME%\ewcdgo.bat \& Windows PowerShell: $env:HOME\ewcdgo.ps1 \& WinZsh: $HOME/wcd.go \& Cygwin/MSYS: $HOME/bin/wcd.go \& OS/2\-Befehlszeileninterpreter: c:\ewcdgo.cmd oder %HOME%\ewcdgo.cmd \& Unix: $HOME/bin/wcd.go .Ve .IP "\fBDatei für relative Baumansicht\fR" 4 .IX Item "Datei für relative Baumansicht" Textdatei mit relativen Pfaden von \fI\s-1VERZEICHNIS\s0\fR. Siehe die Optionen \fB+S\fR, \&\fB\-n\fR und \fB+n\fR. .Sp .Vb 2 \& DOS: \ertdata.wcd \& Unix: /.rtdata.wcd .Ve .SH "UMGEBUNGSVARIABLEN" .IX Header "UMGEBUNGSVARIABLEN" .IP "\fB\s-1HOME\s0\fR" 4 .IX Item "HOME" Wcd verwendet per Vorgabe die Umgebungsvariable \fI\s-1HOME\s0\fR, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt \s-1DATEIEN.\s0 Dies kann mit der Umgebungsvariable \fI\s-1WCDHOME\s0\fR außer Kraft gesetzt werden. .Sp \&\fI\s-1HOME\s0\fR legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option \fB\-s\fR verwendet wird. Dies kann mit der Umgebungsvariable \&\fI\s-1WCDSCAN\s0\fR außer Kraft gesetzt werden. .Sp In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und \s-1MSYS\s0 ist es erforderlich, dass \fI\s-1HOME\s0\fR oder \fI\s-1WCDHOME\s0\fR gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional. .Sp Falls \fI\s-1HOME\s0\fR unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis \&\fI\s-1HOME\s0\fR. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus \fI\s-1HOME\s0\fR ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel: .Sp .Vb 1 \& wcd \-S c: \-A d: \-A e: .Ve .Sp Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt. .IP "\fB\s-1WCDHOME\s0\fR" 4 .IX Item "WCDHOME" Mit der Umgebungsvariable \fI\s-1WCDHOME\s0\fR können Sie den Ort der Dateien von wcd ändern. Falls sowohl \fI\s-1HOME\s0\fR als auch \fI\s-1WCDHOME\s0\fR gesetzt ist, wird \&\fI\s-1WCDHOME\s0\fR anstelle von \fI\s-1HOME\s0\fR verwendet. .Sp In Wcd-Versionen vor 5.1.5 wurde durch \fI\s-1WCDHOME\s0\fR auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option \fB\-s\fR. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable \&\fI\s-1WCDSCAN\s0\fR, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen. .Sp Beispiel für die Befehlszeileninterpreter in \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDHOME=C:\eUsers\eerwin\ewcd .Ve .Sp Ein Beispiel für POSIX-Shells: .Sp .Vb 1 \& export WCDHOME="$HOME/.wcd" .Ve .Sp Ein Beispiel für Csh-Shells: .Sp .Vb 1 \& setenv WCDHOME "$HOME/.wcd" .Ve .IP "\fB\s-1WCDSCAN\s0\fR" 4 .IX Item "WCDSCAN" Verwenden Sie die Umgebungsvariable \fI\s-1WCDSCAN\s0\fR, um die Einstellung des vorgegebenen Einleseverzeichnisses \fI\s-1HOME\s0\fR außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen. .Sp Beispiel für die Befehlszeileninterpreter von \s-1DOS,\s0 Windows und \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDSCAN=C:\eUsers\eerwin;D:\edata \& \& set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\e\eprojectdrive\eprojectX .Ve .Sp Ein Beispiel für POSIX-Shells: .Sp .Vb 1 \& export WCDSCAN="$HOME:/projectdisk/projectX" .Ve .Sp Ein Beispiel für Csh-Shells: .Sp .Vb 1 \& setenv WCDSCAN "$HOME:/projectdisk/projectX" .Ve .IP "\fB\s-1WCDFILTER\s0\fR" 4 .IX Item "WCDFILTER" Geben Sie Filter mit der Umgebungsvariable \fI\s-1WCDFILTER\s0\fR an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable \fI\s-1PATH\s0\fR. Ob dabei Groß\-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab. .Sp Beispiel für die Befehlszeileninterpreter in \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDFILTER=projects;doc .Ve .Sp Ein Beispiel für POSIX-Shells: .Sp .Vb 1 \& export WCDFILTER="projects:doc" .Ve .Sp Ein Beispiel für Csh-Shells: .Sp .Vb 1 \& setenv WCDFILTER "projects:doc" .Ve .IP "\fB\s-1WCDBAN\s0\fR" 4 .IX Item "WCDBAN" Die in der Umgebungsvariable \fI\s-1WCDBAN\s0\fR angegebenen Pfade werden gebannt, siehe auch die Option \fB\-b\fR. Geben Sie eine Liste der Pfade an, durch das \&\fI\s-1PATH\s0\fR\-Trennzeichen der Shell getrennt. .IP "\fB\s-1WCDEXCLUDE\s0\fR" 4 .IX Item "WCDEXCLUDE" Die in der Umgebungsvariable \fI\s-1WCDEXCLUDE\s0\fR angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen \fB\-x\fR und \fB\-xf\fR. Geben Sie eine Liste der Pfade an, durch das \fI\s-1PATH\s0\fR\-Trennzeichen der Shell getrennt. .Sp Beispiel für die Befehlszeileninterpreter in \s-1DOS,\s0 Windows, \s-1OS/2:\s0 .Sp .Vb 1 \& set WCDEXCLUDE=*/windows;*/temp;*CVS .Ve .Sp Ein Beispiel für POSIX-Shells: .Sp .Vb 1 \& export WCDEXCLUDE="/dev:/tmp:*CVS" .Ve .Sp Ein Beispiel für Csh-Shells: .Sp .Vb 1 \& setenv WCDEXCLUDE "/dev:/tmp:*CVS" .Ve .IP "\fB\s-1WCDUSERSHOME\s0\fR" 4 .IX Item "WCDUSERSHOME" Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert \f(CW\*(C`\e\eusers\*(C'\fR. Unter Unix/Cygwin ist \f(CW\*(C`/home\*(C'\fR die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen \fB\-u\fR und \fB+u\fR. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option \fB\-v\fR. .IP "\fB\s-1WCDSTACKFILE\s0\fR" 4 .IX Item "WCDSTACKFILE" Wcd bevorzugt \fI\s-1WCDSTACKFILE\s0\fR gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt \s-1DATEIEN\s0). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben. .Sp So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d\-%H%M%S) .Ve .Sp Für einen Stapel pro \fIxterm\fR\|(1) verwenden Sie die Umgebungsvariable \&\fI\s-1WINDOWID\s0\fR: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID .Ve .Sp Einen Stapel pro Bildschirm erreichen Sie für \s-1GNU\s0 \fIscreen\fR\|(1) so: .Sp .Vb 1 \& export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW .Ve .IP "\fB\s-1TERMINFO\s0\fR" 4 .IX Item "TERMINFO" Wenn die Umgebungsvariable \fI\s-1TERMINFO\s0\fR, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind \&\f(CW\*(C`/usr/lib/terminfo\*(C'\fR und \f(CW\*(C`/usr/share/terminfo\*(C'\fR. .IP "\fB\s-1PDC_RESTORE_SCREEN\s0\fR" 4 .IX Item "PDC_RESTORE_SCREEN" Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable \&\fI\s-1PDC_RESTORE_SCREEN\s0\fR. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter: .Sp .Vb 1 \& set PDC_RESTORE_SCREEN=1 .Ve .Sp Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben. .IP "\fB\s-1SHELL\s0\fR" 4 .IX Item "SHELL" Die Angabe von \f(CW\*(C`#!$SHELL\*(C'\fR in der ersten Zeile des Go-Skripts (für \s-1POSIX\-\s0 oder C\-Shells) ist für 8\-Bit\-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable \fI\s-1SHELL\s0\fR mit dem Befehl \f(CW\*(C`export\*(C'\fR gesetzt werden, sonst kann wcd diese Variable nicht lesen. .IP "\fB\s-1BASH\s0\fR" 4 .IX Item "BASH" Wcd für die DOS-Bash verwendet \f(CW$BASH\fR anstelle von \f(CW$SHELL\fR, weil \&\f(CW$SHELL\fR auf die DOS-Befehlsshell zeigt. \f(CW$BASH\fR muss mit einem \&\f(CW\*(C`export\*(C'\fR\-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen. .SH "SIEHE AUCH" .IX Header "SIEHE AUCH" \&\fIsh\fR\|(1), \fIbash\fR\|(1), \fIcsh\fR\|(1), \fIksh\fR\|(1), \fIzsh\fR\|(1), \fIlocale\fR\|(1), \fIncurses\fR\|(1), .SH "AUTOREN" .IX Header "AUTOREN" Wcd wurde von Erwin Waterlander geschrieben. .PP Projektseite: .PP SourceForge: .PP Freecode: .PP Die Formatierung der Handbuchseite wurde von Jari Aalto bereitgestellt. .PP \&\s-1NCD\s0 wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch wcd-5.2.5/src/man/de/man1/wcd.pod0000664000175000017500000014653612345660657016622 0ustar waterlanwaterlan ***************************************************** * GENERATED FILE, DO NOT EDIT * * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * ***************************************************** This file was generated by po4a(7). Do not store it (in VCS, for example), but store the PO file used as source file by po4a-translate. In fact, consider this as a binary, and the PO file as a regular .c file: If the PO get lost, keeping this translation up-to-date will be harder. =pod =encoding UTF-8 =head1 BEZEICHNUNG wcd - Wherever Change Directory chdir für DOS und Unix =head1 ÜBERSICHT wcd [Optionen] [Verzeichnis] =head1 BESCHREIBUNG =head2 Übersicht Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche. Wcd wurde nach dem Vorbild des Norton Change Directory (NCD) entworfen. NCD erschien zuerst 1987 in I für DOS, veröffentlicht von Peter Norton. Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: DOS (command.com), Windows (cmd.exe und PowerShell), OS/2 (cmd.exe) sowie Unix-Shells wie Bourne- (sh), Bourne-Again- (bash), Korn- (ksh), Z- (zsh) und die C- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells. Wcd unterstützt 8-Bit-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt LOKALISIERUNG. Im Abschnitt INSTALLATION finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können. =head2 Grundlegende Verwendung Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt. Beispielsweise wechselt dieser Befehl in das Verzeichnis C des aktuellen Benutzers: wcd Desk Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem). =head2 Platzhalter Wcd unterstützt die folgenden Platzhalter: * findet jede Zeichensequenz (kein oder mehr Zeichen) ? findet jedes einzelne Zeichen [GRUPPE] findet jedes Zeichen in der angegebenen Gruppe, [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen GRUPPE nicht enthalten ist. Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form I, zum Beispiel C<0-9> oder C. Dabei ist C<[0-9a-zA-Z_]> die minimal mögliche Gruppe nach dem Muster C<[..]>. Internationale Zeichen (zum Beispiel 8-Bit-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen C<[]*?!^-\> innerhalb oder außerhalb des Musters C<[..]> zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich (C<\>) voran, um es zu maskieren. Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet: wcd *top Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält: wcd *top* Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt: wcd [a-c]* Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf I<*me/Desk*> passt. wcd me/Desk Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel: wcd src*/*1?/a*2 =head2 Weitere Anwendungsfälle Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option B<-w> geändert werden. Der interaktive Verzeichnisbaumbrowser kann mit der Option B<-g> gestartet werden. wcd -g Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten. Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel: wcd .. Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option B<-k>. Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen B<-z>, B<->, B<+> und B<=>. In Umgebungen mit mehreren Benutzern kann mit der Option B<-u> in die Verzeichnisse anderer Benutzer gewechselt werden. Auf DOS- und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\« als Verzeichnistrenner verwenden. Auf DOS- und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen. wcd d:games =head2 UNC-Pfade unter Windows Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, MSYS, zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie C<\\Servername\Freigabename>. Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, MSYS, zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein. =head2 Schnittstellen Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt. Die erste Schnittstelle verwendet die Standardeingabe und -ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel. Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option B<-N> verwenden. Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Diese Schnittstelle kann mit der Option B<-g> aktiviert werden. Mit der Option B<-o> ist es jederzeit möglich, auf die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen. =head1 OPTIONEN =over 4 =item B<-a> fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu. Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern. =item B<-aa> fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu. =item B<-A PFAD> liest den Verzeichnisbaum aus I und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: C. Siehe auch die Optionen B<-S>, B<-s> und B<-E>. =item B<-b> verbannt den aktuellen Pfad. Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen. Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen. Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option B<-xf>. =item B<-c, --direct-cd> Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt: 1. Es wird versucht, einen Treffer in der oder den Baumdatei(en) zu finden. 2. Wird nichts gefunden, wird versucht, das eingegebene Verzeichnis zu öffnen. Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge: 1. Es wird versucht, das eingegebene Verzeichnis zu öffnen. 2. Wird nichts gefunden, wird nach einem Treffer in der oder den Baumdatei(en) gesucht. =item B<-d LAUFWERK> legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur DOS). Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable I nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen B<->, B<+> und B<=> stehen. =item B<-e> fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu. Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen. =item B<-ee> fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu. =item B<-E PFAD> liest den Verzeichnisbaum aus I und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen B<-A> und B<-S>. =item B<-f DATEI> liest die Baumdatei I. Die vorgegebene Baumdatei wird nicht gelesen. =item B<+f DATEI> liest die Baumdatei I zusätzlich zur vorgegebenen Baumdatei. =item B<-g> verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle). Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar. Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt. Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen NCD unter DOS. Der Unterschied besteht darin, dass in NCD alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in NCD möglich, da ein Verzeichnisname in DOS nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen. Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen NCD. Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum. Siehe die Optionen B<-Ta>, B<-TC> und B<-Tc> zum Ändern des Navigationsverhaltens. =item B<-gd> gibt die Baumdateien als Baum in die Standardausgabe aus. =item B<-G PFAD> schreibt das Go-Skript in das Verzeichnis I. Unter Unix beispielsweise schreibt C ein Go-Skript in B. =item B<-GN, --no-go-script> verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit B<-j> verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen. =item B<-h, --help> zeigt eine Hilfe an und beendet das Programm. =item B<-i, --ignore-case> ignoriert Groß-/Kleinschreibung. In den DOS- und Windows-Versionen ist dies der Standard. In den Unix- und Cygwin-Versionen wird per Vorgabe die Groß-/Kleinschreibung berücksichtigt. =item B<+i, --no-ignore-case> berücksichtigt Groß-/Kleinschreibung. Siehe auch Option B<-i>. =item B<-I, --ignore-diacritics> ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, sowie Unicode Latin-1, Latin Extended-A, und Latin Extended-B. Siehe auch L =item B<+I, --no-ignore-diacritics> berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option B<-I>. =item B<-j, --just-go> Geh-einfach-Modus. In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter. Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } Auf Windows-Systemen mit einer NT4-Shell können Sie den folgenden Alias anlegen: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option B<-GN> zusammen mit B<-j> verwenden. =item B<-k, --keep-paths> erhält Pfade. Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert. =item B<-K, --color> verwendet Farben im grafischen Modus. =item B<-l ALIAS> benennt den aktuellen Pfad mit I. Wcd speichert den aktuellen Pfad mit dem I in der Alias-Datei. Bei Aliasen wird Groß-/Kleinschreibung berücksichtigt. =item B<-m VERZEICHNIS> erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu. =item B<-L, --license> zeigt die Lizenz des Programms an. =item B<-M VERZEICHNIS> erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu. =item B<-n PFAD> liest die relative Baumdatei aus I. Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option B<+S> angelegt worden sein. I kann auch direkt auf eine Datei verweisen. Ein Beispiel. Nehmen wir an, ein anderes System wurde in C eingehängt: wcd -n /mnt/network src Wcd öffnet die Datei der relativen Baumansicht in C. Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet. =item B<+n PFAD> liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option B<-n>. =item B<-N, --numbers> verwendet Zahlen anstelle von Buchstaben. Wcd mit einer Conio- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option B<-N> angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option B<-N> können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen. =item B<-o> verwendet die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe). Falls aus verschiedenen Gründen die conio- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option B<-o> auf die stdin/stdout-Schnittstelle ausweichen. =item B<-od, --to-stdout> gibt alle Übereinstimmungen in die Standardausgabe aus. =item B<-q, --quiet> Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt. =item B<-r VERZEICHNIS> entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei. Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen. =item B<-rmtree VERZEICHNIS> entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei. Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt. =item B<-s> liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis C<$HOME> ein. Falls I nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen. Die existierende vorgegebene Baumdatei wird dabei überschrieben. Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable C außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt UMGEBUNGSVARIABLEN. =item B<-S PFAD> liest den Verzeichnisbaum aus I und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen B<-A>, B<-s> und B<-E>. Zum Beispiel können Sie mit der Option B<-A> eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: C. =item B<-S PFAD> liest das Laufwerk aus I ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen B<-n> und B<+n> verwendet. Beispiel C. =item B<-t> entfernt das temporäre Einhängeverzeichnis C nicht (nur Unix). Wcd entfernt per Vorgabe C aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option B<-t> abschalten. =item B<-T, --ascii-tree> zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden. =item B<-Ta, --alt-tree-nav> verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht. In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option B<-Ta> das Springen in beziehungslose Verzeichnisse. In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem KDE Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links. Sie können direkt zwischen dem Vorgabe- und dem Alternativmodus wechseln, indem Sie drücken. Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke. =item B<-TC, --center-tree> zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste im grafischen Baum an- und abgeschaltet werden. Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen NCD. =item B<-Tc, --compact-tree> Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen NCD unter DOS. Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option B<-Tc> oder schalten Sie direkt mit der Taste um. =item B<-Td, --cjk-width> Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird. Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt. =item B<-u BENUTZER> liest die Daten eines anderen Benutzers für die Baumansicht basierend auf I ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch I im Abschnitt UMGEBUNGSVARIABLEN. Unter Unix/Cygwin wird C als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach C und C, in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird C<\\users> als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd C<\\users\BENUTZER\treedata.wcd> und C<\\users\BENUTZER\.wcd\treedata.wcd> zu lesen. =item B<+u BENUTZER> liest die vorgegebene Baumansicht-Datei von BENUTZER zusätzlich zu Ihrer eigenen Baumansicht-Datei ein. =item B<-v, --verbose> zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an. =item B<-V, --version> zeigt Versionsinformationen an und beendet das Programm. =item B<-w, --wild-match-only> zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen. =item B<-x PFAD> schließt I vom Einlesen aus. Mit dieser Option schließt wcd I und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option B<-x> kann mehrfach angegeben werden. wcd -x -x -s Die Option B<-x> muss vor jeder anderen Einleseoption angegeben werden (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen I oder I gesetzt ist. Falls I oder I gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel: wcd -x c:/temp -S c: Anderenfalls geben Sie keinen Laufwerksbuchstaben an. wcd -x /temp -s =item B<-xf DATEI> schließt alle in I aufgelisteten Pfade vom Einlesen aus. Wenn diese Option ausgewählt ist, schließt wcd alle in I aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option B<-xf> kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix): wcd -xf ~/.ban.wcd -s Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit C<*/.svn> hinzu. Die Option B<-xf> muss vor jeder anderen Einleseoption angegeben werden (B<-s>, B<-S>, B<+S>, B<-A>, B<-E>). =item B<-y, --assume-yes> beantwortet alle Abfragen automatisch mit »ja«. Wcd gibt keine Ja-/Nein-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option B<-rmtree> verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja-/Nein-Abfragen führen könnten. =item B<-z ZAHL> setzt die maximale Stapelgröße auf ZAHL. Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (B<->,B<+>,B<=>). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt. Ein korrekter Befehl ist: wcd -z 50 - Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre: wcd - -z 50 Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument B<-z 50> wird ignoriert. Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } =item B<-[ZAHL]> legt ein Verzeichnis auf den Stapel (ZAHL mal). Vorgabe ist 1. Geht ein Verzeichnis zurück. Der Befehl C geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls C. Der Stapel ist zyklisch. =item B<+[ZAHL]> nimmt ein Verzeichnis vom Stapel (ZAHL mal). Vorgabe ist 1. Geht ein Verzeichnis vor. Der Befehl C geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls C. Der Stapel ist zyklisch. =item B<=> zeigt den Stapel an. Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk C<*> markiert. =back =head1 INSTALLATION Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten cd(1)-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde. Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen I und I. Siehe den Abschnitt UMGEBUNGSVARIABLEN. =head2 Installation für POSIX-Shells Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem MSYS fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel C<$HOME/.bashrc>): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. Der Ort des Go-Skripts C ist abhängig von der Shell selbst. Wcd für die auf DJGPP basierende DOS-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis C gespeichert, und falls weder I noch I definiert sind, wird das Go-Skript nach c:/ geschrieben. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } Die WinZsh-Version von wcd ist auch etwas anders. Es gibt kein C-Verzeichnis. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Weitere Informationen finden Sie im Abschnitt DATEIEN. =head2 Installation für C-ähnliche Shells (csh, tcsh) Fügen Sie den folgenden Alias zur Shell-Startdatei C<$HOME/.cshrc> oder C<$HOME/.tcshrc> hinzu: if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. =head2 Version für den Windows-Befehlszeileninterpreter Entpacken Sie die Zip-Datei und fügen Sie den Ordner C zu Ihrer Umgebungsvariable I hinzu. Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat-Datei möglich. Das Batch-Skript C ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript C erzeugt. Dann führt C wiederum C aus, welches tatsächlich das Verzeichnis wechselt. =head2 Windows VISTA und neuer Im Befehlszeileninterpreter in Windows VISTA oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und I wählen. =head2 Version für die Windows PowerShell Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable $profile bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen I oder I definiert ist. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } I wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber. =head2 Version für den Befehlszeileninterpreter von OS/2 Im Befehlszeileninterpreter von OS/2 (cmd.exe) kann ein OS/2-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript C, das in der aktuellen Shell ausgeführt werden muss. Das Skript C führt zuerst C aus, welches seinerseits das Skript C erzeugt. Danach führt C das Skript C aus. =head1 LOKALISIERUNG =over 4 =item B Die primäre Sprache wird durch die Umgebungsvariable I festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells: export LANG=de Deutsch export LANG=de_DE Deutsch, Deutschland export LANG=de_CH Deutsch, Schweiz export LANG=es_ES Spanisch, Spanien export LANG=es_MX Spanisch, Mexiko export LANG=en_US.iso88591 English, USA, Latin-1-Zeichenkodierung Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu gettext(1): L. Auf Unix-Systemen können Sie den Befehl locale(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten. =item B Mit der Umgebungsvariable I können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt I vor I den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: C. Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable I oder I auf einen anderen Wert als I setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: L Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache. =item B Mit der Umgebungsvariable I kann die während der Kompilierung und Installation verwendete Variable I außer Kraft gesetzt werden. I wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist C. Nach Eingabe von C wird das von wcd verwendete I angezeigt. Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable I setzen, die auf das Verzeichnis mit den Sprachdateien zeigt. Ein Beispiel für den Windows-Befehlszeileninterpreter: set WCDLOCALEDIR=c:/my_prefix/share/locale Ein Beispiel für eine POSIX-Shell: export WCDLOCALEDIR=$HOME/share/locale =item B Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable I gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß-/Kleinschreibung wird nicht berücksichtigt. Die Sortierung bevorzugt die Umgebungsvariable I vor I. Falls Sie I auf C oder C setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes: export LANG=de_DE export LC_COLLATE=C =item B Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable I vor I. Um beispielsweise die Zeichenkodierung auf UTF-8 zu setzen, können Sie Folgendes ausführen: export LC_CTYPE=en_US.UTF-8 =item B Alle lokalen Umgebungsvariablen, die mit I beginnen, werden durch die Umgebungsvariable I außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt I vor I und I. =back =head2 WINDOWS CODE PAGES Es gibt zwei Gruppen von Codepages, die DOS Codepages (OEM) und die Windows Codepages (ANSI). Die vorgegebene Zeichenkodierung für Windows ist ANSI CP1252, wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (CP437 oder CP850), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke. Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage CP1252 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben. Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode- und ANSI-Zeichen korrekt angezeigt werden. Die Nicht-Unicode-Versionen von Wcd I verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann. Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl C geändert. Wenn Sie C eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl C ein, um die aktive Codepage für die Windows-Konsole anzuzeigen. =head2 UNICODE Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode-Unterstützung erstellt wurde, geben Sie C ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat). Wcd wurde »weich« auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF-8-spezifischen Code. Siehe auch L. Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie C ein. Wcd mit Unicode-Normalisierung findet Treffer mittels I Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch L. =head3 UTF-8 unter Unix/Linux Um UTF-8-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch UTF-8 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF-8-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie xterm(1) mit einer UTF-8-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646-1, zum Beispiel mit LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Moderne GNU-Linux-Distributionen unterstützen UTF-8 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet. Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben. =head3 UTF-16 unter Windows Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder TCC/LE von JP Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista). Unter Windows sind alle Verzeichnisnamen in Unicode UTF-16 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus. Wcd mit Unicode-Unterstützung liest die in UTF-16 kodierten Verzeichnisnamen und wandelt diese intern in UTF-8 um. Alle Baumdateien sind in UTF-8 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in UTF-8 kodiertes Go-Skript. Alle Versionen der Windows Powershell können in UTF-8 kodierte Skripte ausführen, sofern sich im Skript eine BOM (Bytereihenfolge-Markierung) für UTF-8 befindet. Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in UTF-8 kodiert sein, und das Batch-Skript I (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (UTF-8) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript C. Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden. Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine BOM (Markierung der Bytereihenfolge) in der Datei befindet (siehe L). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine BOM in die in UTF-8 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind. =head3 UTF-8 unter Cygwin Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF-16-Namen unter Windows in UTF-8 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF-8-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable I oder I auf UTF-8. Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden. Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (BOM) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in B vorgegeben ist. =head1 DATEIEN Falls die Umgebungsvariable I gesetzt ist, verwendet wcd I anstelle von I. Alle C<*.wcd>-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version. =over 4 =item B Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt INSTALLATION. =item B Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei. DOS: \treedata.wcd or %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd =item B Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern. DOS: \extra.wcd or %HOME%\extra.wcd Unix: $HOME/.extra.wcd =item B In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option B<-b>. Platzhalter werden unterstützt. DOS: \ban.wcd or %HOME%\ban.wcd Unix: $HOME/.ban.wcd =item B Optionale Datei mit Aliasen für wcd. Siehe Option B<-l>. DOS: \alias.wcd or %HOME%\alias.wcd Unix: $HOME/.alias.wcd =item B In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option B<-d> geändert werden. DOS: c:\stack.wcd or %HOME%\stack.wcd Unix: $HOME/.stack.wcd Der Name der Stapeldatei kann mit der Umgebungsvariable I geändert werden. Siehe Abschnitt UMGEBUNGSVARIABLEN. =item B Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option B<-d> geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in C<$HOME/bin> gespeichert. Das Verzeichnis für diese Datei kann mit der Option B<-G> geändert werden. DOS Bash: c:/wcd.go oder $HOME/wcd.go Windows Befehlszeileninterpreter: c:\wcdgo.bat oder %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2-Befehlszeileninterpreter: c:\wcdgo.cmd oder %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go =item B Textdatei mit relativen Pfaden von I. Siehe die Optionen B<+S>, B<-n> und B<+n>. DOS: \rtdata.wcd Unix: /.rtdata.wcd =back =head1 UMGEBUNGSVARIABLEN =over 4 =item B Wcd verwendet per Vorgabe die Umgebungsvariable I, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt DATEIEN. Dies kann mit der Umgebungsvariable I außer Kraft gesetzt werden. I legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option B<-s> verwendet wird. Dies kann mit der Umgebungsvariable I außer Kraft gesetzt werden. In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und MSYS ist es erforderlich, dass I oder I gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional. Falls I unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis I. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus I ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel: wcd -S c: -A d: -A e: Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt. =item B Mit der Umgebungsvariable I können Sie den Ort der Dateien von wcd ändern. Falls sowohl I als auch I gesetzt ist, wird I anstelle von I verwendet. In Wcd-Versionen vor 5.1.5 wurde durch I auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option B<-s>. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable I, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDHOME=C:\Users\erwin\wcd Ein Beispiel für POSIX-Shells: export WCDHOME="$HOME/.wcd" Ein Beispiel für Csh-Shells: setenv WCDHOME "$HOME/.wcd" =item B Verwenden Sie die Umgebungsvariable I, um die Einstellung des vorgegebenen Einleseverzeichnisses I außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen. Beispiel für die Befehlszeileninterpreter von DOS, Windows und OS/2: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Ein Beispiel für POSIX-Shells: export WCDSCAN="$HOME:/projectdisk/projectX" Ein Beispiel für Csh-Shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" =item B Geben Sie Filter mit der Umgebungsvariable I an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable I. Ob dabei Groß-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDFILTER=projects;doc Ein Beispiel für POSIX-Shells: export WCDFILTER="projects:doc" Ein Beispiel für Csh-Shells: setenv WCDFILTER "projects:doc" =item B Die in der Umgebungsvariable I angegebenen Pfade werden gebannt, siehe auch die Option B<-b>. Geben Sie eine Liste der Pfade an, durch das I-Trennzeichen der Shell getrennt. =item B Die in der Umgebungsvariable I angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen B<-x> und B<-xf>. Geben Sie eine Liste der Pfade an, durch das I-Trennzeichen der Shell getrennt. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDEXCLUDE=*/windows;*/temp;*CVS Ein Beispiel für POSIX-Shells: export WCDEXCLUDE="/dev:/tmp:*CVS" Ein Beispiel für Csh-Shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" =item B Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert C<\\users>. Unter Unix/Cygwin ist C die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen B<-u> und B<+u>. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option B<-v>. =item B Wcd bevorzugt I gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt DATEIEN). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben. So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell: export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Für einen Stapel pro xterm(1) verwenden Sie die Umgebungsvariable I: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Einen Stapel pro Bildschirm erreichen Sie für GNU screen(1) so: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW =item B Wenn die Umgebungsvariable I, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind C und C. =item B Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable I. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter: set PDC_RESTORE_SCREEN=1 Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben. =item B Die Angabe von C<#!$SHELL> in der ersten Zeile des Go-Skripts (für POSIX- oder C-Shells) ist für 8-Bit-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable I mit dem Befehl C gesetzt werden, sonst kann wcd diese Variable nicht lesen. =item B Wcd für die DOS-Bash verwendet C<$BASH> anstelle von C<$SHELL>, weil C<$SHELL> auf die DOS-Befehlsshell zeigt. C<$BASH> muss mit einem C-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen. =back =head1 SIEHE AUCH sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), =head1 AUTOREN Wcd wurde von Erwin Waterlander geschrieben. Projektseite: L SourceForge: L Freecode: L Die Formatierung der Handbuchseite wurde von Jari Aalto bereitgestellt. NCD wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch L wcd-5.2.5/src/man/de/man1/wcd.txt0000664000175000017500000015637512345660660016653 0ustar waterlanwaterlanBEZEICHNUNG wcd - Wherever Change Directory chdir für DOS und Unix ÜBERSICHT wcd [Optionen] [Verzeichnis] BESCHREIBUNG Übersicht Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche. Wcd wurde nach dem Vorbild des Norton Change Directory (NCD) entworfen. NCD erschien zuerst 1987 in *The Norton Utilities, Release 4* für DOS, veröffentlicht von Peter Norton. Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: DOS (command.com), Windows (cmd.exe und PowerShell), OS/2 (cmd.exe) sowie Unix-Shells wie Bourne- (sh), Bourne-Again- (bash), Korn- (ksh), Z- (zsh) und die C- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells. Wcd unterstützt 8-Bit-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt LOKALISIERUNG. Im Abschnitt INSTALLATION finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können. Grundlegende Verwendung Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt. Beispielsweise wechselt dieser Befehl in das Verzeichnis "/home/user/Desktop" des aktuellen Benutzers: wcd Desk Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem). Platzhalter Wcd unterstützt die folgenden Platzhalter: * findet jede Zeichensequenz (kein oder mehr Zeichen) ? findet jedes einzelne Zeichen [GRUPPE] findet jedes Zeichen in der angegebenen Gruppe, [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen GRUPPE nicht enthalten ist. Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form *Zeichen minus Zeichen*, zum Beispiel "0-9" oder "A-Z". Dabei ist "[0-9a-zA-Z_]" die minimal mögliche Gruppe nach dem Muster "[..]". Internationale Zeichen (zum Beispiel 8-Bit-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen "[]*?!^-\" innerhalb oder außerhalb des Musters "[..]" zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich ("\") voran, um es zu maskieren. Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet: wcd *top Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält: wcd *top* Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt: wcd [a-c]* Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf **me/Desk** passt. wcd me/Desk Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel: wcd src*/*1?/a*2 Weitere Anwendungsfälle Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option -w geändert werden. Der interaktive Verzeichnisbaumbrowser kann mit der Option -g gestartet werden. wcd -g Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten. Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel: wcd .. Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option -k. Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen -z, -, + und =. In Umgebungen mit mehreren Benutzern kann mit der Option -u in die Verzeichnisse anderer Benutzer gewechselt werden. Auf DOS- und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\« als Verzeichnistrenner verwenden. Auf DOS- und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen. wcd d:games UNC-Pfade unter Windows Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, MSYS, zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie "\\Servername\Freigabename". Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, MSYS, zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein. Schnittstellen Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt. Die erste Schnittstelle verwendet die Standardeingabe und -ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel. Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option -N verwenden. Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Diese Schnittstelle kann mit der Option -g aktiviert werden. Mit der Option -o ist es jederzeit möglich, auf die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen. OPTIONEN -a fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu. Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern. -aa fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu. -A PFAD liest den Verzeichnisbaum aus *PFAD* und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele: wcd -A . wcd -A /home -A /etc wcd -A d: -A e: -A \\server\share Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: "wcd -A \\Servername". Siehe auch die Optionen -S, -s und -E. -b verbannt den aktuellen Pfad. Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen. Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen. Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option -xf. -c, --direct-cd Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt: 1. Es wird versucht, einen Treffer in der oder den Baumdatei(en) zu finden. 2. Wird nichts gefunden, wird versucht, das eingegebene Verzeichnis zu öffnen. Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge: 1. Es wird versucht, das eingegebene Verzeichnis zu öffnen. 2. Wird nichts gefunden, wird nach einem Treffer in der oder den Baumdatei(en) gesucht. -d LAUFWERK legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur DOS). Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable *HOME* nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen -, + und = stehen. -e fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu. Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen. -ee fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu. -E PFAD liest den Verzeichnisbaum aus *PFAD* und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen -A und -S. -f DATEI liest die Baumdatei *DATEI*. Die vorgegebene Baumdatei wird nicht gelesen. +f DATEI liest die Baumdatei *DATEI* zusätzlich zur vorgegebenen Baumdatei. -g verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle). Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar. Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt. Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen NCD unter DOS. Der Unterschied besteht darin, dass in NCD alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in NCD möglich, da ein Verzeichnisname in DOS nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen. Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen NCD. Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum. Siehe die Optionen -Ta, -TC und -Tc zum Ändern des Navigationsverhaltens. -gd gibt die Baumdateien als Baum in die Standardausgabe aus. -G PFAD schreibt das Go-Skript in das Verzeichnis *PFAD*. Unter Unix beispielsweise schreibt "wcd -G PFAD" ein Go-Skript in PFAD/wcd.go. -GN, --no-go-script verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit -j verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen. -h, --help zeigt eine Hilfe an und beendet das Programm. -i, --ignore-case ignoriert Groß-/Kleinschreibung. In den DOS- und Windows-Versionen ist dies der Standard. In den Unix- und Cygwin-Versionen wird per Vorgabe die Groß-/Kleinschreibung berücksichtigt. +i, --no-ignore-case berücksichtigt Groß-/Kleinschreibung. Siehe auch Option -i. -I, --ignore-diacritics ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, sowie Unicode Latin-1, Latin Extended-A, und Latin Extended-B. Siehe auch +I, --no-ignore-diacritics berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option -I. -j, --just-go Geh-einfach-Modus. In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter. Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen: wcd () { cd "$($HOME/bin/wcd.exe -j $@)" } Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden. wcd () { cd "`$HOME/bin/wcd.exe -j $@`" } Auf Windows-Systemen mit einer NT4-Shell können Sie den folgenden Alias anlegen: alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]` Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option -GN zusammen mit -j verwenden. -k, --keep-paths erhält Pfade. Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert. -K, --color verwendet Farben im grafischen Modus. -l ALIAS benennt den aktuellen Pfad mit *ALIAS*. Wcd speichert den aktuellen Pfad mit dem *ALIAS* in der Alias-Datei. Bei Aliasen wird Groß-/Kleinschreibung berücksichtigt. -m VERZEICHNIS erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu. -L, --license zeigt die Lizenz des Programms an. -M VERZEICHNIS erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu. -n PFAD liest die relative Baumdatei aus *PFAD*. Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option +S angelegt worden sein. *PFAD* kann auch direkt auf eine Datei verweisen. Ein Beispiel. Nehmen wir an, ein anderes System wurde in "/mnt/network" eingehängt: wcd -n /mnt/network src Wcd öffnet die Datei der relativen Baumansicht in "/mnt/network/". Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet. +n PFAD liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option -n. -N, --numbers verwendet Zahlen anstelle von Buchstaben. Wcd mit einer Conio- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option -N angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option -N können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen. -o verwendet die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe). Falls aus verschiedenen Gründen die conio- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option -o auf die stdin/stdout-Schnittstelle ausweichen. -od, --to-stdout gibt alle Übereinstimmungen in die Standardausgabe aus. -q, --quiet Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt. -r VERZEICHNIS entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei. Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen. -rmtree VERZEICHNIS entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei. Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt. -s liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis $HOME ein. Falls *HOME* nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen. Die existierende vorgegebene Baumdatei wird dabei überschrieben. Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable "WCDSCAN" außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt UMGEBUNGSVARIABLEN. -S PFAD liest den Verzeichnisbaum aus *PFAD* und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen -A, -s und -E. Zum Beispiel können Sie mit der Option -A eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele: Unix: wcd -S / wcd -S /home -A /etc -A /usr DOS/Windows: wcd -S c:/ wcd -S c: -A d: -A \\server\share Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: "wcd -S \\Servername". -S PFAD liest das Laufwerk aus *PFAD* ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen -n und +n verwendet. Beispiel "wcd -n PFAD src". -t entfernt das temporäre Einhängeverzeichnis "/tmp_mnt" nicht (nur Unix). Wcd entfernt per Vorgabe "/tmp_mnt/" aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option -t abschalten. -T, --ascii-tree zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden. -Ta, --alt-tree-nav verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht. In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option -Ta das Springen in beziehungslose Verzeichnisse. In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem KDE Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links. Sie können direkt zwischen dem Vorgabe- und dem Alternativmodus wechseln, indem Sie drücken. Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke. -TC, --center-tree zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste im grafischen Baum an- und abgeschaltet werden. Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen NCD. -Tc, --compact-tree Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen NCD unter DOS. Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option -Tc oder schalten Sie direkt mit der Taste um. -Td, --cjk-width Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird. Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt. -u BENUTZER liest die Daten eines anderen Benutzers für die Baumansicht basierend auf *BENUTZER* ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch *WCDUSERSHOME* im Abschnitt UMGEBUNGSVARIABLEN. Unter Unix/Cygwin wird "/home" als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach "/home/BENUTZER/.treedata.wcd" und "/home/BENUTZER/.wcd/.treedata.wcd", in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird "\\users" als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd "\\users\BENUTZER\treedata.wcd" und "\\users\BENUTZER\.wcd\treedata.wcd" zu lesen. +u BENUTZER liest die vorgegebene Baumansicht-Datei von BENUTZER zusätzlich zu Ihrer eigenen Baumansicht-Datei ein. -v, --verbose zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an. -V, --version zeigt Versionsinformationen an und beendet das Programm. -w, --wild-match-only zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen. -x PFAD schließt *PFAD* vom Einlesen aus. Mit dieser Option schließt wcd *PFAD* und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option -x kann mehrfach angegeben werden. wcd -x -x -s Die Option -x muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E). Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen *HOME* oder *WCDHOME* gesetzt ist. Falls *HOME* oder *WCDHOME* gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel: wcd -x c:/temp -S c: Anderenfalls geben Sie keinen Laufwerksbuchstaben an. wcd -x /temp -s -xf DATEI schließt alle in *DATEI* aufgelisteten Pfade vom Einlesen aus. Wenn diese Option ausgewählt ist, schließt wcd alle in *DATEI* aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option -xf kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix): wcd -xf ~/.ban.wcd -s Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit "*/.svn" hinzu. Die Option -xf muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E). -y, --assume-yes beantwortet alle Abfragen automatisch mit »ja«. Wcd gibt keine Ja-/Nein-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option -rmtree verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja-/Nein-Abfragen führen könnten. -z ZAHL setzt die maximale Stapelgröße auf ZAHL. Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (-,+,=). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt. Ein korrekter Befehl ist: wcd -z 50 - Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre: wcd - -z 50 Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument -z 50 wird ignoriert. Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das: wcd () { wcd.exe -z 50 "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } -[ZAHL] legt ein Verzeichnis auf den Stapel (ZAHL mal). Vorgabe ist 1. Geht ein Verzeichnis zurück. Der Befehl "wcd -" geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls "wcd -3". Der Stapel ist zyklisch. +[ZAHL] nimmt ein Verzeichnis vom Stapel (ZAHL mal). Vorgabe ist 1. Geht ein Verzeichnis vor. Der Befehl "wcd +" geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls "wcd +2". Der Stapel ist zyklisch. = zeigt den Stapel an. Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk "*" markiert. INSTALLATION Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten cd(1)-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde. Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen *HOME* und *WCDHOME*. Siehe den Abschnitt UMGEBUNGSVARIABLEN. Installation für POSIX-Shells Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem MSYS fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel "$HOME/.bashrc"): wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/bin/wcd.go } *PFAD* wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. Der Ort des Go-Skripts "wcd.go" ist abhängig von der Shell selbst. Wcd für die auf DJGPP basierende DOS-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis "bin" gespeichert, und falls weder *WCDHOME* noch *HOME* definiert sind, wird das Go-Skript nach c:/ geschrieben. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME:-"c:"}}/wcd.go } Die WinZsh-Version von wcd ist auch etwas anders. Es gibt kein "bin"-Verzeichnis. wcd () { /wcd.exe "$@" . ${WCDHOME:-${HOME}}/wcd.go } Weitere Informationen finden Sie im Abschnitt DATEIEN. Installation für C-ähnliche Shells (csh, tcsh) Fügen Sie den folgenden Alias zur Shell-Startdatei "$HOME/.cshrc" oder "$HOME/.tcshrc" hinzu: if ( ${?WCDHOME} ) then alias wcd "/wcd.exe \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "/wcd.exe \!* ; source $HOME/bin/wcd.go" endif *PFAD* wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell. Version für den Windows-Befehlszeileninterpreter Entpacken Sie die Zip-Datei und fügen Sie den Ordner "bin" zu Ihrer Umgebungsvariable *PATH* hinzu. Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat-Datei möglich. Das Batch-Skript "wcd.bat" ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript "wcdgo.bat" erzeugt. Dann führt "wcd.go" wiederum "wcdgo.bat" aus, welches tatsächlich das Verzeichnis wechselt. Windows VISTA und neuer Im Befehlszeileninterpreter in Windows VISTA oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und *Als Administrator ausführen* wählen. Version für die Windows PowerShell Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable $profile bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen *HOME* oder *WCDHOME* definiert ist. function wcd { \wcdwin32psh.exe $args & $env:HOME\wcdgo.ps1 } *PFAD* wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber. Version für den Befehlszeileninterpreter von OS/2 Im Befehlszeileninterpreter von OS/2 (cmd.exe) kann ein OS/2-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript "wcdgo.cmd", das in der aktuellen Shell ausgeführt werden muss. Das Skript "wcd.cmd" führt zuerst "wcdos2.exe" aus, welches seinerseits das Skript "wcdgo.cmd" erzeugt. Danach führt "wcd.cmd" das Skript "wcdgo.cmd" aus. LOKALISIERUNG LANG Die primäre Sprache wird durch die Umgebungsvariable *LANG* festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells: export LANG=de Deutsch export LANG=de_DE Deutsch, Deutschland export LANG=de_CH Deutsch, Schweiz export LANG=es_ES Spanisch, Spanien export LANG=es_MX Spanisch, Mexiko export LANG=en_US.iso88591 English, USA, Latin-1-Zeichenkodierung Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu gettext(1): . Auf Unix-Systemen können Sie den Befehl locale(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten. LANGUAGE Mit der Umgebungsvariable *LANGUAGE* können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt *LANGUAGE* vor *LANG* den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: "LANGUAGE=de:nl". Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable *LANG* oder *LC_ALL* auf einen anderen Wert als *C* setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache. WCDLOCALEDIR Mit der Umgebungsvariable *WCDLOCALEDIR* kann die während der Kompilierung und Installation verwendete Variable *LOCALEDIR* außer Kraft gesetzt werden. *LOCALEDIR* wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist "/usr/local/share/locale". Nach Eingabe von "wcd -V" wird das von wcd verwendete *LOCALEDIR* angezeigt. Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable *WCDLOCALEDIR* setzen, die auf das Verzeichnis mit den Sprachdateien zeigt. Ein Beispiel für den Windows-Befehlszeileninterpreter: set WCDLOCALEDIR=c:/my_prefix/share/locale Ein Beispiel für eine POSIX-Shell: export WCDLOCALEDIR=$HOME/share/locale LC_COLLATE Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable *LANG* gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß-/Kleinschreibung wird nicht berücksichtigt. Die Sortierung bevorzugt die Umgebungsvariable *LC_COLLATE* vor *LANG*. Falls Sie *LC_COLLATE* auf "C" oder "POSIX" setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes: export LANG=de_DE export LC_COLLATE=C LC_CTYPE Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable *LC_CTYPE* vor *LANG*. Um beispielsweise die Zeichenkodierung auf UTF-8 zu setzen, können Sie Folgendes ausführen: export LC_CTYPE=en_US.UTF-8 LC_ALL Alle lokalen Umgebungsvariablen, die mit *LC_* beginnen, werden durch die Umgebungsvariable *LC_ALL* außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt *LC_ALL* vor *LC_COLLATE* und *LC_CTYPE*. WINDOWS CODE PAGES Es gibt zwei Gruppen von Codepages, die DOS Codepages (OEM) und die Windows Codepages (ANSI). Die vorgegebene Zeichenkodierung für Windows ist ANSI CP1252, wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (CP437 oder CP850), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke. Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage CP1252 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben. Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode- und ANSI-Zeichen korrekt angezeigt werden. Die Nicht-Unicode-Versionen von Wcd *vor Version 5.2.0* verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann. Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl "chcp" geändert. Wenn Sie "wcd -V" eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl "chcp" ein, um die aktive Codepage für die Windows-Konsole anzuzeigen. UNICODE Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode-Unterstützung erstellt wurde, geben Sie "wcd -V" ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat). Wcd wurde »weich« auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF-8-spezifischen Code. Siehe auch . Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie "wcd -V" ein. Wcd mit Unicode-Normalisierung findet Treffer mittels *kompatiblen* Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch . UTF-8 unter Unix/Linux Um UTF-8-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch UTF-8 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF-8-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie xterm(1) mit einer UTF-8-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646-1, zum Beispiel mit LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1' Moderne GNU-Linux-Distributionen unterstützen UTF-8 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet. Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben. UTF-16 unter Windows Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder TCC/LE von JP Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista). Unter Windows sind alle Verzeichnisnamen in Unicode UTF-16 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus. Wcd mit Unicode-Unterstützung liest die in UTF-16 kodierten Verzeichnisnamen und wandelt diese intern in UTF-8 um. Alle Baumdateien sind in UTF-8 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in UTF-8 kodiertes Go-Skript. Alle Versionen der Windows Powershell können in UTF-8 kodierte Skripte ausführen, sofern sich im Skript eine BOM (Bytereihenfolge-Markierung) für UTF-8 befindet. Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in UTF-8 kodiert sein, und das Batch-Skript *darf keine BOM enthalten* (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (UTF-8) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript "wcdgo.bat". Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden. Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine BOM (Markierung der Bytereihenfolge) in der Datei befindet (siehe ). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine BOM in die in UTF-8 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind. UTF-8 unter Cygwin Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF-16-Namen unter Windows in UTF-8 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF-8-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable *LANG* oder *LC_CTYPE* auf UTF-8. Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden. Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (BOM) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in Cygwin vorgegeben ist. DATEIEN Falls die Umgebungsvariable *WCDHOME* gesetzt ist, verwendet wcd *WCDHOME* anstelle von *HOME*. Alle "*.wcd"-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version. wcd.exe Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt INSTALLATION. vorgegebene Baumdatei Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei. DOS: \treedata.wcd or %HOME%\treedata.wcd Unix: $HOME/.treedata.wcd zusätzliche Baumdatei Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern. DOS: \extra.wcd or %HOME%\extra.wcd Unix: $HOME/.extra.wcd Bann-Datei In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option -b. Platzhalter werden unterstützt. DOS: \ban.wcd or %HOME%\ban.wcd Unix: $HOME/.ban.wcd Alias-Datei Optionale Datei mit Aliasen für wcd. Siehe Option -l. DOS: \alias.wcd or %HOME%\alias.wcd Unix: $HOME/.alias.wcd Stapeldatei In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option -d geändert werden. DOS: c:\stack.wcd or %HOME%\stack.wcd Unix: $HOME/.stack.wcd Der Name der Stapeldatei kann mit der Umgebungsvariable *WCDSTACKFILE* geändert werden. Siehe Abschnitt UMGEBUNGSVARIABLEN. Go-Skript Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option -d geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in "$HOME/bin" gespeichert. Das Verzeichnis für diese Datei kann mit der Option -G geändert werden. DOS Bash: c:/wcd.go oder $HOME/wcd.go Windows Befehlszeileninterpreter: c:\wcdgo.bat oder %HOME%\wcdgo.bat Windows PowerShell: $env:HOME\wcdgo.ps1 WinZsh: $HOME/wcd.go Cygwin/MSYS: $HOME/bin/wcd.go OS/2-Befehlszeileninterpreter: c:\wcdgo.cmd oder %HOME%\wcdgo.cmd Unix: $HOME/bin/wcd.go Datei für relative Baumansicht Textdatei mit relativen Pfaden von *VERZEICHNIS*. Siehe die Optionen +S, -n und +n. DOS: \rtdata.wcd Unix: /.rtdata.wcd UMGEBUNGSVARIABLEN HOME Wcd verwendet per Vorgabe die Umgebungsvariable *HOME*, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt DATEIEN. Dies kann mit der Umgebungsvariable *WCDHOME* außer Kraft gesetzt werden. *HOME* legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option -s verwendet wird. Dies kann mit der Umgebungsvariable *WCDSCAN* außer Kraft gesetzt werden. In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und MSYS ist es erforderlich, dass *HOME* oder *WCDHOME* gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional. Falls *HOME* unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis *HOME*. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus *HOME* ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel: wcd -S c: -A d: -A e: Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt. WCDHOME Mit der Umgebungsvariable *WCDHOME* können Sie den Ort der Dateien von wcd ändern. Falls sowohl *HOME* als auch *WCDHOME* gesetzt ist, wird *WCDHOME* anstelle von *HOME* verwendet. In Wcd-Versionen vor 5.1.5 wurde durch *WCDHOME* auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option -s. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable *WCDSCAN*, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDHOME=C:\Users\erwin\wcd Ein Beispiel für POSIX-Shells: export WCDHOME="$HOME/.wcd" Ein Beispiel für Csh-Shells: setenv WCDHOME "$HOME/.wcd" WCDSCAN Verwenden Sie die Umgebungsvariable *WCDSCAN*, um die Einstellung des vorgegebenen Einleseverzeichnisses *HOME* außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen. Beispiel für die Befehlszeileninterpreter von DOS, Windows und OS/2: set WCDSCAN=C:\Users\erwin;D:\data set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX Ein Beispiel für POSIX-Shells: export WCDSCAN="$HOME:/projectdisk/projectX" Ein Beispiel für Csh-Shells: setenv WCDSCAN "$HOME:/projectdisk/projectX" WCDFILTER Geben Sie Filter mit der Umgebungsvariable *WCDFILTER* an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable *PATH*. Ob dabei Groß-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDFILTER=projects;doc Ein Beispiel für POSIX-Shells: export WCDFILTER="projects:doc" Ein Beispiel für Csh-Shells: setenv WCDFILTER "projects:doc" WCDBAN Die in der Umgebungsvariable *WCDBAN* angegebenen Pfade werden gebannt, siehe auch die Option -b. Geben Sie eine Liste der Pfade an, durch das *PATH*-Trennzeichen der Shell getrennt. WCDEXCLUDE Die in der Umgebungsvariable *WCDEXCLUDE* angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen -x und -xf. Geben Sie eine Liste der Pfade an, durch das *PATH*-Trennzeichen der Shell getrennt. Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2: set WCDEXCLUDE=*/windows;*/temp;*CVS Ein Beispiel für POSIX-Shells: export WCDEXCLUDE="/dev:/tmp:*CVS" Ein Beispiel für Csh-Shells: setenv WCDEXCLUDE "/dev:/tmp:*CVS" WCDUSERSHOME Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert "\\users". Unter Unix/Cygwin ist "/home" die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen -u und +u. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option -v. WCDSTACKFILE Wcd bevorzugt *WCDSTACKFILE* gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt DATEIEN). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben. So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell: export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S) Für einen Stapel pro xterm(1) verwenden Sie die Umgebungsvariable *WINDOWID*: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID Einen Stapel pro Bildschirm erreichen Sie für GNU screen(1) so: export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW TERMINFO Wenn die Umgebungsvariable *TERMINFO*, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind "/usr/lib/terminfo" und "/usr/share/terminfo". PDC_RESTORE_SCREEN Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable *PDC_RESTORE_SCREEN*. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter: set PDC_RESTORE_SCREEN=1 Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben. SHELL Die Angabe von "#!$SHELL" in der ersten Zeile des Go-Skripts (für POSIX- oder C-Shells) ist für 8-Bit-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable *SHELL* mit dem Befehl "export" gesetzt werden, sonst kann wcd diese Variable nicht lesen. BASH Wcd für die DOS-Bash verwendet $BASH anstelle von $SHELL, weil $SHELL auf die DOS-Befehlsshell zeigt. $BASH muss mit einem "export"-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen. SIEHE AUCH sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1), AUTOREN Wcd wurde von Erwin Waterlander geschrieben. Projektseite: SourceForge: Freecode: Die Formatierung der Handbuchseite wurde von Jari Aalto bereitgestellt. NCD wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch wcd-5.2.5/src/man/de/man1/wcd.htm0000664000175000017500000020005312345660661016604 0ustar waterlanwaterlan wcd 5.2.5 - Wherever Change Directory

BEZEICHNUNG

wcd - Wherever Change Directory

chdir für DOS und Unix

ÜBERSICHT

    wcd [Optionen] [Verzeichnis]

BESCHREIBUNG

Übersicht

Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche.

Wcd wurde nach dem Vorbild des Norton Change Directory (NCD) entworfen. NCD erschien zuerst 1987 in The Norton Utilities, Release 4 für DOS, veröffentlicht von Peter Norton.

Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: DOS (command.com), Windows (cmd.exe und PowerShell), OS/2 (cmd.exe) sowie Unix-Shells wie Bourne- (sh), Bourne-Again- (bash), Korn- (ksh), Z- (zsh) und die C- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells.

Wcd unterstützt 8-Bit-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt LOKALISIERUNG.

Im Abschnitt INSTALLATION finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können.

Grundlegende Verwendung

Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt.

Beispielsweise wechselt dieser Befehl in das Verzeichnis /home/user/Desktop des aktuellen Benutzers:

    wcd Desk

Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem).

Platzhalter

Wcd unterstützt die folgenden Platzhalter:

    *         findet jede Zeichensequenz (kein oder mehr Zeichen)
    ?         findet jedes einzelne Zeichen
    [GRUPPE]  findet jedes Zeichen in der angegebenen Gruppe,
    [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen
              GRUPPE nicht enthalten ist.

Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form Zeichen minus Zeichen, zum Beispiel 0-9 oder A-Z. Dabei ist [0-9a-zA-Z_] die minimal mögliche Gruppe nach dem Muster [..]. Internationale Zeichen (zum Beispiel 8-Bit-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen []*?!^-\ innerhalb oder außerhalb des Musters [..] zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich (\) voran, um es zu maskieren.

Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet:

    wcd *top

Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält:

    wcd *top*

Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt:

    wcd [a-c]*

Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf *me/Desk* passt.

    wcd me/Desk

Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel:

    wcd src*/*1?/a*2

Weitere Anwendungsfälle

Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option -w geändert werden.

Der interaktive Verzeichnisbaumbrowser kann mit der Option -g gestartet werden.

    wcd -g

Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten.

Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel:

    wcd ..

Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option -k.

Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen -z, -, + und =.

In Umgebungen mit mehreren Benutzern kann mit der Option -u in die Verzeichnisse anderer Benutzer gewechselt werden.

Auf DOS- und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\« als Verzeichnistrenner verwenden.

Auf DOS- und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen.

    wcd d:games

UNC-Pfade unter Windows

Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, MSYS, zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie \\Servername\Freigabename. Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, MSYS, zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein.

Schnittstellen

Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt.

Die erste Schnittstelle verwendet die Standardeingabe und -ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die <Eingabetaste> drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel.

Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option -N verwenden.

Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Diese Schnittstelle kann mit der Option -g aktiviert werden.

Mit der Option -o ist es jederzeit möglich, auf die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen.

OPTIONEN

-a

fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu.

Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern.

-aa

fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu.

-A PFAD

liest den Verzeichnisbaum aus PFAD und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele:

    wcd -A .
    wcd -A /home -A /etc
    wcd -A d: -A e: -A \\server\share

Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: wcd -A \\Servername.

Siehe auch die Optionen -S, -s und -E.

-b

verbannt den aktuellen Pfad.

Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen.

Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen.

Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option -xf.

-c, --direct-cd

Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt:

    1. Es wird versucht, einen Treffer in der oder den Baumdatei(en)
       zu finden.
    2. Wird nichts gefunden, wird versucht, das eingegebene
       Verzeichnis zu öffnen.

Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge:

    1. Es wird versucht, das eingegebene Verzeichnis zu öffnen.
    2. Wird nichts gefunden, wird nach einem Treffer in der oder
       den Baumdatei(en) gesucht.
-d LAUFWERK

legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur DOS).

Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable HOME nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen -, + und = stehen.

-e

fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu.

Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen.

-ee

fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu.

-E PFAD

liest den Verzeichnisbaum aus PFAD und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen -A und -S.

-f DATEI

liest die Baumdatei DATEI. Die vorgegebene Baumdatei wird nicht gelesen.

+f DATEI

liest die Baumdatei DATEI zusätzlich zur vorgegebenen Baumdatei.

-g

verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle).

Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1).

Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar.

Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt.

Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen NCD unter DOS. Der Unterschied besteht darin, dass in NCD alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in NCD möglich, da ein Verzeichnisname in DOS nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen.

Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen NCD. Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum.

Siehe die Optionen -Ta, -TC und -Tc zum Ändern des Navigationsverhaltens.

-gd

gibt die Baumdateien als Baum in die Standardausgabe aus.

-G PFAD

schreibt das Go-Skript in das Verzeichnis PFAD. Unter Unix beispielsweise schreibt wcd -G PFAD ein Go-Skript in PFAD/wcd.go.

-GN, --no-go-script

verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit -j verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen.

-h, --help

zeigt eine Hilfe an und beendet das Programm.

-i, --ignore-case

ignoriert Groß-/Kleinschreibung. In den DOS- und Windows-Versionen ist dies der Standard. In den Unix- und Cygwin-Versionen wird per Vorgabe die Groß-/Kleinschreibung berücksichtigt.

+i, --no-ignore-case

berücksichtigt Groß-/Kleinschreibung. Siehe auch Option -i.

-I, --ignore-diacritics

ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, sowie Unicode Latin-1, Latin Extended-A, und Latin Extended-B. Siehe auch http://de.wikipedia.org/wiki/Diakritisches_Zeichen

+I, --no-ignore-diacritics

berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option -I.

-j, --just-go

Geh-einfach-Modus.

In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter.

Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen:

    wcd ()
    {
        cd "$($HOME/bin/wcd.exe -j $@)"
    }

Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden.

    wcd ()
    {
        cd "`$HOME/bin/wcd.exe -j $@`"
    }

Auf Windows-Systemen mit einer NT4-Shell können Sie den folgenden Alias anlegen:

    alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`

Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option -GN zusammen mit -j verwenden.

-k, --keep-paths

erhält Pfade.

Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert.

-K, --color

verwendet Farben im grafischen Modus.

-l ALIAS

benennt den aktuellen Pfad mit ALIAS. Wcd speichert den aktuellen Pfad mit dem ALIAS in der Alias-Datei. Bei Aliasen wird Groß-/Kleinschreibung berücksichtigt.

-m VERZEICHNIS

erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu.

-L, --license

zeigt die Lizenz des Programms an.

-M VERZEICHNIS

erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu.

-n PFAD

liest die relative Baumdatei aus PFAD.

Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option +S angelegt worden sein. PFAD kann auch direkt auf eine Datei verweisen.

Ein Beispiel. Nehmen wir an, ein anderes System wurde in /mnt/network eingehängt:

    wcd -n /mnt/network src

Wcd öffnet die Datei der relativen Baumansicht in /mnt/network/. Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet.

+n PFAD

liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option -n.

-N, --numbers

verwendet Zahlen anstelle von Buchstaben.

Wcd mit einer Conio- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option -N angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option -N können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen.

-o

verwendet die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe).

Falls aus verschiedenen Gründen die conio- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option -o auf die stdin/stdout-Schnittstelle ausweichen.

-od, --to-stdout

gibt alle Übereinstimmungen in die Standardausgabe aus.

-q, --quiet

Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt.

-r VERZEICHNIS

entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei.

Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen.

-rmtree VERZEICHNIS

entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei.

Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt.

-s

liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis $HOME ein. Falls HOME nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen.

Die existierende vorgegebene Baumdatei wird dabei überschrieben.

Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable WCDSCAN außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt UMGEBUNGSVARIABLEN.

-S PFAD

liest den Verzeichnisbaum aus PFAD und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen -A, -s und -E. Zum Beispiel können Sie mit der Option -A eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele:

Unix:

    wcd -S /
    wcd -S /home -A /etc -A /usr

DOS/Windows:

    wcd -S c:/
    wcd -S c: -A d: -A \\server\share

Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: wcd -S \\Servername.

-S PFAD

liest das Laufwerk aus PFAD ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen -n und +n verwendet. Beispiel wcd -n PFAD src.

-t

entfernt das temporäre Einhängeverzeichnis /tmp_mnt nicht (nur Unix).

Wcd entfernt per Vorgabe /tmp_mnt/ aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option -t abschalten.

-T, --ascii-tree

zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden.

-Ta, --alt-tree-nav

verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht.

In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option -Ta das Springen in beziehungslose Verzeichnisse.

In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem KDE Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links.

Sie können direkt zwischen dem Vorgabe- und dem Alternativmodus wechseln, indem Sie <Umschalt-A> drücken.

Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke.

-TC, --center-tree

zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste <t> im grafischen Baum an- und abgeschaltet werden.

Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen NCD.

-Tc, --compact-tree

Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen NCD unter DOS. Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option -Tc oder schalten Sie direkt mit der Taste <m> um.

-Td, --cjk-width

Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird.

Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt.

-u BENUTZER

liest die Daten eines anderen Benutzers für die Baumansicht basierend auf BENUTZER ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch WCDUSERSHOME im Abschnitt UMGEBUNGSVARIABLEN.

Unter Unix/Cygwin wird /home als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach /home/BENUTZER/.treedata.wcd und /home/BENUTZER/.wcd/.treedata.wcd, in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird \\users als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd \\users\BENUTZER\treedata.wcd und \\users\BENUTZER\.wcd\treedata.wcd zu lesen.

+u BENUTZER

liest die vorgegebene Baumansicht-Datei von BENUTZER zusätzlich zu Ihrer eigenen Baumansicht-Datei ein.

-v, --verbose

zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an.

-V, --version

zeigt Versionsinformationen an und beendet das Programm.

-w, --wild-match-only

zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen.

-x PFAD

schließt PFAD vom Einlesen aus.

Mit dieser Option schließt wcd PFAD und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option -x kann mehrfach angegeben werden.

    wcd -x <Pfad1> -x <Pfad2> -s

Die Option -x muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E).

Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen HOME oder WCDHOME gesetzt ist. Falls HOME oder WCDHOME gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel:

    wcd -x c:/temp -S c:

Anderenfalls geben Sie keinen Laufwerksbuchstaben an.

    wcd -x /temp -s
-xf DATEI

schließt alle in DATEI aufgelisteten Pfade vom Einlesen aus.

Wenn diese Option ausgewählt ist, schließt wcd alle in DATEI aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option -xf kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix):

    wcd -xf ~/.ban.wcd -s

Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit */.svn hinzu.

Die Option -xf muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E).

-y, --assume-yes

beantwortet alle Abfragen automatisch mit »ja«.

Wcd gibt keine Ja-/Nein-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option -rmtree verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja-/Nein-Abfragen führen könnten.

-z ZAHL

setzt die maximale Stapelgröße auf ZAHL.

Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (-,+,=). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt.

Ein korrekter Befehl ist:

    wcd -z 50 -

Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre:

    wcd - -z 50

Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument -z 50 wird ignoriert.

Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das:

    wcd ()
    {
        wcd.exe -z 50 "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }
-[ZAHL]

legt ein Verzeichnis auf den Stapel (ZAHL mal). Vorgabe ist 1.

Geht ein Verzeichnis zurück. Der Befehl wcd - geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls wcd -3. Der Stapel ist zyklisch.

+[ZAHL]

nimmt ein Verzeichnis vom Stapel (ZAHL mal). Vorgabe ist 1.

Geht ein Verzeichnis vor. Der Befehl wcd + geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls wcd +2. Der Stapel ist zyklisch.

=

zeigt den Stapel an.

Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk * markiert.

INSTALLATION

Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten cd(1)-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde.

Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen HOME und WCDHOME. Siehe den Abschnitt UMGEBUNGSVARIABLEN.

Installation für POSIX-Shells

Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem MSYS fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel $HOME/.bashrc):

    wcd ()
    {
        <PFAD>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/bin/wcd.go
    }

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell.

Der Ort des Go-Skripts wcd.go ist abhängig von der Shell selbst.

Wcd für die auf DJGPP basierende DOS-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis bin gespeichert, und falls weder WCDHOME noch HOME definiert sind, wird das Go-Skript nach c:/ geschrieben.

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

Die WinZsh-Version von wcd ist auch etwas anders. Es gibt kein bin-Verzeichnis.

    wcd ()
    {
        <PATH>/wcd.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

Weitere Informationen finden Sie im Abschnitt DATEIEN.

Installation für C-ähnliche Shells (csh, tcsh)

Fügen Sie den folgenden Alias zur Shell-Startdatei $HOME/.cshrc oder $HOME/.tcshrc hinzu:

    if ( ${?WCDHOME} ) then
        alias wcd "<PATH>/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "<PATH>/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell.

Version für den Windows-Befehlszeileninterpreter

Entpacken Sie die Zip-Datei und fügen Sie den Ordner bin zu Ihrer Umgebungsvariable PATH hinzu.

Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat-Datei möglich. Das Batch-Skript wcd.bat ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript wcdgo.bat erzeugt. Dann führt wcd.go wiederum wcdgo.bat aus, welches tatsächlich das Verzeichnis wechselt.

Windows VISTA und neuer

Im Befehlszeileninterpreter in Windows VISTA oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und Als Administrator ausführen wählen.

Version für die Windows PowerShell

Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable $profile bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen HOME oder WCDHOME definiert ist.

    function wcd
    {
        <PFAD>\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber.

Version für den Befehlszeileninterpreter von OS/2

Im Befehlszeileninterpreter von OS/2 (cmd.exe) kann ein OS/2-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript wcdgo.cmd, das in der aktuellen Shell ausgeführt werden muss. Das Skript wcd.cmd führt zuerst wcdos2.exe aus, welches seinerseits das Skript wcdgo.cmd erzeugt. Danach führt wcd.cmd das Skript wcdgo.cmd aus.

LOKALISIERUNG

LANG

Die primäre Sprache wird durch die Umgebungsvariable LANG festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells:

    export LANG=de               Deutsch
    export LANG=de_DE            Deutsch, Deutschland
    export LANG=de_CH            Deutsch, Schweiz
    export LANG=es_ES            Spanisch, Spanien
    export LANG=es_MX            Spanisch, Mexiko
    export LANG=en_US.iso88591   English, USA, Latin-1-Zeichenkodierung

Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu gettext(1): http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes. Auf Unix-Systemen können Sie den Befehl locale(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten.

LANGUAGE

Mit der Umgebungsvariable LANGUAGE können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt LANGUAGE vor LANG den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: LANGUAGE=de:nl. Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable LANG oder LC_ALL auf einen anderen Wert als C setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache.

WCDLOCALEDIR

Mit der Umgebungsvariable WCDLOCALEDIR kann die während der Kompilierung und Installation verwendete Variable LOCALEDIR außer Kraft gesetzt werden. LOCALEDIR wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist /usr/local/share/locale. Nach Eingabe von wcd -V wird das von wcd verwendete LOCALEDIR angezeigt.

Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable WCDLOCALEDIR setzen, die auf das Verzeichnis mit den Sprachdateien zeigt.

Ein Beispiel für den Windows-Befehlszeileninterpreter:

    set WCDLOCALEDIR=c:/my_prefix/share/locale

Ein Beispiel für eine POSIX-Shell:

    export WCDLOCALEDIR=$HOME/share/locale
LC_COLLATE

Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable LANG gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß-/Kleinschreibung wird nicht berücksichtigt.

Die Sortierung bevorzugt die Umgebungsvariable LC_COLLATE vor LANG. Falls Sie LC_COLLATE auf C oder POSIX setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes:

    export LANG=de_DE
    export LC_COLLATE=C
LC_CTYPE

Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable LC_CTYPE vor LANG. Um beispielsweise die Zeichenkodierung auf UTF-8 zu setzen, können Sie Folgendes ausführen:

    export LC_CTYPE=en_US.UTF-8
LC_ALL

Alle lokalen Umgebungsvariablen, die mit LC_ beginnen, werden durch die Umgebungsvariable LC_ALL außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt LC_ALL vor LC_COLLATE und LC_CTYPE.

WINDOWS CODE PAGES

Es gibt zwei Gruppen von Codepages, die DOS Codepages (OEM) und die Windows Codepages (ANSI). Die vorgegebene Zeichenkodierung für Windows ist ANSI CP1252, wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (CP437 oder CP850), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke.

Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage CP1252 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben.

Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode- und ANSI-Zeichen korrekt angezeigt werden.

Die Nicht-Unicode-Versionen von Wcd vor Version 5.2.0 verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann.

Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl chcp geändert.

Wenn Sie wcd -V eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl chcp ein, um die aktive Codepage für die Windows-Konsole anzuzeigen.

UNICODE

Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode-Unterstützung erstellt wurde, geben Sie wcd -V ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat).

Wcd wurde »weich« auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF-8-spezifischen Code. Siehe auch http://www.cl.cam.ac.uk/~mgk25/unicode.html.

Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie wcd -V ein. Wcd mit Unicode-Normalisierung findet Treffer mittels kompatiblen Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch http://de.wikipedia.org/wiki/Normalisierung_%28Unicode%29.

UTF-8 unter Unix/Linux

Um UTF-8-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch UTF-8 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF-8-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie xterm(1) mit einer UTF-8-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646-1, zum Beispiel mit

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

Moderne GNU-Linux-Distributionen unterstützen UTF-8 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet.

Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben.

UTF-16 unter Windows

Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder TCC/LE von JP Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista).

Unter Windows sind alle Verzeichnisnamen in Unicode UTF-16 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus.

Wcd mit Unicode-Unterstützung liest die in UTF-16 kodierten Verzeichnisnamen und wandelt diese intern in UTF-8 um. Alle Baumdateien sind in UTF-8 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in UTF-8 kodiertes Go-Skript.

Alle Versionen der Windows Powershell können in UTF-8 kodierte Skripte ausführen, sofern sich im Skript eine BOM (Bytereihenfolge-Markierung) für UTF-8 befindet.

Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in UTF-8 kodiert sein, und das Batch-Skript darf keine BOM enthalten (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (UTF-8) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript wcdgo.bat. Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück.

Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden.

Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine BOM (Markierung der Bytereihenfolge) in der Datei befindet (siehe http://de.wikipedia.org/wiki/Byte_Order_Mark). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine BOM in die in UTF-8 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind.

UTF-8 unter Cygwin

Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF-16-Namen unter Windows in UTF-8 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF-8-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable LANG oder LC_CTYPE auf UTF-8. Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden.

Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (BOM) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in Cygwin vorgegeben ist.

DATEIEN

Falls die Umgebungsvariable WCDHOME gesetzt ist, verwendet wcd WCDHOME anstelle von HOME. Alle *.wcd-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version.

wcd.exe

Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt INSTALLATION.

vorgegebene Baumdatei

Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei.

    DOS: \treedata.wcd or %HOME%\treedata.wcd
    Unix: $HOME/.treedata.wcd
zusätzliche Baumdatei

Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern.

    DOS: \extra.wcd or %HOME%\extra.wcd
    Unix: $HOME/.extra.wcd
Bann-Datei

In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option -b. Platzhalter werden unterstützt.

    DOS: \ban.wcd or %HOME%\ban.wcd
    Unix: $HOME/.ban.wcd
Alias-Datei

Optionale Datei mit Aliasen für wcd. Siehe Option -l.

    DOS: \alias.wcd or %HOME%\alias.wcd
    Unix: $HOME/.alias.wcd
Stapeldatei

In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option -d geändert werden.

    DOS: c:\stack.wcd or %HOME%\stack.wcd
    Unix: $HOME/.stack.wcd

Der Name der Stapeldatei kann mit der Umgebungsvariable WCDSTACKFILE geändert werden. Siehe Abschnitt UMGEBUNGSVARIABLEN.

Go-Skript

Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option -d geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in $HOME/bin gespeichert. Das Verzeichnis für diese Datei kann mit der Option -G geändert werden.

    DOS Bash: c:/wcd.go oder $HOME/wcd.go
    Windows Befehlszeileninterpreter: c:\wcdgo.bat oder %HOME%\wcdgo.bat
    Windows PowerShell: $env:HOME\wcdgo.ps1
    WinZsh: $HOME/wcd.go
    Cygwin/MSYS: $HOME/bin/wcd.go
    OS/2-Befehlszeileninterpreter: c:\wcdgo.cmd oder %HOME%\wcdgo.cmd
    Unix: $HOME/bin/wcd.go
Datei für relative Baumansicht

Textdatei mit relativen Pfaden von VERZEICHNIS. Siehe die Optionen +S, -n und +n.

    DOS: <path>\rtdata.wcd
    Unix: <path>/.rtdata.wcd

UMGEBUNGSVARIABLEN

HOME

Wcd verwendet per Vorgabe die Umgebungsvariable HOME, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt DATEIEN. Dies kann mit der Umgebungsvariable WCDHOME außer Kraft gesetzt werden.

HOME legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option -s verwendet wird. Dies kann mit der Umgebungsvariable WCDSCAN außer Kraft gesetzt werden.

In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und MSYS ist es erforderlich, dass HOME oder WCDHOME gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional.

Falls HOME unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis HOME. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus HOME ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel:

    wcd -S c: -A d: -A e:

Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt.

WCDHOME

Mit der Umgebungsvariable WCDHOME können Sie den Ort der Dateien von wcd ändern. Falls sowohl HOME als auch WCDHOME gesetzt ist, wird WCDHOME anstelle von HOME verwendet.

In Wcd-Versionen vor 5.1.5 wurde durch WCDHOME auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option -s. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable WCDSCAN, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen.

Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

    set WCDHOME=C:\Users\erwin\wcd

Ein Beispiel für POSIX-Shells:

    export WCDHOME="$HOME/.wcd"

Ein Beispiel für Csh-Shells:

    setenv WCDHOME "$HOME/.wcd"
WCDSCAN

Verwenden Sie die Umgebungsvariable WCDSCAN, um die Einstellung des vorgegebenen Einleseverzeichnisses HOME außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen.

Beispiel für die Befehlszeileninterpreter von DOS, Windows und OS/2:

    set WCDSCAN=C:\Users\erwin;D:\data

    set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX

Ein Beispiel für POSIX-Shells:

    export WCDSCAN="$HOME:/projectdisk/projectX"

Ein Beispiel für Csh-Shells:

    setenv WCDSCAN "$HOME:/projectdisk/projectX"
WCDFILTER

Geben Sie Filter mit der Umgebungsvariable WCDFILTER an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable PATH. Ob dabei Groß-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab.

Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

    set WCDFILTER=projects;doc

Ein Beispiel für POSIX-Shells:

    export WCDFILTER="projects:doc"

Ein Beispiel für Csh-Shells:

    setenv WCDFILTER "projects:doc"
WCDBAN

Die in der Umgebungsvariable WCDBAN angegebenen Pfade werden gebannt, siehe auch die Option -b. Geben Sie eine Liste der Pfade an, durch das PATH-Trennzeichen der Shell getrennt.

WCDEXCLUDE

Die in der Umgebungsvariable WCDEXCLUDE angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen -x und -xf. Geben Sie eine Liste der Pfade an, durch das PATH-Trennzeichen der Shell getrennt.

Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

    set WCDEXCLUDE=*/windows;*/temp;*CVS

Ein Beispiel für POSIX-Shells:

    export WCDEXCLUDE="/dev:/tmp:*CVS"

Ein Beispiel für Csh-Shells:

    setenv WCDEXCLUDE "/dev:/tmp:*CVS"
WCDUSERSHOME

Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert \\users. Unter Unix/Cygwin ist /home die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen -u und +u. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option -v.

WCDSTACKFILE

Wcd bevorzugt WCDSTACKFILE gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt DATEIEN). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben.

So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell:

    export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)

Für einen Stapel pro xterm(1) verwenden Sie die Umgebungsvariable WINDOWID:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID

Einen Stapel pro Bildschirm erreichen Sie für GNU screen(1) so:

    export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW
TERMINFO

Wenn die Umgebungsvariable TERMINFO, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind /usr/lib/terminfo und /usr/share/terminfo.

PDC_RESTORE_SCREEN

Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable PDC_RESTORE_SCREEN. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter:

    set PDC_RESTORE_SCREEN=1

Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben.

SHELL

Die Angabe von #!$SHELL in der ersten Zeile des Go-Skripts (für POSIX- oder C-Shells) ist für 8-Bit-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable SHELL mit dem Befehl export gesetzt werden, sonst kann wcd diese Variable nicht lesen.

BASH

Wcd für die DOS-Bash verwendet $BASH anstelle von $SHELL, weil $SHELL auf die DOS-Befehlsshell zeigt. $BASH muss mit einem export-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen.

SIEHE AUCH

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

AUTOREN

Wcd wurde von Erwin Waterlander <waterlan@xs4all.nl> geschrieben.

Projektseite: http://waterlan.home.xs4all.nl/

SourceForge: http://sourceforge.net/projects/wcd/

Freecode: http://freecode.com/projects/wcd/

Die Formatierung der Handbuchseite wurde von Jari Aalto <jari.aalto@cante.net> bereitgestellt.

NCD wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml

wcd-5.2.5/src/config.h0000664000175000017500000000177612062172105014732 0ustar waterlanwaterlan/* Copyright (C) 1997-2012 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifdef ENABLE_NLS #include #define _(String) gettext (String) #define gettext_noop(String) String #define N_(String) gettext_noop (String) #else #define _(String) (String) #define N_(String) String #define textdomain(Domain) #define bindtextdomain(Package, Directory) #endif wcd-5.2.5/src/display.h0000664000175000017500000000430412005577542015133 0ustar waterlanwaterlan/* Copyright (C) 1997-2005 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef _DISPLAY_H #define _DISPLAY_H #ifdef WCD_USECONIO # include #endif #ifdef WCD_USECURSES # include /* MOUSE_MOVED in PDCurses' curses.h conflicts with MOUSE_MOVED in wincon.h */ # ifdef MOUSE_MOVED # undef MOUSE_MOVED # endif #endif size_t wcstoansi(char *mbstr, const wchar_t *wcstr, int len); size_t ansitowcs(wchar_t *wcstr, const char *mbstr, int len); size_t wcstoutf8(char *mbstr, const wchar_t *wcstr, int len); size_t utf8towcs(wchar_t *wcstr, const char *mbstr, int len); void wcd_printf( const char* format, ... ); void wcd_wprintf( const wchar_t* format, ... ); size_t str_columns (char *s); void sort_list(nameset list); int display_list(nameset list,int perfect, int use_numbers, int use_stdout); int display_list_conio(nameset list,WcdStack ws, int perfect,int use_numbers); int display_list_curses(nameset list, WcdStack ws, int perfect,int use_numbers); int display_list_stdout(nameset list,WcdStack ws, int perfect, int use_stdout); #define OFFSET 39 #define WCD_MAX_INPSTR 256 #ifdef WCD_USECURSES void wcd_mvwaddstr(WINDOW *win, int x, int y, char *str); # define INPUT_WIN_LEN 80 #endif #define PAGEOFFSET 38 #define SCROLL_WIN_HEIGHT 22 #define INPUT_WIN_HEIGHT 3 #define WCD_ERR_LIST -1 /* No choice is made from list of matches */ #define WCD_ERR_CURSES -2 /* Curses can't open terminal */ #define WCD_STDOUT_NO 0 /* no stdout */ #define WCD_STDOUT_NORMAL 1 /* stdout mode */ #define WCD_STDOUT_DUMP 2 /* dump to stdout */ #endif wcd-5.2.5/src/wcd.c0000664000175000017500000035102012343715651014236 0ustar waterlanwaterlan/* filename: WCD.C WCD - Chdir for Dos and Unix. Author: Erwin Waterlander E-mail : waterlan@xs4all.nl WWW : http://waterlan.home.xs4all.nl/ ====================================================================== = Copyright = ====================================================================== Copyright (C) 1997-2014 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ======================================================================= Jason Mathews' file filelist.c was a starting point for this file. */ #include #include #include #include #include #include #include #if !defined(__TURBOC__) && !defined(_MSC_VER) # include #endif #ifdef __TURBOC__ #define __FLAT__ #endif #include #ifdef _MSC_VER #include #define S_ISDIR( m ) (((m) & _S_IFMT) == _S_IFDIR) #define S_ISREG( m ) (((m) & _S_IFMT) == _S_IFREG) #endif #ifdef __DJGPP__ # include #endif #include "wcd.h" #ifndef __MSDOS__ /* Win32, OS/2, Unix, Cygwin */ #include #endif #if !defined(__MSDOS__) && !defined(_WIN32) && !defined(__OS2__) && !defined(__MSYS__) /* Unix, Cygwin */ # include #endif #include "querycp.h" #include "dosdir.h" #include "match.h" #ifdef WCD_UNICODE # include "matchw.h" #else # include "matchl.h" #endif #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Text.h" #include "nameset.h" #include "WcdStack.h" #include "dirnode.h" #include "stack.h" #include "display.h" #include "wfixpath.h" #include "graphics.h" #include "wcddir.h" #include "config.h" #if defined(_WIN32) || defined(WCD_UNICODE) # include #endif #if defined (_WIN32) && !defined(__CYGWIN__) # include #endif #ifdef __CYGWIN__ # undef _WIN32 #endif /* Global variables */ const wcd_char *default_mask = ALL_FILES_MASK; /* Disable wildcard globbing */ #ifdef __MINGW32__ # ifdef __MINGW64__ int _dowildcard = 0; # else int _CRT_glob = 0; # endif #endif #ifdef __DJGPP__ #include char **__crt0_glob_function (char *arg) { return 0; } #endif int print_msg(const char *format, ...) { va_list args; int rc; printf("Wcd: "); va_start(args, format); rc = vprintf(format, args); va_end(args); return(rc); } int print_error(const char *format, ...) { va_list args; int rc; fprintf(stderr,_("Wcd: error: ")); va_start(args, format); rc = vfprintf(stderr, format, args); va_end(args); return(rc); } /* Use wcd_fprintf() when we write to files. To get an * error message when the disk is full or quota is exceeded. Because the output is buffered, you may not get the disk-full error during fprintf(), but during fclose() when the buffer is flushed to disk. When you write a lot of data, more than fits in the buffer, the buffer is flushed in the meantime, before closing the file and you get the disk-full error during fprintf(). You may not get the error message during fclose() then. Therefore we have to check for errors during writing to file AND when the file is closed. */ int wcd_fprintf(FILE *stream, const char *format, ...) { va_list args; int rc; char *errstr; va_start(args, format); rc = vfprintf(stream, format, args); va_end(args); if (rc < 0) { errstr = strerror(errno); print_error("%s\n", errstr); } return(rc); } FILE *wcd_fopen(const char *filename, const char *m, int quiet) { struct stat buf; FILE *f; char *errstr; int loc_quiet; #if DEBUG fprintf(stderr, "Wcd: wcd_fopen: Opening file \"%s\" mode=%s quiet=%d\n",filename, m, quiet); loc_quiet = 0; #else loc_quiet = quiet; #endif if (m[0] == 'r') /* we try to read an existing file */ { if (stat(filename, &buf) != 0) /* check if file exists */ { if ( !loc_quiet ) { errstr = strerror(errno); print_error(_("Unable to read file %s: %s\n"), filename, errstr); } return(NULL); } if (!S_ISREG(buf.st_mode)) /* check if it is a file */ { if ( !loc_quiet ) { print_error(_("Unable to read file %s: Not a regular file.\n"), filename); } return(NULL); } } f = fopen(filename, m); /* open the file */ if ( !loc_quiet && (f == NULL)) { errstr = strerror(errno); if (m[0] == 'r') print_error(_("Unable to read file %s: %s\n"), filename, errstr); else print_error(_("Unable to write file %s: %s\n"), filename, errstr); } #if DEBUG fprintf(stderr, "Wcd: wcd_fopen: Opening file \"%s\" OK.\n", filename); #endif return(f); } /* wcd_fopen_type, similar as wcd_fopen, but also returns file * type based on Unicode BOM. */ FILE *wcd_fopen_bom(const char *filename, const char *m, int quiet, int *bomtype) { FILE *f; int bom[3]; /* BOMs * UTF16-LE ff fe * UTF16-BE fe ff * UTF-8 ef bb bf */ *bomtype = FILE_MBS; f = wcd_fopen(filename, m, quiet); /* Check for BOM */ if ((m[0] == 'r') && (f != NULL)) { if ((bom[0] = fgetc(f)) == EOF) { ungetc(bom[0], f); *bomtype = FILE_MBS; return(f); } if ((bom[0] != 0xff) && (bom[0] != 0xfe) && (bom[0] != 0xef)) { ungetc(bom[0], f); *bomtype = FILE_MBS; return(f); } if ((bom[1] = fgetc(f)) == EOF) { ungetc(bom[1], f); ungetc(bom[0], f); *bomtype = FILE_MBS; return(f); } if ((bom[0] == 0xff) && (bom[1] == 0xfe)) /* UTF16-LE */ { *bomtype = FILE_UTF16LE; return(f); } if ((bom[0] == 0xfe) && (bom[1] == 0xff)) /* UTF16-BE */ { *bomtype = FILE_UTF16BE; return(f); } if ((bom[2] = fgetc(f)) == EOF) { ungetc(bom[2], f); ungetc(bom[1], f); ungetc(bom[0], f); *bomtype = FILE_MBS; return(f); } if ((bom[0] == 0xef) && (bom[1] == 0xbb) && (bom[2]== 0xbf)) /* UTF-8 */ { *bomtype = FILE_UTF8; return(f); } ungetc(bom[2], f); ungetc(bom[1], f); ungetc(bom[0], f); *bomtype = FILE_MBS; return(f); } return(f); } void wcd_fclose(FILE *fp, const char *filename, const char *m, const char *functionname) { char *errstr; if (fclose(fp) != 0) { errstr = strerror(errno); if (m[0] == 'w') print_error(_("Unable to write file %s: %s\n"), filename, errstr); else print_error(_("Unable to close file %s: %s\n"), filename, errstr); } #if DEBUG else fprintf(stderr, "Wcd: %sClosing file \"%s\" OK.\n", functionname, filename); #endif } /******************************************************************** * void cleanPath(char path[], int len, minlength) * * Clean path string from ending '/' character. * * Borland's chdir() function cannot change to paths ending with '/' * or '\' except root itself (/ or \). * ********************************************************************/ void cleanPath(char path[], int len, int minlength) { /* strip ending separator (if present) */ if (len > minlength && path[len-1]==DIR_SEPARATOR && path[len-2]!=':') path[len-1] = '\0'; } void rmDriveLetter(char path[], int *use_HOME) { char *ptr; if (path == NULL) return; /* remove drive letter */ if (*use_HOME == 0 ) if ( (ptr=strstr(path,"/")) != NULL) strcpy(path,ptr); } void rmDirFromList(char *string, nameset n) { char dir[DD_MAXPATH]; char subdir[DD_MAXPATH]; size_t i; strcpy(dir,string); wcd_fixpath(dir,sizeof(dir)); strcpy(subdir,dir); strcat(subdir,"/*"); i = 0; while (i < n->size ) { #ifdef _WCD_DOSFS if( dd_match(n->array[i],dir,1) || dd_match(n->array[i],subdir,1)) #else if( dd_match(n->array[i],dir,0) || dd_match(n->array[i],subdir,0)) #endif removeElementAtNamesetArray(i,n,true); else ++i; } } /********************************/ void writeList(char * filename, nameset n, int bomtype) { size_t i; FILE *outfile; int rc = 0; #ifdef WCD_ANSI char path[DD_MAXPATH]; wchar_t pathw[DD_MAXPATH]; #endif if ( (outfile = wcd_fopen(filename,"w",0)) != NULL) { #ifdef WCD_UTF16 wcd_fprintf(outfile, "%s", "\xEF\xBB\xBF"); /* UTF-8 BOM */ #endif #ifdef WCD_ANSI /* non-Unicode Windows version */ /* When the treefile was in Unicode the non-Unicode Windows version of wcd translated the Unicode directory names to the system default ANSI code page. */ if (bomtype > 0) /* Unicode, write back in UTF-8 */ wcd_fprintf(outfile, "%s", "\xEF\xBB\xBF"); /* UTF-8 BOM */ #endif for(i=0;((isize)&&(rc>=0));i++) { #ifdef WCD_ANSI if (bomtype > 0) { /* Unicode, write back in UTF-8. Characters that are not supported by the ANSI code page get broken. */ strncpy(path, n->array[i], sizeof(path)); MultiByteToWideChar(CP_ACP, 0, path, -1, pathw, sizeof(pathw)); WideCharToMultiByte(CP_UTF8, 0, pathw, -1, path, sizeof(path), NULL, NULL); rc = wcd_fprintf(outfile,"%s\n",path); } else rc = wcd_fprintf(outfile,"%s\n",n->array[i]); #else rc = wcd_fprintf(outfile,"%s\n",n->array[i]); #endif } wcd_fclose(outfile, filename, "w", "writeList: "); } } #ifdef UNIX /************************************************************* * void stripTmpMnt(char* path) * * This function stips /tmp_mnt from path if it begins with it. * /tmp_mnt is used by the automounter. * *************************************************************/ void stripTmpMnt(char* path) { char* ptr; if (path != NULL) { if (strncmp(path,TMP_MNT_STR,strlen(TMP_MNT_STR)) == 0) { ptr = path + strlen(TMP_MNT_STR) - 1 ; strcpy(path,ptr); } } } #endif #ifdef WCD_UNIXSHELL /************************************************************* * * void quoteString(char *string) * * ----- * quote all metacharacters (; & $ ( ) | < > space), quotes ("), * apostrophes ('), grave accents (`), wildcard characters * (* ? [ ]), and backslashes (\) with a backslash. * * Quoting every character with a backslash seems to be * the most portable solution. Using apostrophes ('...') to quote the whole * string makes it impossible to quote an apostrophe in the path. Using quotes * ("...") does not work well in csh, because you can't escape a $ character * inside quotes to stop variable substitution, and you can't escape a grave * accent. * * Functions is_slash() and is_term() in file wfixpath.c have also * been modified so that a backslash is not replaced by slash anymore * on UNIX systems. * * Erwin Waterlander Oct 17 2001 *************************************************************/ void quoteString(char *string) { size_t i, j; int k,kmax; char help1_str[DD_MAXPATH]; j = strlen(string); k = 0; kmax = DD_MAXPATH -3; for (i=0; (i < j)&&(k < kmax) ; i++) { if ( (string[i] == '"') || (string[i] == '$') || (string[i] == '&') || (string[i] == '\'') || (string[i] == '(') || (string[i] == ')') || (string[i] == '*') || (string[i] == ';') || (string[i] == '<') || (string[i] == '>') || (string[i] == '?') || (string[i] == '[') || (string[i] == '\\') || (string[i] == ']') || (string[i] == ' ') || (string[i] == '`') || (string[i] == '|') ) { help1_str[k] = '\\'; k++; } help1_str[k] = string[i]; k++ ; } help1_str[k] = '\0' ; strcpy(string,help1_str); } #endif /************************************************************* * * void quoteString(char *string) * * For cmd.exe on Windows and OS/2, and Windows PowerShell. * We need backslashes instead of forward slashes. * * ----- * Quoting ("...") is needed for paths that contain '&' characters * Quote '%' characters with '%', needed when cd command is executed * via batch file. * Oct 16 2001 * *************************************************************/ #if (defined(_WIN32) && !defined(WCD_WINZSH)) || (defined(__OS2__) && !defined(WCD_OS2BASH)) void quoteString(char *string) { size_t i, j; int k,kmax; char help1_str[DD_MAXPATH]; j = strlen(string); help1_str[0] = '"'; k = 1; kmax = DD_MAXPATH -3; for (i=0; (i < j)&&(k < kmax) ; i++) { #ifndef WCD_WINPWRSH if (string[i] == '%') { help1_str[k] = '%'; k++; } #endif if (string[i] == '/') help1_str[k] = '\\'; else help1_str[k] = string[i]; k++ ; } help1_str[k] = '"' ; k++; help1_str[k] = '\0' ; strcpy(string,help1_str); } #endif /************************************************************* * * changeDisk * * Returns: * On succes : the new drive number >=0, or the current * disk number >=0 if there was no drive to go to. * Fail : -1 * *************************************************************/ #ifdef _WCD_DOSFS int changeDisk(char *path, int *changed, char *newdrive, int *use_HOME) { int i = -1, destDisk; char *ptr; char drive[DD_MAXDRIVE]; i = getdisk(); /* current disk */ if (strlen(path)>1) { strncpy(drive,path,2); drive[DD_MAXDRIVE-1] = '\0'; if (dd_match(drive,"[a-z]:",1)) { destDisk = islower(*drive) ? *drive-'a' : *drive-'A'; if (destDisk >= 0) { setdisk(destDisk); i = getdisk(); /* new disk */ } if ((i==destDisk) && (i>=0)) /* succes ? */ { *changed = 1 ; strcpy(newdrive,drive) ; if((use_HOME == NULL)||(*use_HOME == 0)) { ptr = path + 2; if (strcmp(ptr,"") == 0) { strcpy(path,"/"); } else { strcpy(path,ptr); } } } else i = -1; } } return(i); } #endif /*****************************************************************/ void getCurPath(char *buffer, size_t size, int *use_HOME) { size_t len; if(wcd_getcwd(buffer, size) != NULL) { len = strlen(buffer); if (len==0) buffer[len] = '\0'; wcd_fixpath(buffer,size); rmDriveLetter(buffer,use_HOME); } } /***************************************************************** * add current path to file. * *****************************************************************/ void addCurPathToFile(char *filename,int *use_HOME, int parents) { char tmp[DD_MAXPATH]; /* tmp string buffer */ FILE *outfile; getCurPath(tmp,(size_t)DD_MAXPATH,use_HOME); if(tmp != NULL) { /* open the treedata file */ if ((outfile = wcd_fopen(filename,"a",0)) != NULL) { wcd_fprintf(outfile,"%s\n",tmp); print_msg(""); wcd_printf(_("%s added to file %s\n"),tmp,filename); if (parents) { char *ptr ; while ( (ptr = strrchr(tmp,DIR_SEPARATOR)) != NULL) { *ptr = '\0' ; /* keep one last separator in the path */ if (strrchr(tmp,DIR_SEPARATOR) != NULL) { wcd_fprintf(outfile,"%s\n",tmp); print_msg(""); wcd_printf(_("%s added to file %s\n"),tmp,filename); } } } wcd_fclose(outfile, filename, "w", "addCurPathToFile: "); } } } /****************************************************************/ typedef struct TDirTag { char* dirname; struct TDirTag *next; } TDirEntry; typedef struct { TDirEntry *head, *tail; } TDirList; /* Function: SpecialDir * * Purpose: Test for special directories * * Returns: 1 if path = "." or ".." * 0 otherwise. */ int SpecialDir(const char *path) { if (*path != '.') return 0; if (*(++path) == '.') path++; return (*path=='/' || *path=='\0'); } /****************************************************************** * * q_insert - insert directory name to queue * ******************************************************************/ void q_insert(TDirList *list,const char *s) { TDirEntry *ptr; size_t len = strlen(s); if (!len) return; if ((ptr = (TDirEntry*) malloc(sizeof(TDirEntry))) == NULL ) { perror("malloc"); return; } if ((ptr->dirname = (char*) malloc(len+1)) == NULL ) { perror("malloc"); free(ptr); return; } strcpy(ptr->dirname, s); ptr->next = NULL; if (!list->head) list->head = ptr; else list->tail->next = ptr; list->tail = ptr; } /******************************************************************* * * q_remove - remove directory name from queue * *******************************************************************/ int q_remove(TDirList *list,char *s) { TDirEntry *ptr = list->head; if (!ptr) return 0; /* queue empty? */ strcpy(s, ptr->dirname); list->head = ptr->next; free(ptr->dirname); free(ptr); return 1; /* okay */ } /******************************************************************** * * rmTree(dir) * * Recursively delete directory: *dir * ********************************************************************/ #ifdef __DJGPP__ /* The 32 bit dos versions are compiled with DJGPP and do not use DOSDIR. DJGPP is a mix of DOS/Unix (both 'MSDOS' and 'unix' are defined). DOSDIR's dd_findfirst/dd_findnext implementation for Unix is build with opendir/readdir. Using DJGPP's implementation of opendir/readdir to scan a disk is about a factor 100 slower than using findfirst/findnext (with DJGPP 2.01, gcc 2.7.2). Also using DOSDIR's dd_findfirst/dd_findnext for DOS is very slow when it is compiled with DJGPP. It is about a factor 35 slower than using DJGPP's findfirst/findnext. Probably due to a slow stat() function in dd_initstruct(). Using DOSDIR in combination with DJGPP would make scanning the disk very slow. */ void rmTree(char *dir) { static struct ffblk fb; /* file block structure */ char tmp[DD_MAXPATH]; /* tmp string */ int rc; /* error code */ TDirList list; /* directory queue */ char *errstr; if (dir) { if (wcd_chdir(dir,0)) return; /* Go to the dir, else return */ } else return ; /* dir == NULL */ rc = findfirst( default_mask, &fb, FA_DIREC|FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_ARCH|FA_LABEL); list.head = list.tail = 0; while (rc==0) /* go through all the files in the current dir */ { if (DD_ISDIREC(fb.ff_attrib)) { #ifndef VMS /* Ignore directory entries starting with '.' * which includes the current and parent directories. */ if (!SpecialDir(fb.ff_name)) #endif /* ?!VMS */ q_insert(&list, fb.ff_name); /* add all directories in current dir to list */ } else if ( unlink(fb.ff_name) != 0) /* not a directory */ { errstr = strerror(errno); print_error(_("Unable to remove file %s: %s\n"), fb.ff_name, errstr); } rc = findnext(&fb); } /* while !rc */ /* recursively parse subdirectories (if any) */ while (q_remove(&list, tmp)) { rmTree(tmp); wcd_rmdir(tmp,0); } wcd_chdir(DIR_PARENT,0); /* go to parent directory */ } #else /* not DJGPP */ void rmTree(char *dir) { static dd_ffblk fb; /* file block structure */ char tmp[DD_MAXPATH]; /* tmp string */ wcd_intptr_t rc; /* error code */ char *errstr; TDirList list; /* directory queue */ if (dir) { if (wcd_chdir(dir,0)) return; /* Go to the dir, else return */ } else return ; /* dir == NULL */ /* Don't set DD_LABEL. Otherwise wcd compiled with Borland CPP 5.x bcc32 finds no files or directories at all. This was seen with Borland CPP 5.02 and 5.5.1. Apr 29 2005 Erwin Waterlander */ rc = dd_findfirst( default_mask, &fb, DD_DIREC|DD_RDONLY|DD_HIDDEN|DD_SYSTEM|DD_ARCH|DD_DEVICE ); /* Unix: dd_findfirst is a wrapper around 'opendir'. The directory opened in dd_findfirst * has to be closed by 'closedir' in dd_findnext. So do not exit this function until * the dd_findnext loop is complete. Otherwise directories will be left open and you * will have a memory leak. When too many directories are left open getcwd() may return * an incorrect pathname. */ list.head = list.tail = 0; while (rc==0) /* go through all the files in the current dir */ { if (DD_ISDIREC(fb.dd_mode)) { #ifndef VMS /* Ignore directory entries starting with '.' * which includes the current and parent directories. */ if (!SpecialDir(fb.dd_name)) #endif /* ?!VMS */ q_insert(&list, fb.dd_name); /* add all directories in current dir to list */ } else if ( unlink(fb.dd_name) != 0) /* not a directory */ { errstr = strerror(errno); print_error(_("Unable to remove file %s: %s\n"), fb.dd_name, errstr); } rc = dd_findnext(&fb); } /* while !rc */ /* recursively parse subdirectories (if any) */ while (q_remove(&list, tmp)) { rmTree(tmp); wcd_rmdir(tmp,0); } wcd_chdir(DIR_PARENT,0); /* go to parent directory */ } #endif /******************************************************************** * * pathInNameset(char *path, nameset set) * * Test if *path is a directory or a subdirectory of one * of the paths in set. * * set is a list of paths. * wildcards are supported. * * * Returns (size_t)-1 if directory is not in nameset. * Returns index number (>=0) of first match found if directory is in nameset. * ********************************************************************/ size_t pathInNameset (text path, nameset set) { char tmp[DD_MAXPATH+2]; size_t size, index = 0; if ((path == NULL)||(set == NULL)) return((size_t)-1); size = getSizeOfNamesetArray(set); while (index < size) { strcpy(tmp,set->array[index]); strcat(tmp,"/*"); #ifdef _WCD_DOSFS if ((dd_match(path,set->array[index],1)) || (dd_match(path, tmp,1))) #else if ((dd_match(path,set->array[index],0)) || (dd_match(path, tmp,0))) #endif { return(index); } ++index; } return((size_t)-1); } /******************************************************************** * * finddirs(char *dir, size_t *offset, FILE *outfile, int *use_HOME, int quiet) * ********************************************************************/ #ifdef __DJGPP__ /* * See comment above function rmTree(). */ void finddirs(char* dir, size_t *offset, FILE *outfile, int *use_HOME, nameset exclude, int quiet) { static struct ffblk fb; /* file block structure */ static char tmp[DD_MAXPATH]; /* tmp string buffer */ int rc; /* error code */ size_t len ; TDirList list; /* directory queue */ char *tmp_ptr ; if (dir) { if (wcd_chdir(dir,quiet)) return; /* ?err */ } else return ; /* dir == NULL */ if (wcd_getcwd(tmp, sizeof(tmp)) == NULL) { print_error(_("finddirs(): can't determine path in directory %s\n"),dir); print_error(_("path probably too long.\n")); wcd_chdir(DIR_PARENT,quiet); /* go to parent directory */ return; }; wcd_fixpath(tmp,sizeof(tmp)); rmDriveLetter(tmp,use_HOME); if (pathInNameset(tmp,exclude) != (size_t)-1) { wcd_chdir(DIR_PARENT,quiet); /* go to parent directory */ return; } len = strlen(tmp); if(*offset < len) tmp_ptr = tmp + *offset ; else tmp_ptr = tmp + len; /* tmp_ptr points to ending '\0' of tmp */ if (wcd_fprintf(outfile,"%s\n", tmp_ptr) < 0) return; /* Quit when we can't write path to disk */ rc = findfirst( default_mask, &fb, FA_DIREC|FA_RDONLY|FA_HIDDEN|FA_SYSTEM|FA_ARCH|FA_LABEL ); list.head = list.tail = 0; while (rc==0) /* go through all the files in the current dir */ { if (DD_ISDIREC(fb.ff_attrib)) { /* Ignore directory entries starting with '.' * which includes the current and parent directories. */ if (!SpecialDir(fb.ff_name)) q_insert(&list, fb.ff_name); } rc = findnext(&fb); } /* while !rc */ /* recursively parse subdirectories (if any) (quiet) */ while (q_remove(&list, tmp)) finddirs(tmp,offset, outfile, use_HOME, exclude, 1); wcd_chdir(DIR_PARENT,1); /* go to parent directory */ } #else /* not DJGPP */ void finddirs(char *dir, size_t *offset, FILE *outfile, int *use_HOME, nameset exclude, int quiet) { static dd_ffblk fb; /* file block structure */ static char tmp[DD_MAXPATH]; /* tmp string buffer */ wcd_intptr_t rc; /* error code */ size_t len ; TDirList list; /* directory queue */ char *tmp_ptr ; if (dir) { if (wcd_chdir(dir,quiet)) return; /* Go to the dir, else return */ } else return ; /* dir == NULL */ if (wcd_getcwd(tmp, sizeof(tmp)) == NULL) { print_error(_("finddirs(): can't determine path in directory %s\n"),dir); print_error(_("path probably too long.\n")); wcd_chdir(DIR_PARENT,1); /* go to parent directory */ return; }; #ifdef _WCD_DOSFS wcd_fixpath(tmp,sizeof(tmp)); rmDriveLetter(tmp,use_HOME); #endif if (pathInNameset(tmp,exclude) != (size_t)-1) { wcd_chdir(DIR_PARENT,1); /* go to parent directory */ return; } len = strlen(tmp); if(*offset < len) tmp_ptr = tmp + *offset ; else tmp_ptr = tmp + len; /* tmp_ptr points to ending '\0' of tmp */ if (wcd_fprintf(outfile,"%s\n", tmp_ptr) < 0) return; /* Quit when we can't write path to disk */ /* Don't set DD_LABEL. Otherwise wcd compiled with Borland CPP 5.x bcc32 finds no files or directories at all. This was seen with Borland CPP 5.02 and 5.5.1. Apr 29 2005 Erwin Waterlander */ rc = dd_findfirst( default_mask, &fb, DD_DIREC|DD_RDONLY|DD_HIDDEN|DD_SYSTEM|DD_ARCH|DD_DEVICE ); list.head = list.tail = 0; /* Unix: dd_findfirst is a wrapper around 'opendir'. The directory opened in dd_findfirst * has to be closed by 'closedir' in dd_findnext. So do not exit this function until * the dd_findnext loop is complete. Otherwise directories will be left open and you * will have a memory leak. When too many directories are left open getcwd() may return * an incorrect pathname. */ while (rc==0) /* go through all the files in the current dir */ { if (DD_ISDIREC(fb.dd_mode)) { #ifndef VMS /* Ignore directory entries starting with '.' * which includes the current and parent directories. */ if (!SpecialDir(fb.dd_name)) #endif /* ?!VMS */ #ifdef _WIN32 { /* On Windows a symbolic directory link is seen as a normal directory * by DD_ISDIREC(). */ if(wcd_islink(fb.dd_name,quiet)) wcd_fprintf(outfile,"%s/%s\n", tmp_ptr, fb.dd_name); else q_insert(&list, fb.dd_name); /* add all directories in current dir to list */ } #else q_insert(&list, fb.dd_name); /* add all directories in current dir to list */ #endif } #ifdef UNIX if ( S_ISLNK(fb.dd_mode)) /* is it a link ? */ { static struct stat buf ; if ((stat(fb.dd_name, &buf) == 0) && S_ISDIR(buf.st_mode)) /* does the link point to a dir */ wcd_fprintf(outfile,"%s/%s\n", tmp_ptr, fb.dd_name); } #endif rc = dd_findnext(&fb); } /* while !rc */ /* recursively parse subdirectories (if any) (quiet) */ while (q_remove(&list, tmp)) finddirs(tmp,offset, outfile, use_HOME, exclude, 1); /* Quiet, because on OS/2 changing to .. from a disk root dir gives an error. */ wcd_chdir(DIR_PARENT,1); /* go to parent directory */ } #endif /******************************************************************** * * scanDisk(char *path, char *treefile, int scanreldir, size_t append, int *use_HOME) * * append == 1 : append to treefile * scanreldir == 1 : write relative paths in rtdata.wcd * ********************************************************************/ void scanDisk(char *path, char *treefile, int scanreldir, size_t append, int *use_HOME, nameset exclude) { size_t offset = 0 ; /* offset to remove scanned from path */ char tmp[DD_MAXPATH]; /* tmp string buffer */ char tmp2[DD_MAXPATH]; /* tmp string buffer */ FILE *outfile; #ifdef _WCD_DOSFS char drive[DD_MAXDRIVE]; int changedrive = 0; #endif wcd_fixpath(path,(size_t)DD_MAXPATH); wcd_fixpath(treefile,(size_t)DD_MAXPATH); wcd_getcwd(tmp2, sizeof(tmp2)); /* remember current dir */ if(wcd_isdir(path,0) != 0) { print_msg(""); wcd_printf(_("%s is not a directory.\n"),path); return ; } print_msg(""); wcd_printf(_("Please wait. Scanning disk. Building treedata-file %s from %s\n"),treefile, path); #ifdef _WCD_DOSFS changeDisk(path,&changedrive,drive,use_HOME); #endif if (scanreldir) { if ( !wcd_chdir(path,0) ) { wcd_getcwd(tmp, sizeof(tmp)); /* get full path */ #ifdef _WCD_DOSFS wcd_fixpath(tmp,sizeof(tmp)); rmDriveLetter(tmp,use_HOME); #endif offset = strlen(tmp); /* do not count ending separator (if present) */ if (offset > 0 && tmp[offset-1]==DIR_SEPARATOR) offset--; offset++; } wcd_chdir(tmp2,0); /* go back */ } #ifdef _WCD_DOSFS /* open the output file */ if (append) outfile = wcd_fopen(treefile,"a",0); /* append to database */ else outfile = wcd_fopen(treefile,"w",0); /* create new database */ if (!outfile) /* Try to open in a temp dir */ { char *ptr; if ( (ptr = getenv("TEMP")) != NULL ) { strcpy(treefile,ptr); strcat(treefile,TREEFILE); outfile = wcd_fopen(treefile,"w",1); } if (outfile == NULL) { if ( (ptr = getenv("TMP")) != NULL ) { strcpy(treefile,ptr); strcat(treefile,TREEFILE); outfile = wcd_fopen(treefile,"w",1); } if (outfile == NULL) { if ( (ptr = getenv("TMPDIR")) != NULL ) { strcpy(treefile,ptr); strcat(treefile,TREEFILE); outfile = wcd_fopen(treefile,"w",1); } } } print_msg(_("Writing file \"%s\"\n"), treefile); } if (outfile == NULL) /* Did we succeed? */ { print_error("%s", _("Write access to tree-file denied.\n")); print_error("%s", _("Set TEMP environment variable if this is a read-only disk.\n")); return ; } #else /* open the output file */ if (append) outfile = wcd_fopen(treefile,"a",0); /* append to database */ else outfile = wcd_fopen(treefile,"w",0); /* create new database */ if (outfile == NULL) return ; #endif #ifdef WCD_UTF16 /* Add UTF-8 BOM to make it readable by notepad. */ if (append == 0) wcd_fprintf(outfile, "%s", "\xEF\xBB\xBF"); /* UTF-8 BOM */ #endif finddirs( path, &offset, outfile, use_HOME, exclude, 0); /* Build treedata-file */ wcd_fclose(outfile, treefile, "w", "scanDisk: "); wcd_chdir(tmp2,0); /* go back */ } #if (defined(_WIN32) || defined(__CYGWIN__)) /*********************************************************************** * scanServer() * scan all the shared directories on a server ***********************************************************************/ void scanServer(char *path, char *treefile, size_t append, int *use_HOME, nameset exclude) { size_t i; nameset shares; shares = namesetNew(); wcd_getshares(path, shares); i = 0; while (i= lim-1) { print_error(_("line too long in %s ( > %d). The treefile could be corrupt, else fix by increasing DD_MAXPATH in source code.\n"),"wcd_getline()",(lim-1)); print_error(_("file: %s, line: %d,"),file_name, *line_nr); /* Continue reading until end of line */ j = i+1; while (((c=getc(infile)) != '\n') && (!feof(infile))) { ++j; } fprintf(stderr,_(" length: %d\n"),j); } return i ; } #if defined(_WIN32) || defined(WCD_UNICODE) /* UTF16 little endian */ int wcd_wgetline(wchar_t s[], int lim, FILE* infile, const char* file_name, const int* line_nr) { int i, j ; int c_high, c_low; #if !defined(_WIN32) && !defined(__CYGWIN__) wchar_t lead, trail; #endif for (i=0; i= 4) && (s[i] >= 0xd800) && (s[i] < 0xdc00)) { lead = s[i]; if (((c_low=fgetc(infile)) != EOF) && ((c_high=fgetc(infile)) != EOF) && !((c_high == '\0') && (c_low == '\n'))) { c_high <<=8; trail = (wchar_t)(c_high + c_low) ; if ((trail >= 0xdc00) && (trail < 0xe000)) { s[i] = 0x10000; s[i] += (lead & 0x03FF) << 10; s[i] += (trail & 0x03FF); } else /* not a UTF-16 surrogate pair trail. */ { s[i] = trail; if (s[i] == L'\r') i--; } } } #endif } s[i] = L'\0' ; if (i >= lim-1) { print_error(_("line too long in %s ( > %d). The treefile could be corrupt, else fix by increasing DD_MAXPATH in source code.\n"),"wcd_wgetline()",(lim-1)); print_error(_("file: %s, line: %d,"),file_name, *line_nr); /* Continue reading until end of line */ j = i+1; while (((c_low=fgetc(infile)) != EOF) && ((c_high=fgetc(infile)) != EOF) && !((c_high == '\0') && (c_low == '\n'))) { ++j; } fprintf(stderr,_(" length: %d\n"),j); } return i ; } /* UTF16 big endian */ int wcd_wgetline_be(wchar_t s[], int lim, FILE* infile, const char* file_name, const int* line_nr) { int i, j; int c_high, c_low; #if !defined(_WIN32) && !defined(__CYGWIN__) wchar_t lead, trail; #endif for (i=0; i= 4) && (s[i] >= 0xd800) && (s[i] < 0xdc00)) { lead = s[i]; if (((c_high=fgetc(infile)) != EOF) && ((c_low=fgetc(infile)) != EOF) && !((c_high == '\0') && (c_low == '\n'))) { c_high <<=8; trail = (wchar_t)(c_high + c_low) ; if ((trail >= 0xdc00) && (trail < 0xe000)) { s[i] = 0x10000; s[i] += (lead & 0x03FF) << 10; s[i] += (trail & 0x03FF); } else /* not a UTF-16 surrogate pair trail. */ { s[i] = trail; if (s[i] == L'\r') i--; } } } #endif } s[i] = L'\0' ; if (i >= lim-1) { print_error(_("line too long in %s ( > %d). The treefile could be corrupt, else fix by increasing DD_MAXPATH in source code.\n"),"wcd_wgetline_be()",(lim-1)); print_error(_("file: %s, line: %d,"),file_name, *line_nr); /* Continue reading until end of line */ j = i+1; while (((c_high=fgetc(infile)) != EOF) && ((c_low=fgetc(infile)) != EOF) && !((c_high == '\0') && (c_low == '\n'))) { ++j; } fprintf(stderr,_(" length: %d\n"),j); } return i ; } #endif /******************************************************************** * * Read treefile in a structure. * ********************************************************************/ void read_treefileA(FILE *f, nameset bd, const char* file_name) { int len, line_nr=1; char path[DD_MAXPATH]; while (!feof(f) ) { /* read a line */ len = wcd_getline(path,DD_MAXPATH,f,file_name,&line_nr); ++line_nr; if (len > 0 ) { wcd_fixpath(path,sizeof(path)); addToNamesetArray(textNew(path),bd); } } /* while (!feof(f) ) */ } #if defined(_WIN32) || defined(WCD_UNICODE) void read_treefileUTF16LE(FILE *f, nameset bd, const char* file_name) { int len, line_nr=1; char path[DD_MAXPATH]; wchar_t pathw[DD_MAXPATH]; while (!feof(f) ) { /* read a line */ len = wcd_wgetline(pathw,DD_MAXPATH,f,file_name,&line_nr); ++line_nr; if (len > 0 ) { WCSTOMBS(path, pathw, sizeof(path)); wcd_fixpath(path,sizeof(path)); addToNamesetArray(textNew(path),bd); } } /* while (!feof(f) ) */ } void read_treefileUTF16BE(FILE *f, nameset bd, const char* file_name) { int len, line_nr=1; char path[DD_MAXPATH]; wchar_t pathw[DD_MAXPATH]; while (!feof(f) ) { /* read a line */ len = wcd_wgetline_be(pathw,DD_MAXPATH,f,file_name,&line_nr); ++line_nr; if (len > 0 ) { WCSTOMBS(path, pathw, sizeof(path)); wcd_fixpath(path,sizeof(path)); addToNamesetArray(textNew(path),bd); } } /* while (!feof(f) ) */ } /* read_treefileUTF8() was made to make it possible that a non-Unicode Windows version of Wcd can read UTF-8 encoded tree-data files. Handy when a person uses also the Windows version for PowerShell with Unicode support. Most non-ASCII characters are likely part of the default system ANSI code page. */ void read_treefileUTF8(FILE *f, nameset bd, const char *file_name) { int len, line_nr=1; char path[DD_MAXPATH]; #ifdef WCD_ANSI wchar_t pathw[DD_MAXPATH]; #endif while (!feof(f) ) { /* read a line */ len = wcd_getline(path,DD_MAXPATH,f,file_name,&line_nr); ++line_nr; if (len > 0 ) { #ifdef WCD_ANSI /* Convert UTF-8 to ANSI */ MultiByteToWideChar(CP_UTF8, 0, path, -1, pathw, sizeof(pathw)); WideCharToMultiByte(CP_ACP, 0, pathw, -1, path, sizeof(path), NULL, NULL); #endif wcd_fixpath(path,sizeof(path)); addToNamesetArray(textNew(path),bd); } } /* while (!feof(f) ) */ } #endif int read_treefile(char* filename, nameset bd, int quiet) { FILE *infile; int bomtype; /* open treedata-file */ if ((infile = wcd_fopen_bom(filename,"rb", quiet, &bomtype)) != NULL) { switch (bomtype) { case FILE_MBS: read_treefileA(infile, bd, filename); break; #if defined(_WIN32) || defined(WCD_UNICODE) case FILE_UTF16LE: read_treefileUTF16LE(infile, bd, filename); break; case FILE_UTF16BE: read_treefileUTF16BE(infile, bd, filename); break; case FILE_UTF8: read_treefileUTF8(infile, bd, filename); break; #endif default: read_treefileA(infile, bd, filename); } wcd_fclose(infile, filename, "r", "read_treefile: "); } return(bomtype); } /******************************************************************** * * void cleanTreeFile(char *filename, char *dir) * * remove path from treefile * ********************************************************************/ void cleanTreeFile(char *filename, char *dir) { nameset dirs; int bomtype; dirs = namesetNew(); bomtype = read_treefile(filename,dirs,0); rmDirFromList(dir,dirs); writeList(filename, dirs, bomtype); freeNameset(dirs, 1); } /******************************************************************** * * check_double_match(char *dir, nameset set) * * Returns 0 if directory had no match before. * Returns 1 if directory is double matched. * ********************************************************************/ int check_double_match(char *dir, nameset set) { size_t i = 0; if ((dir == NULL) || (set == NULL)) return(0); while(i < set->size) { #ifdef _WCD_DOSFS if( stricmp(set->array[i],dir) == 0) return(1); #else if( strcmp(set->array[i],dir) == 0) return(1); #endif ++i; } return(0); } /******************************************************************** * * check_filter(char *dir, nameset filter) * * Returns 0 if directory is in filter list or filter list is empty. * Returns 1 if directory is in filter list. * ********************************************************************/ int check_filter(char *dir, nameset filter) { size_t index = 0; if (filter->size == 0) return (0); while (index < filter->size) { #ifdef _WCD_DOSFS if(dd_match(dir,filter->array[index],1)) return(0); #else if(dd_match(dir,filter->array[index],0)) return(0); #endif ++index; } return(1); } /******************************************************************** * * scanfile(char *org_dir, char *filename, int * ignore_case, nameset pm, nameset wm, nameset bd, int nfs) * * ********************************************************************/ void scanfile(char *org_dir, char *filename, int ignore_case, nameset pm, nameset wm, nameset bd, nameset filter, int relative, int wildOnly, int ignore_diacritics) { FILE *infile; char line[DD_MAXPATH]; /* database path */ #if defined(_WIN32) || defined(WCD_UNICODE) wchar_t linew[DD_MAXPATH]; /* database path */ #endif int bomtype ; char *line_end; /* database directory */ char path_str[DD_MAXPATH]; /* path name to match */ char dirwild_str[DD_MAXPATH]; /* directory name to wild match */ char *dir_str ; /* directory name to perfect match */ char relative_prefix[DD_MAXPATH]; /* relative prefix */ char tmp[DD_MAXPATH]; int wild = 0; int line_nr =1; /* open treedata-file */ if ((infile = wcd_fopen_bom(filename,"rb",0,&bomtype)) == NULL) return; if( (dir_str = strrchr(org_dir,DIR_SEPARATOR)) != NULL) dir_str++; else dir_str = org_dir; strcpy(dirwild_str,dir_str); #ifdef _WCD_DOSFS if ((strlen(org_dir)>1) && (dd_match(org_dir,"[a-z]:*",1))) { /* If user searches "c:bin" (a directory "bin" on drive c:) set path_str to "c:*bin" */ strncpy(path_str,org_dir,2); path_str[DD_MAXDRIVE-1] = '\0'; line_end = org_dir + DD_MAXDRIVE ; strcat(path_str,"*"); strcat(path_str,line_end); } else #endif { strcpy(path_str,"*"); strcat(path_str,org_dir); } if (!dd_iswild(dir_str)) { strcat(dirwild_str,"*"); strcat(path_str,"*"); wild = 0; } else wild = 1; if (wildOnly) wild = 1; if (relative) { strcpy(relative_prefix,filename); if( (line_end = strrchr(relative_prefix,DIR_SEPARATOR)) != NULL) { line_end++ ; *line_end = '\0'; } else relative_prefix[0] = '\0'; } while (!feof(infile) ) /* parse the file */ { int len; #if defined(_WIN32) || defined(WCD_UNICODE) /* read a line */ switch (bomtype) { case FILE_MBS: len = wcd_getline(line,DD_MAXPATH,infile,filename,&line_nr); break; case FILE_UTF16LE: len = wcd_wgetline(linew,DD_MAXPATH,infile,filename,&line_nr); WCSTOMBS(line, linew, sizeof(line)); break; case FILE_UTF16BE: len = wcd_wgetline_be(linew,DD_MAXPATH,infile,filename,&line_nr); WCSTOMBS(line, linew, sizeof(line)); break; case FILE_UTF8: len = wcd_getline(line,DD_MAXPATH,infile,filename,&line_nr); #ifdef WCD_ANSI /* convert UTF-8 to ANSI */ MultiByteToWideChar(CP_UTF8, 0, line, -1, linew, sizeof(linew)); WideCharToMultiByte(CP_ACP, 0, linew, -1, line, sizeof(line), NULL, NULL); #endif break; default: len = wcd_getline(line,DD_MAXPATH,infile,filename,&line_nr); } #else len = wcd_getline(line,DD_MAXPATH,infile,filename,&line_nr); #endif ++line_nr; cleanPath(line,len,1) ; if( (line_end = strrchr(line,DIR_SEPARATOR)) != NULL) line_end++; else line_end = line; /* test for a perfect match */ #ifdef WCD_UNICODE if ( (wild == 0) && (dd_matchmbs(line_end,dir_str,ignore_case,ignore_diacritics)) && (dd_matchmbs(line,path_str,ignore_case,ignore_diacritics)) ) #else if ( (wild == 0) && (dd_matchl(line_end,dir_str,ignore_case,ignore_diacritics)) && (dd_matchl(line,path_str,ignore_case,ignore_diacritics)) ) #endif { if (relative) { strcpy(tmp,relative_prefix); strcat(tmp,line); strcpy(line,tmp); } if ((pathInNameset(line,bd) == (size_t)-1) && (check_double_match(line,pm)==0)&& (check_filter(line,filter)==0)) { addToNamesetArray(textNew(line),pm); } } else { /* test for a wild match if no perfect match */ #ifdef WCD_UNICODE if ( (dd_matchmbs(line_end,dirwild_str,ignore_case,ignore_diacritics)) && (dd_matchmbs(line,path_str,ignore_case,ignore_diacritics)) && (pm->size == 0)) #else if ( (dd_matchl(line_end,dirwild_str,ignore_case,ignore_diacritics)) && (dd_matchl(line,path_str,ignore_case,ignore_diacritics)) && (pm->size == 0)) #endif { if (relative) { strcpy(tmp,relative_prefix); strcat(tmp,line); strcpy(line,tmp); } if((pathInNameset(line,bd) == (size_t)-1) && (check_double_match(line,wm)==0) && (check_filter(line,filter)==0)) { addToNamesetArray(textNew(line),wm); } } } } /* while (!feof(infile) ) */ wcd_fclose(infile, filename, "r", "scanfile: "); } /******************************************************************** * * scanaliasfile(char *org_dir, char *filename, * nameset *pm, nameset *wm, int wildOnly) * * ********************************************************************/ void scanaliasfile(char *org_dir, char *filename, nameset pm, nameset wm, int wildOnly) { FILE *infile; char *dir; char line[DD_MAXPATH]; char alias[256]; int line_nr=1; dir = org_dir; #ifdef _WCD_DOSFS /* wcd_fixpath() could have added a '/' before the alias e.g. wcd d:alias => /alias */ if (*dir == '/') dir++; #endif /* open treedata-file */ if ((infile = wcd_fopen(filename,"r",1)) != NULL) { while (!feof(infile) ) { int len; if(fscanf(infile,"%s",alias)==1) { /* skip spaces between alias and path */ while ((line[0]=(char)getc(infile)) == ' '){}; /* read a line */ len = wcd_getline(line+1,DD_MAXPATH,infile,filename,&line_nr); ++len; ++line_nr; if (len > 0 ) /* Only a perfect match counts, case sensitive */ if ((strcmp(alias,dir)==0) && (check_double_match(line,pm)==0) /* && (check_filter(line,filter)==0) */ ) { if(wildOnly) addToNamesetArray(textNew(line),wm); else addToNamesetArray(textNew(line),pm); } } } /* while (!feof(infile) ) */ wcd_fclose(infile, filename, "r", "scanaliasfile: "); } } /******************************************************************** * * Get int * ********************************************************************/ int wcd_get_int(void) { int i; char string[32]; fgets(string,(int)sizeof(string),stdin); fflush(stdin); /* flush the input stream in case of bad input */ /* fgets retains the newline character (LF) at the end of string and appends a null byte to string to mark the end of the string. */ string[strlen(string)-1] = '\0'; /* remove LF */ i=atoi(string); return(i); } /******************************************************************** * * exit * ********************************************************************/ int wcd_exit(nameset pm, nameset wm, nameset ef, nameset bd, nameset nfs, WcdStack ws, nameset excl) { /* free datastructures */ freeNameset(pm, 1); /* perfect list */ freeNameset(wm, 1); /* wild list */ freeNameset(ef, 1); /* extra files */ freeNameset(bd, 1); /* banned dirs */ freeNameset(nfs, 1); /* relative files */ freeWcdStack(ws, 1); /* directory stack */ freeNameset(excl, 1); /* excluded paths */ return(0); } /******************************************************************** * * Print help * ********************************************************************/ void print_help(void) { printf(_("Usage: wcd [options] [directory]\n\n")); printf(_("directory: Name of directory to change to.\n")); printf(_(" Wildcards *, ? and [SET] are supported.\n\n")); printf(_("options:\n")); printf(_(" -a Add current path to treefile\n")); printf(_(" -aa Add current and all parent paths to treefile\n")); printf(_(" -A PATH Add tree from PATH\n")); printf(_(" -b Ban current path\n")); printf(_(" -c, --direct-cd direct CD mode\n")); printf(_(" -d DRIVE set DRIVE for stack & go files (DOS)\n")); printf(_(" -e add current path to Extra treefile\n")); printf(_(" -ee add current and all parent paths to Extra treefile\n")); printf(_(" -E PATH add tree from PATH to Extra treefile\n")); printf(_(" -f FILE use extra treeFile\n")); printf(_(" +f FILE add extra treeFile\n")); printf(_(" -g Graphics\n")); printf(_(" -gd Graphics, dump tree\n")); printf(_(" -G PATH set PATH Go-script\n")); printf(_(" -GN, --no-go-script No Go-script\n")); printf(_(" -h, --help show this Help\n")); #ifdef _WCD_DOSFS printf(_(" -i, --ignore-case Ignore case (default)\n")); printf(_(" +i, --no-ignore-case regard case\n")); #else printf(_(" -i, --ignore-case Ignore case\n")); printf(_(" +i, --no-ignore-case regard case (default)\n")); #endif printf(_(" -I, --ignore-diacritics Ignore diacritics\n")); printf(_(" +I, --no-ignore-diacritics regard diacritics (default)\n")); printf(_(" -j, --just-go Just go mode\n")); printf(_(" -k, --keep-paths Keep paths\n")); printf(_(" -K, --color colors\n")); printf(_(" -l ALIAS aLias current directory\n")); printf(_(" -L, --license show software License\n")); printf(_(" -m DIR Make DIR, add to treefile\n")); printf(_(" -M DIR Make DIR, add to extra treefile\n")); printf(_(" -n PATH use relative treefile in PATH\n")); printf(_(" +n PATH add relative treefile in PATH\n")); printf(_(" -N, --numbers use Numbers\n")); printf(_(" -o use stdOut\n")); printf(_(" -od, --to-stdout dump matches\n")); printf(_(" -q, --quiet Quieter operation\n")); printf(_(" -r DIR Remove DIR\n")); printf(_(" -rmtree DIR Remove DIR recursive\n")); printf(_(" -s Scan disk from $HOME\n")); printf(_(" -S PATH Scan disk from PATH\n")); printf(_(" +S PATH Scan disk from PATH, create relative treefile\n")); printf(_(" -t don't strip /tmp_mnt from paths\n")); printf(_(" -T, --ascii-tree draw tree with ASCII characters\n")); printf(_(" -Ta, --alt-tree-nav Alternative tree navigation\n")); printf(_(" -TC, --center-tree Centered tree view\n")); printf(_(" -Tc, --compact-tree Compact tree\n")); printf(_(" -Td, --cjk-width support legacy CJK fonts\n")); printf(_(" -u USER use USER's treefile\n")); printf(_(" +u USER add USER's treefile\n")); printf(_(" -v, --verbose Verbose operation\n")); printf(_(" -V, --version show Version info\n")); printf(_(" -w, --wild-match-only Wild matching only\n")); printf(_(" -x PATH eXclude PATH during disk scan\n")); printf(_(" -xf FILE eXclude paths from FILE\n")); printf(_(" -y, --assume-yes assume Yes on all queries\n")); printf(_(" -z NUMBER set max stack siZe\n")); printf(_(" -[NUMBER] push dir (NUMBER times)\n")); printf(_(" +[NUMBER] pop dir (NUMBER times)\n")); printf(_(" = show stack\n")); } #ifdef ENABLE_NLS void print_version(char *localedir) #else void print_version(void) #endif { printf(_("wcd %s (%s) - Wherever Change Directory\n"),VERSION,VERSION_DATE); printf(_("Chdir for Dos and Unix.\n\n")); #ifdef __MSDOS__ #if defined(__WATCOMC__) && defined(__I86__) printf(_("DOS 16 bit version (WATCOMC).\n")); #elif defined(__TURBOC__) printf( _("DOS 16 bit version (TURBOC).\n")); #elif defined(__GO32__) printf(_("DOS 32 bit version (DJGPP).\n")); #elif defined(__WATCOMC__) && defined(__386__) printf(_("DOS 32 bit version (WATCOMC).\n")); #endif #endif #ifdef _WIN32 # ifdef _WIN64 # ifdef _MSC_VER printf(_("Win64 version (MSVC %d).\n"),_MSC_VER); # else printf(_("Win64 version (MinGW-w64).\n")); # endif # else # if defined(__WATCOMC__) && defined(__NT__) printf(_("Win32 version (WATCOMC).\n")); # elif defined(_MSC_VER) printf(_("Win32 version (MSVC %d).\n"),_MSC_VER); # elif defined(__MINGW32__) && (WCD_COMPILER == MINGW32_W64) printf(_("Win32 version (MinGW-w64).\n")); # else printf(_("Win32 version (MinGW).\n")); # endif # endif #endif #ifdef _WIN32 # ifdef WCD_WINZSH printf(_("This version is for MSYS and WinZsh.\n")); # elif defined(WCD_WINPWRSH) printf(_("This version is for Windows PowerShell.\n")); # else printf(_("This version is for Windows Command Prompt (cmd.exe).\n")); # endif #endif #ifdef __OS2__ printf(_("OS/2 version")); # ifdef __WATCOMC__ printf(" (WATCOMC).\n"); # elif defined(__EMX__) printf(" (EMX).\n"); # else printf( ".\n"); # endif #endif #ifdef __MSYS__ printf(_("This version is for native MSYS.\n")); #endif #if defined(__CYGWIN__) && !defined(__MSYS__) printf(_("Cygwin version.\n")); #endif #ifdef WCD_DOSBASH printf(_("This version is for DJGPP DOS bash.\n")); #endif #ifdef WCD_OS2BASH printf(_("This version is for OS/2 bash.\n")); #endif printf(_("Interface: ")); #ifdef WCD_USECONIO printf("conio\n"); #else # ifdef WCD_USECURSES # ifdef NCURSES_VERSION printf(_("ncurses version %s.%d\n"),NCURSES_VERSION,NCURSES_VERSION_PATCH); # else # ifdef __PDCURSES__ printf(_("PDCurses build %d\n"),PDC_BUILD); # else printf(_("curses\n")); # endif # endif # ifdef ASCII_TREE printf("ASCII_TREE=1\n"); # else printf("ASCII_TREE=0\n"); # endif # else printf(_("stdout\n")); # endif #endif #ifdef ENABLE_NLS printf(_("Native language support included.\n")); printf(_("LOCALEDIR=%s\n"),localedir); #else printf(_("No native language support included.\n")); #endif #if defined(_WCD_DOSFS) || defined(__MSYS__) printf(_("Current locale uses CP%u encoding.\n"),query_con_codepage()); #else printf(_("Current locale uses %s encoding.\n"),nl_langinfo(CODESET)); #endif #ifdef WCD_UNICODE printf(_("With Unicode support.\n")); #ifndef WCD_UTF16 if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) #endif { printf(_(" Euro symbol: ")); wcd_printf ("%s\n","€"); /* Put real UTF-8. Visual C does not support C99 unicode notation. */ printf(_(" Chinese characters: ")); wcd_printf ("%s\n","中文"); } #else printf(_("Without Unicode support.\n")); #endif #ifdef WCD_UNINORM printf(_("With Unicode normalization.\n")); #else printf(_("Without Unicode normalization.\n")); #endif printf("\n"); printf(_("Download the latest executables and sources from:\n")); printf("http://waterlan.home.xs4all.nl/\n"); } void print_license(void) { printf(_("wcd %s (%s) - Wherever Change Directory\n"),VERSION,VERSION_DATE); printf(_("\ Copyright (C) 1997-2014 Erwin Waterlander\n\ Copyright (C) 1994-2002 Ondrej Popp on C3PO\n\ Copyright (C) 1995-1996 DJ Delorie on _fixpath()\n\ Copyright (C) 1995-1996 Borja Etxebarria & Olivier Sirol on Ninux Czo Directory\n\ Copyright (C) 1994-1996 Jason Mathews on DOSDIR\n\ Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,\n\ Kai Uwe Rommel and Igor Mandrichenko on recmatch()\n")); printf(_("\ Source code to scan Windows LAN was originally written and placed\n\ in the public domain by Felix Kasza.\n\ Markus Kuhn's free wcwidth() and wcswidth() implementations are used.\n\ Rugxulo is the original author of query_con_codepage() (public domain).\n\n")); printf(_("\ This program is free software; you can redistribute it and/or\n\ modify it under the terms of the GNU General Public License\n\ as published by the Free Software Foundation; either version 2\n\ of the License, or (at your option) any later version.\n\n")); printf(_("\ This program is distributed in the hope that it will be useful,\n\ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ GNU General Public License for more details.\n\n")); printf(_("\ You should have received a copy of the GNU General Public License\n\ along with this program; if not, write to the Free Software\n\ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n")); } /* Recurively create directory path, to enable writing * the file */ void create_dir_for_file(char *f) { char path[DD_MAXPATH]; char *ptr ; #if (defined(UNIX) || defined(__DJGPP__) || defined(__EMX__)) mode_t m; #endif strncpy(path, f, (size_t)(DD_MAXPATH - 1)); path[DD_MAXPATH - 1] = '\0'; if ( (ptr = strrchr(path,DIR_SEPARATOR)) != NULL) { *ptr = '\0' ; if ( (path[0] != '\0') && /* not an empty string */ #ifdef _WCD_DOSFS (!dd_match(path,"[a-z]:",1)) && /* not a drive letter */ #endif (wcd_isdir(path,1) != 0) /* dir does not exist */ ) { create_dir_for_file(path); #if (defined(UNIX) || defined(__DJGPP__) || defined(__EMX__)) m = S_IRWXU | S_IRWXG | S_IRWXO; if (wcd_mkdir(path,m,0)==0) #else if (wcd_mkdir(path,0)==0) #endif print_msg(_("creating directory %s\n"), path); } } } /******************************************************************** * * empty wcd.go file * ********************************************************************/ #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) void empty_wcdgo(char *go_file, int use_GoScript, int verbose) { FILE *outfile; if (use_GoScript == 0) return; if (verbose) print_msg(_("Writing file \"%s\"\n"), go_file); /* try to create directory for go-script if it doesn't exist */ create_dir_for_file(go_file); if ((outfile = wcd_fopen(go_file,"w",0)) == NULL) exit(0); wcd_fprintf(outfile, "%s", "\n"); wcd_fclose(outfile, go_file, "w", "empty_wcdgo: "); } #endif #ifdef WCD_DOSBASH void empty_wcdgo(char *go_file, int changedrive, char *drive, int use_GoScript, int verbose) { FILE *outfile; if (use_GoScript == 0) return; if (verbose) print_msg(_("Writing file \"%s\"\n"), go_file); /* try to create directory for go-script if it doesn't exist */ create_dir_for_file(go_file); if ((outfile = wcd_fopen(go_file,"w",0)) == NULL) exit(0); if(changedrive == 1) wcd_fprintf(outfile,"cd %s\n",drive); else wcd_fprintf(outfile, "%s", "\n"); wcd_fclose(outfile, go_file, "w", "empty_wcdgo: "); } #endif /******************************************************************** * * pickDir() * * gets current dirname. * picks dirname from a nameset. The next one after the current, * otherwise the first dirname. * * Returns 0, if no dir found. Otherwise the indexnumber of the * list + 1. * * ******************************************************************/ size_t pickDir(nameset list, int *use_HOME) { char curDir[DD_MAXPATH]; size_t i; if (list == NULL) /* there is no list */ return(0); sort_list(list); getCurPath(curDir,(size_t)DD_MAXPATH,use_HOME); /* get previous dirname from file */ if (curDir == NULL) /* no dirname found */ return(1); /* return first of list */ if ((i = inNameset(curDir,list)) == (size_t)-1) /* not in list */ return(1); /* return first of list */ i++; /* next dirname */ if (i >= getSizeOfNamesetArray(list)) i = 0; /* wrap to beginning */ return(i+1); } /******************************************************************** * * ********************************************************************/ #ifdef WCD_SHELL void writeGoFile(char *go_file, int *changedrive, char *drive, char *best_match, int use_GoScript, int verbose) { FILE *outfile; #ifdef WCD_UNIXSHELL char *ptr ; #endif #if defined (_WIN32) && !defined(__CYGWIN__) unsigned int codepage_ansi, codepage_dos; codepage_ansi = GetACP(); codepage_dos = GetConsoleOutputCP(); #endif if (use_GoScript == 0) return; if (verbose) print_msg(_("Writing file \"%s\"\n"), go_file); /* try to create directory for go-script if it doesn't exist */ create_dir_for_file(go_file); /* open go-script */ if ((outfile = wcd_fopen(go_file,"w",0)) == NULL) return; # ifdef WCD_UNIXSHELL /* unix shell */ # ifdef WCD_DOSBASH /* In DOS Bash $SHELL points to the windows command shell. So we use $BASH instead. */ if ((ptr = getenv("BASH")) != NULL) wcd_fprintf(outfile,"#!%s\n",ptr); if (*changedrive) wcd_fprintf(outfile,"cd %s ; ",drive); # else /* Printing of #!$SHELL is needed for 8 bit characters. Some shells otherwise think that the go-script is a binary file and will not source it. */ if ((ptr = getenv("SHELL")) != NULL) wcd_fprintf(outfile,"#!%s\n",ptr); # endif wcd_fprintf(outfile,"cd %s\n", best_match); # else /* WCD_UNIXSHELL */ /* Go-script required, but not unix shell type. */ # ifdef WCD_WINPWRSH /* Windows powershell */ # ifdef WCD_UTF16 /* PowerShell can run UTF-8 encoded scripts when the UTF-8 BOM is in. */ wcd_fprintf(outfile, "%s", "\xEF\xBB\xBF"); /* UTF-8 BOM */ # endif if (codepage_ansi != codepage_dos) wcd_fprintf(outfile,"chcp %d | Out-Null\n", codepage_ansi); wcd_fprintf(outfile,"set-location %s\n", best_match); if (codepage_ansi != codepage_dos) wcd_fprintf(outfile,"chcp %d | Out-Null\n", codepage_dos); # else /* Windows Command Prompt, os/2 */ wcd_fprintf(outfile, "%s", "@echo off\n"); if (*changedrive) wcd_fprintf(outfile,"%s\n",drive); # ifdef WCD_UTF16 if (codepage_ansi != 65001) wcd_fprintf(outfile,"chcp 65001 > nul\n"); # endif # ifdef WCD_ANSI if (codepage_ansi != codepage_dos) wcd_fprintf(outfile,"chcp %d > nul\n", codepage_ansi); # endif if (strncmp(best_match,"\"\\\\",3) == 0) wcd_fprintf(outfile,"pushd %s\n", best_match); /* UNC path */ else wcd_fprintf(outfile,"cd %s\n", best_match); # ifdef WCD_UTF16 if (codepage_ansi != 65001) wcd_fprintf(outfile,"chcp %d > nul\n", codepage_dos); # endif # ifdef WCD_ANSI if (codepage_ansi != codepage_dos) wcd_fprintf(outfile,"chcp %d > nul\n", codepage_dos); # endif # endif # endif wcd_fclose(outfile, go_file, "w", "writeGoFile: "); } #endif void addListToNameset(nameset set, char *list) { char tmp[DD_MAXPATH]; /* tmp string buffer */ if (list != NULL) { list = strtok(list, LIST_SEPARATOR); while (list != NULL) { if (strlen(list) < (DD_MAXPATH-2)) /* prevent buffer overflow */ { strcpy(tmp,list); wcd_fixpath(tmp,sizeof(tmp)); addToNamesetArray(textNew(tmp),set); } list = strtok(NULL, LIST_SEPARATOR); } } } void addListToNamesetFilter(nameset set, char *list) { char tmp[DD_MAXPATH]; /* tmp string buffer */ if (list != NULL) { list = strtok(list, LIST_SEPARATOR); while (list != NULL) { if (strlen(list) < (DD_MAXPATH-2)) /* prevent buffer overflow */ { strcpy(tmp,"*"); strcat(tmp,list); strcat(tmp,"*"); wcd_fixpath(tmp,sizeof(tmp)); addToNamesetArray(textNew(tmp),set); } list = strtok(NULL, LIST_SEPARATOR); } } } /******************************************************************** * * MAIN * ********************************************************************/ #if defined(XCURSES) char *XCursesProgramName = "wcd"; #endif int main(int argc,char** argv) { FILE *infile; FILE *outfile; char best_match[DD_MAXPATH]; char verbose = 0; int i; size_t ii, j; int exit_wcd = 0; int use_default_treedata = 1; int use_numbers = 0; /* use numbers instead of letters in conio or curses interface */ int use_stdout = WCD_STDOUT_NO; /* use stdout interface instead of curses */ #ifdef UNIX int strip_mount_string = 1 ; /* remove mount string prefix( e.g. /tmp_mnt ) from path before /home */ #endif int stack_hit = 0, stack_index; char rootdir[DD_MAXPATH],treefile[DD_MAXPATH],banfile[DD_MAXPATH],aliasfile[DD_MAXPATH]; char stackfile[DD_MAXPATH]; char scandir[DD_MAXPATH]; char rootscandir[DD_MAXPATH]; char extratreefile[DD_MAXPATH]; char homedir[DD_MAXPATH]; char dir[DD_MAXPATH]; /* directory to go to, or dir to scan, make or remove */ char scan_mk_rm = 0; /* scan disk, or make dir, or remove dir */ char *ptr, *stackptr; int quieter = 0, cd = 0 ; size_t len; char tmp[DD_MAXPATH]; /* tmp string buffer */ char tmp2[DD_MAXPATH]; /* tmp string buffer */ int stack_is_read = 0; WcdStack DirStack; nameset extra_files, banned_dirs, scan_dirs; nameset perfect_list, wild_list ; /* match lists */ nameset relative_files; nameset exclude; /* list of paths to exclude from scanning */ nameset filter; int use_HOME = 0 ; int wildOnly = 0 ; int justGo = 0; int assumeYes = 0; int graphics = WCD_GRAPH_NO ; int keep_paths =0; /* Keep paths in treedata.wcd when wcd can't change to them */ #ifdef WCD_USECURSES dirnode rootNode ; #endif int changedrive = 0; char drive[DD_MAXDRIVE]; int ignore_diacritics = 0; #ifdef _WCD_DOSFS int ignore_case = 1; # if (defined(_WIN32) || defined(WCD_DOSBASH) || defined(__OS2__)) char go_file[DD_MAXPATH]; int use_GoScript = 1; # endif #else int ignore_case = 0; char go_file[DD_MAXPATH]; int use_GoScript = 1; #endif #ifdef WCD_UTF16 wchar_t *cmdstr; wchar_t **wargv; #endif #ifndef __MSDOS__ /* Win32, OS/2, Unix, Cygwin */ /* setlocale is required for correct working of nl_langinfo() DOS versions of wcd will use query_con_codepage(). */ setlocale (LC_ALL, ""); #endif #ifdef ENABLE_NLS char localedir[DD_MAXPATH]; ptr = getenv("WCDLOCALEDIR"); if (ptr == NULL) strcpy(localedir,LOCALEDIR); else { if (strlen(ptr) < sizeof(localedir)) { strcpy(localedir,ptr); wcd_fixpath(localedir,sizeof(localedir)); } else { print_error(_("Value of environment variable %s is too long.\n"),"WCDLOCALEDIR"); strcpy(localedir,LOCALEDIR); } } bindtextdomain (PACKAGE, localedir); textdomain (PACKAGE); #endif #ifdef __PDCURSES__ /* if ( getenv("PDC_RESTORE_SCREEN") == NULL ) putenv("PDC_RESTORE_SCREEN=1"); */ /* restore screen after exit */ if ( getenv("PDC_ORIGINAL_COLORS") == NULL ) putenv("PDC_ORIGINAL_COLORS=1"); /* use command prompt original colours */ /* When PDC_RESTORE_SCREEN is set, wcd scrolls away if command window buffer is too large. This has been fixed in PDCurses 2.7. Bug 1144353. Don't assume user has PDCurses 2.7, so don't set PDC_RESTORE_SCREEN by default. Erwin */ #endif #if defined(_WIN32) && !defined(__CYGWIN__) && defined(NCURSES_VERSION) /* On Windows TERM is not standardized and may be set to any value. * When ncurses does not understand the value of TERM it will exit * right away. On Windows (not Cygwin) it is best to not set TERM at all. */ if (getenv("TERM") != NULL) { if (putenv("TERM=") != 0) { ptr = strerror(errno); print_error(_("Failed to unset environment variable TERM: %s\n"), ptr); } } #endif if ((ptr = getenv("HOME")) == NULL) { strcpy(rootscandir,ROOTDIR); } else { if (strlen(ptr) > (DD_MAXPATH -20)) { print_error(_("Value of environment variable %s is too long.\n"),"HOME"); return(1); } strncpy(rootscandir,ptr,sizeof(rootscandir)); } #ifdef _WCD_DOSFS if ((ptr = getenv("WCDHOME")) == NULL) ptr = getenv("HOME"); if (ptr != NULL) { if (strlen(ptr) > (DD_MAXPATH -20)) { print_error(_("Value of environment variable %s is too long.\n"),"HOME or WCDHOME"); return(1); } use_HOME = 1 ; strcpy(rootdir,ptr); wcd_fixpath(rootdir,sizeof(rootdir)); strcpy(treefile,rootdir); strcat(treefile,TREEFILE); strcpy(extratreefile,rootdir); strcat(extratreefile,EXTRA_TREEFILE); # if (defined(_WIN32) || defined(WCD_DOSBASH) || defined(__OS2__)) strcpy(go_file,rootdir); strcat(go_file,GO_FILE); # endif strcpy(banfile,rootdir); strcat(banfile,BANFILE); strcpy(aliasfile,rootdir); strcat(aliasfile,ALIASFILE); if ((ptr = getenv("WCDSTACKFILE")) == NULL) { strcpy(stackfile,rootdir); strcat(stackfile,STACKFILE); } else { strncpy(stackfile,ptr,sizeof(stackfile)); } } else { # if (defined(WCD_WINZSH) || defined(WCD_WINPWRSH)) print_error("%s", _("Environment variable HOME or WCDHOME is not set.\n")); return(1); # endif # if (defined(_WIN32) || defined(WCD_DOSBASH) || defined(__OS2__)) strcpy(go_file,STACK_GO_DRIVE); strcat(go_file,GO_FILE); # endif strcpy(rootdir,ROOTDIR); strcpy(treefile,TREEFILE); strcpy(extratreefile,EXTRA_TREEFILE); strcpy(banfile,BANFILE); strcpy(aliasfile,ALIASFILE); if ((ptr = getenv("WCDSTACKFILE")) == NULL) { strcpy(stackfile,STACK_GO_DRIVE); strcat(stackfile,STACKFILE); } else { strncpy(stackfile,ptr,sizeof(stackfile)); } } #else if ((ptr = getenv("WCDHOME")) == NULL) ptr = getenv("HOME"); if (ptr == NULL) { print_error("%s", _("Environment variable HOME or WCDHOME is not set.\n")); return(1); } else { if (strlen(ptr) > (DD_MAXPATH -20)) { print_error(_("Value of environment variable %s is too long.\n"),"HOME or WCDHOME"); return(1); } strcpy(rootdir,ptr); } wcd_fixpath(rootdir,sizeof(rootdir)); strcpy(treefile,rootdir); strcat(treefile,TREEFILE); strcpy(extratreefile,rootdir); strcat(extratreefile,EXTRA_TREEFILE); strcpy(go_file,rootdir); strcat(go_file,GO_FILE); strcpy(banfile,rootdir); strcat(banfile,BANFILE); strcpy(aliasfile,rootdir); strcat(aliasfile,ALIASFILE); if ((ptr = getenv("WCDSTACKFILE")) == NULL) { strcpy(stackfile,rootdir); strcat(stackfile,STACKFILE); } else { strncpy(stackfile,ptr,sizeof(stackfile)); } #endif create_dir_for_file(treefile); strncpy(scandir,rootdir,(size_t)DD_MAXPATH); strcpy(dir,""); perfect_list = namesetNew(); wild_list = namesetNew(); extra_files = namesetNew(); banned_dirs = namesetNew(); scan_dirs = namesetNew(); relative_files = namesetNew(); exclude = namesetNew(); filter = namesetNew(); DirStack = WcdStackNew(WCD_STACK_SIZE); read_treefile(banfile,banned_dirs,1); ptr = getenv("WCDSCAN"); addListToNameset(scan_dirs, ptr); ptr = getenv("WCDEXCLUDE"); addListToNameset(exclude, ptr); ptr = getenv("WCDBAN"); addListToNameset(banned_dirs, ptr); ptr = getenv("WCDFILTER"); addListToNamesetFilter(filter, ptr); stackptr = NULL; ptr = getenv("WCDUSERSHOME"); if (ptr == NULL) strcpy(homedir,HOMESTRING); else { if (strlen(ptr) > DD_MAXPATH) { print_error(_("Value of environment variable %s is too long.\n"),"WCDUSERSHOME"); return(1); } strcpy(homedir,ptr); wcd_fixpath(homedir,sizeof(homedir)); } #ifdef WCD_UTF16 /* Get Unicode parameters. */ cmdstr = GetCommandLineW(); wargv = CommandLineToArgvW(cmdstr, &argc); #endif /* ---------------------- parse the commandline ------------*/ for (i=1; i < argc; i++) { if (*argv[i]=='-') /* is it a switch? */ switch (argv[i][1]) { case '\0': if (stack_is_read == 0) { stack_read(DirStack,stackfile); stack_is_read = 1; } stackptr = stack_push(DirStack,1); if (stackptr != NULL) { stack_hit = 1; stack_write(DirStack,stackfile); } break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (stack_is_read == 0) { stack_read(DirStack,stackfile); stack_is_read = 1; } ptr = argv[i]; ptr++; stackptr = stack_push(DirStack,atoi(ptr)); if (stackptr != NULL) { stack_hit = 1; stack_write(DirStack,stackfile); } break; case 's': if (getSizeOfNamesetArray(scan_dirs) == 0) scanDisk(rootscandir,treefile,0,(size_t)0,&use_HOME,exclude); else { j = 0; while (j= 0) { stackptr = DirStack->dir[stack_index] ; if (stackptr != NULL) { stack_hit = 1; stack_write(DirStack,stackfile); } } else { #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,0,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } } else /* Not a switch. Must be a dir or filename. */ { if (strcmp(argv[i-1],"-l") == 0 ) { if (wcd_getcwd(tmp, sizeof(tmp)) != NULL) { len = strlen(tmp); if (len==0) tmp[len] = '\0'; /* open the treedata file */ if ((outfile = wcd_fopen(aliasfile,"a",0)) != NULL) { wcd_fixpath(tmp,sizeof(tmp)) ; rmDriveLetter(tmp,&use_HOME); wcd_fprintf(outfile,"%s %s\n",argv[i],tmp); print_msg(_("%s added to aliasfile %s\n"),tmp,aliasfile); wcd_fclose(outfile, aliasfile, "w", "main: "); } } #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,0,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } else if ((strcmp(argv[i-1],"-f") == 0 ) || (strcmp(argv[i-1],"+f") == 0 )) { if (argv[i-1][0] == '-') use_default_treedata = 0; addToNamesetArray(textNew(argv[i]),extra_files); } else if (strncmp(argv[i-1],"-x",(size_t)2) == 0 ) /* exclude paths from scanning */ { strncpy(tmp,argv[i],sizeof(tmp)); wcd_fixpath(tmp,sizeof(tmp)); if (argv[i-1][2] == 'f') read_treefile(tmp,exclude,0); /* read exclude paths from file */ else addToNamesetArray(textNew(tmp),exclude); /* get path from argument */ /* printNameset("exclude ==>",exclude,stderr,true); */ } else if ((strcmp(argv[i-1],"-n") == 0 ) || (strcmp(argv[i-1],"+n") == 0 )) { if (argv[i-1][0] == '-') use_default_treedata = 0; strncpy(tmp,argv[i],sizeof(tmp)); wcd_fixpath(tmp,sizeof(tmp)); #ifdef _WCD_DOSFS /* is there a drive to go to ? */ changeDisk(tmp,&changedrive,drive,&use_HOME); #endif if (wcd_isdir(tmp,1) == 0) /* is it a dir */ { strcat(tmp,RELTREEFILE); wcd_fixpath(tmp,sizeof(tmp)); addToNamesetArray(textNew(tmp),relative_files); } else /* it is a file */ { addToNamesetArray(textNew(tmp),relative_files); } } else if ((strcmp(argv[i-1],"-u") == 0 ) || (strcmp(argv[i-1],"+u") == 0 )) { if (argv[i-1][0] == '-') use_default_treedata = 0; if (strcmp(argv[i],"root") == 0) strcpy(tmp,"/"); else strcpy(tmp,homedir); if ((strlen(tmp)+strlen(argv[i])+strlen(TREEFILE)+1) > DD_MAXPATH ) { print_error(_("Value of environment variable %s is too long.\n"),"WCDUSERSHOME"); return(1); } strcat(tmp,"/"); strcat(tmp,argv[i]); strcat(tmp,TREEFILE); if ((infile = wcd_fopen(tmp,"r",1)) != NULL) { wcd_fclose(infile, tmp, "r", "main: "); addToNamesetArray(textNew(tmp),extra_files); } else { if (strcmp(argv[i],"root") == 0) strcpy(tmp2,"/"); else strcpy(tmp2,homedir); if ((strlen(tmp2)+strlen(argv[i])+strlen(TREEFILE)+1+5) > DD_MAXPATH ) { print_error(_("Value of environment variable %s is too long.\n"),"WCDUSERSHOME"); return(1); } strcat(tmp2,"/"); strcat(tmp2,argv[i]); strcat(tmp2,"/.wcd"); strcat(tmp2,TREEFILE); if ((infile = wcd_fopen(tmp2,"r",1)) != NULL) { wcd_fclose(infile, tmp2, "r", "main: "); addToNamesetArray(textNew(tmp2),extra_files); } else print_error(_("Unable to read file %s or %s\n"), tmp, tmp2); } } else #ifdef _WCD_DOSFS if (strcmp(argv[i-1],"-d") == 0 ) { if (stack_is_read == 0) { stackfile[0] = argv[i][0]; #ifdef WCD_DOSBASH go_file[0] = argv[i][0]; #endif } } else #endif if (strcmp(argv[i-1],"-S") == 0 ) { #ifdef WCD_UTF16 wcstoutf8(scandir,wargv[i],sizeof(scandir)); #else strncpy(scandir,argv[i],sizeof(scandir)); #endif #if (defined(_WIN32) || defined(__CYGWIN__)) if (wcd_isServerPath(scandir)) { scanServer(scandir,treefile,0,&use_HOME,exclude); } else #endif scanDisk(scandir,treefile,0,(size_t)0,&use_HOME,exclude); } else if (strcmp(argv[i-1],"+S") == 0 ) { #ifdef WCD_UTF16 wcstoutf8(scandir,wargv[i],sizeof(scandir)); #else strncpy(scandir,argv[i],sizeof(scandir)); #endif strncpy(treefile,scandir,sizeof(treefile) - strlen(RELTREEFILE)); strcat(treefile,RELTREEFILE); scanDisk(scandir,treefile,1,(size_t)0,&use_HOME,exclude); } else if (strcmp(argv[i-1],"-z") == 0 ) { if ((stack_is_read == 0) && (atoi(argv[i]) >= 0)) DirStack->maxsize = atoi(argv[i]); } else if (strcmp(argv[i-1],"-A") == 0 ) { #ifdef WCD_UTF16 wcstoutf8(scandir,wargv[i],sizeof(scandir)); #else strncpy(scandir,argv[i],sizeof(scandir)); #endif #if (defined(_WIN32) || defined(__CYGWIN__)) if (wcd_isServerPath(scandir)) { scanServer(scandir,treefile,1,&use_HOME,exclude); } else #endif scanDisk(scandir,treefile,0,(size_t)1,&use_HOME,exclude); } else if (strcmp(argv[i-1],"-E") == 0 ) { #ifdef WCD_UTF16 wcstoutf8(scandir,wargv[i],sizeof(scandir)); #else strncpy(scandir,argv[i],sizeof(scandir)); #endif #if (defined(_WIN32) || defined(__CYGWIN__)) if (wcd_isServerPath(scandir)) { scanServer(scandir,extratreefile,1,&use_HOME,exclude); } else #endif scanDisk(scandir,extratreefile,0,(size_t)1,&use_HOME,exclude); } else if (strcmp(argv[i-1],"-m") == 0 ) { #ifdef WCD_UTF16 wcstoutf8(tmp,wargv[i],sizeof(tmp)); #else strncpy(tmp,argv[i],sizeof(tmp)); #endif makeDir(tmp,treefile,&use_HOME) ; } else if (strcmp(argv[i-1],"-M") == 0 ) { strncpy(tmp,argv[i],sizeof(tmp)); makeDir(tmp,extratreefile,&use_HOME) ; } else if (strcmp(argv[i-1],"-r") == 0 ) /* remove one dir, or link to dir */ { #ifdef WCD_UTF16 wcstoutf8(tmp,wargv[i],sizeof(tmp)); #else strncpy(tmp,argv[i],sizeof(tmp)); #endif deleteDir(tmp,treefile,0,&use_HOME, assumeYes) ; } else if (strcmp(argv[i-1],"-rmtree") == 0 ) /* remove dir recursive */ { strncpy(tmp,argv[i],sizeof(tmp)); deleteDir(tmp,treefile,1,&use_HOME, assumeYes) ; } #ifdef WCD_SHELL else if (strcmp(argv[i-1],"-G") == 0) { strncpy(go_file,argv[i],sizeof(go_file)); wcd_fixpath(go_file,sizeof(go_file)) ; # ifdef UNIX strcat(go_file,GO_FILE2); # else strcat(go_file,GO_FILE); # endif } #endif else { #ifdef WCD_UTF16 wcstoutf8(dir,wargv[i],sizeof(dir)); #else strncpy(dir,argv[i],sizeof(dir)); #endif wcd_fixpath(dir,sizeof(dir)); } } } /* for */ /*--- end parsing commandline -----------*/ if (verbose > 0) { for (ii=0; iisize; ++ii) print_msg(_("WCDSCAN directory {%s}\n"),elementAtNamesetArray(ii, scan_dirs)); for (ii=0; iisize; ++ii) print_msg(_("banning {%s}\n"),elementAtNamesetArray(ii, banned_dirs)); for (ii=0; iisize; ++ii) print_msg(_("excluding {%s}\n"),elementAtNamesetArray(ii, exclude)); for (ii=0; iisize; ++ii) print_msg(_("filtering {%s}\n"),elementAtNamesetArray(ii, filter)); } if (stack_is_read == 0) { stack_read(DirStack,stackfile); stack_is_read = 1; } if ((strcmp(dir,"") == 0 )&& !(graphics & WCD_GRAPH_NORMAL)) /* no directory given, no graphics, so we go HOME */ addToNamesetArray(textNew(rootscandir),perfect_list); /*--- stack hit ? ------------------------*/ if (stack_hit==1) { strcpy(best_match,stackptr); #ifdef UNIX /* strip the /tmp_mnt string */ if (strip_mount_string) stripTmpMnt(best_match); #endif if ((!quieter)&&(!justGo)) wcd_printf("-> %s\n",best_match); #ifdef _WCD_DOSFS /* is there a drive to go to ? */ changeDisk(best_match,&changedrive,drive,&use_HOME); #endif #ifdef WCD_SHELL quoteString(best_match); if (justGo) wcd_printf("%s\n",best_match); writeGoFile(go_file,&changedrive,drive,best_match,use_GoScript,verbose); #else wcd_chdir(best_match,0); /* change to directory */ #endif stack_write(DirStack,stackfile); return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } /*--- end stack hit ? ------------------------*/ /*--- Direct CD mode -------------------------*/ if ((cd==1)&&(strcmp(dir,"")!=0)) /* Try open dir direct. */ { if(wcd_isdir(dir,1) == 0) /* GJM */ { if ( use_stdout & WCD_STDOUT_DUMP ) /* just dump the match and exit */ { wcd_printf("%s\n", dir); #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } strcpy(best_match,dir); if ((!quieter)&&(!justGo)) wcd_printf("-> %s\n",best_match); #ifdef _WCD_DOSFS /* is there a drive to go to ? */ changeDisk(best_match,&changedrive,drive,&use_HOME); #endif wcd_chdir(dir,0); if(wcd_getcwd(tmp, sizeof(tmp)) != NULL) { len = strlen(tmp); if (len==0) tmp[len] = '\0'; wcd_fixpath(tmp,sizeof(tmp)); if ( (ptr=strstr(tmp,"/")) != NULL) { strcpy(best_match,tmp); #ifdef UNIX /* strip the /tmp_mnt string */ if (strip_mount_string) stripTmpMnt(best_match); #endif stack_add(DirStack,tmp); /* stack include /tmp_mnt string */ stack_write(DirStack,stackfile); } } #ifdef WCD_SHELL quoteString(best_match); if (justGo) wcd_printf("%s\n",best_match); writeGoFile(go_file,&changedrive,drive,best_match,use_GoScript,verbose); #else wcd_chdir(best_match,0); /* change to directory */ #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } /* ? (wcd_isdir(dir) == 0) */ } /* ? direct cd mode ((cd==1)&&(strcmp(dir,"")!=0)) */ /*--- end Direct CD mode -------------------------*/ #ifdef _WCD_DOSFS /* is there a drive to go to ? */ changeDisk(dir,&changedrive,drive,&use_HOME); #endif /* does default treedata-file exist? */ if (use_default_treedata) { if ((infile = wcd_fopen(treefile,"r",1)) == NULL) { /* create treefile */ if (getSizeOfNamesetArray(scan_dirs) == 0) scanDisk(rootscandir,treefile,0,(size_t)0,&use_HOME,exclude); else { j = 0; while (jsize;ii++) { scanfile(dir, extra_files->array[ii],ignore_case,perfect_list,wild_list,banned_dirs,filter,0,wildOnly,ignore_diacritics); /* scan the extra treedata file */ } /* search relative files */ for (ii=0;iisize;ii++) { scanfile(dir, relative_files->array[ii],ignore_case,perfect_list,wild_list,banned_dirs,filter,1,wildOnly,ignore_diacritics); /* scan the nfs treedata file */ } /* search alias file */ scanaliasfile(dir, aliasfile, perfect_list, wild_list,wildOnly); freeNameset(filter, 1); /* free filter list */ } #ifdef WCD_USECURSES else { /* graphics? */ if (graphics & WCD_GRAPH_NORMAL) { nameset dirs; dirs = namesetNew(); rootNode = createRootNode(); if(dirs != NULL) { if (use_default_treedata) read_treefile(treefile,dirs,0); read_treefile(extratreefile,dirs,1); for (ii=0;iisize;ii++) { read_treefile(extra_files->array[ii],dirs,0); } for (ii=0;iisize;ii++) { read_treefile(relative_files->array[ii],dirs,0); } buildTreeFromNameset(dirs, rootNode); setXYTree(rootNode, &graphics); } freeNameset(dirs, 1); if (graphics & WCD_GRAPH_DUMP) { dumpTree(rootNode, &graphics); ptr = NULL; } else ptr = selectANode(rootNode,&use_HOME,ignore_case,graphics,ignore_diacritics); if (ptr != NULL) addToNamesetArray(textNew(ptr),perfect_list); else { #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } } } #endif /*********** search is done ***************/ if ((perfect_list->size==0)&&(wild_list->size == 0)&&(cd==0)) /* No match at all & no direct CD mode */ { if(wcd_isdir(dir,1) == 0) /* GJM */ { /* typed directory exists */ addToNamesetArray(textNew(dir),perfect_list); } } /*******************************/ if ((perfect_list->size==0)&&(wild_list->size == 0)) /* No match at all */ { if ( !(use_stdout & WCD_STDOUT_DUMP) ) /* don't print message if option -od is used */ print_msg(""); wcd_printf(_("No directory found matching %s\n"),dir); print_msg(_("Perhaps you need to rescan the disk or path is banned.\n")); #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } else if (perfect_list->size > 1) /* choose from perfect list */ { #ifdef WCD_USECURSES if(graphics & WCD_GRAPH_NORMAL) { rootNode = createRootNode(); buildTreeFromNameset(perfect_list, rootNode); setXYTree(rootNode, &graphics); if (graphics & WCD_GRAPH_DUMP) { dumpTree(rootNode, &graphics); ptr = NULL; } else ptr = selectANode(rootNode,&use_HOME,ignore_case,graphics,ignore_diacritics); if (ptr != NULL) strcpy(best_match,ptr); else exit_wcd = 1; } else #endif { if (justGo) i = (int)pickDir(perfect_list,&use_HOME); else i = display_list(perfect_list,1,use_numbers,use_stdout); if ( (i>0) && (i <= (int)perfect_list->size)) { i--; strcpy(best_match,perfect_list->array[i]); } else exit_wcd = 1; } if (exit_wcd) { #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } } else if (perfect_list->size==1) /* one perfect match */ { strcpy(best_match,perfect_list->array[0]); } else if ((perfect_list->size==0)&&(wild_list->size > 1)) /* more than one wild match, zero perfect matches */ { /* choose from wild list */ #ifdef WCD_USECURSES if(graphics & WCD_GRAPH_NORMAL) { rootNode = createRootNode(); buildTreeFromNameset(wild_list, rootNode); setXYTree(rootNode, &graphics); if (graphics & WCD_GRAPH_DUMP) { dumpTree(rootNode, &graphics); ptr = NULL; } else ptr = selectANode(rootNode,&use_HOME,ignore_case,graphics,ignore_diacritics); if (ptr != NULL) strcpy(best_match,ptr); else exit_wcd = 1; } else #endif { if (justGo) i = (int)pickDir(wild_list,&use_HOME); else i = display_list(wild_list,0,use_numbers,use_stdout); if ( (i>0) && (i <= (int)wild_list->size)) { i--; strcpy(best_match,wild_list->array[i]); } else exit_wcd = 1; } if (exit_wcd) { #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } } else /* (perfect_list->size==0) && (wild_list->size==1) */ /* one wild match, zero perfect matches */ { strcpy(best_match,wild_list->array[0]); } /*******************************/ /* Yes, a match (best_match) */ if ( use_stdout & WCD_STDOUT_DUMP ) /* just dump the match and exit */ { wcd_printf("%s\n", best_match); #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } strcpy(tmp,best_match); /* remember path (with /tmp_mnt) */ #ifdef UNIX /* strip the /tmp_mnt string */ if (strip_mount_string) stripTmpMnt(best_match); #else changeDisk(tmp,&changedrive,drive,&use_HOME); #endif if ( wcd_chdir(best_match,0) == 0) /* change to dir to get full path */ { if(wcd_getcwd(tmp, sizeof(tmp)) != NULL) { if ((!quieter)&&(!justGo)) wcd_printf("-> %s\n",best_match); /* print match without /tmp_mnt string */ len = strlen(tmp); if (len==0) tmp[len] = '\0'; wcd_fixpath(tmp,sizeof(tmp)); if ( (ptr=strstr(tmp,"/")) != NULL) { strcpy(best_match,tmp); #ifdef UNIX /* strip the /tmp_mnt string */ if (strip_mount_string) stripTmpMnt(best_match); #endif stack_add(DirStack,tmp); /* stack includes /tmp_mnt string */ stack_write(DirStack,stackfile); } } } else { print_msg(""); wcd_printf(_("Cannot change to %s\n"),best_match); #if defined(UNIX) || defined(_WIN32) || defined(__OS2__) /* empty wcd.go file */ empty_wcdgo(go_file,use_GoScript,verbose); #endif #ifdef WCD_DOSBASH /* empty wcd.go file */ empty_wcdgo(go_file,changedrive,drive,use_GoScript,verbose); #endif if (keep_paths == 0) cleanTreeFile(treefile,tmp); return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } #ifdef WCD_SHELL quoteString(best_match); if (justGo) wcd_printf("%s\n",best_match); writeGoFile(go_file,&changedrive,drive,best_match,use_GoScript,verbose); #else wcd_chdir(best_match,0); /* change to directory */ #endif return wcd_exit(perfect_list,wild_list,extra_files,banned_dirs,relative_files,DirStack,exclude); } wcd-5.2.5/src/c3po/0000775000175000017500000000000012345660655014165 5ustar waterlanwaterlanwcd-5.2.5/src/c3po/Command.h0000664000175000017500000000266111273517352015713 0ustar waterlanwaterlan#ifndef COMMAND_INCLUDED #define COMMAND_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern text getBasename(text input_file); extern text getCore(text input_file); extern c3po_bool inArgList(text name, int argc, char** argv); extern text getArg(text name, int argc, char** argv); extern nameset getArgs(text name, int argc, char** argv); extern c3po_bool isInt(text string); extern c3po_bool isFloat(text string); extern void dumpCommandline(text file, int argc, char** argv); #endif wcd-5.2.5/src/c3po/Usage.c0000664000175000017500000000231211273517352015365 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "std_macr.h" #include "structur.h" #include "Text.h" expfun void Usage(int argc, char** argv) { fprintf(stderr, "Usage : %s options\n", argv[0]); fprintf(stderr, " %s [options]\n", argv[0]); fprintf(stderr, "Options,\n"); fprintf(stderr, "%s-d (debug)\n", Tab(1)); fprintf(stderr, "%s-showEmpty (show empty fields)\n", Tab(1)); } wcd-5.2.5/src/c3po/Error.h0000664000175000017500000000163111273517352015422 0ustar waterlanwaterlan#ifndef ERROR_INCLUDED #define ERROR_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern void c3po_beep(int number_times); extern void malloc_error(text function_name); #endif wcd-5.2.5/src/c3po/File.h0000664000175000017500000000234511273517352015213 0ustar waterlanwaterlan#ifndef FILE_INCLUDED #define FILE_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern FILE * openR(text filename); extern FILE * openRwarn(text filename, c3po_bool Warn); extern c3po_bool existsFile(text filename); extern FILE * openW(text filename); extern FILE * openWBackup(text filename, c3po_bool Backup); extern FILE * Append(text filename); extern void Close(FILE* fp); extern unsigned long getFileSize(text filename); #endif wcd-5.2.5/src/c3po/dirnode.c0000664000175000017500000002731111637722771015762 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Text.h" #include "dirnode.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ expfun dirnode dirnodeNew(dirnode parent, dirnode up, dirnode down) { dirnode d = (dirnode) malloc (sizeof(dirnode_struct)); if (d != NULL) { d->parent = parent; d->up = up; d->down = down; d->name = NULL; d->x = 0; d->y = 0; d->fold = false; d->subdirs = NULL; d->size = 0; } else malloc_error("dirnodeNew()"); return d; } expfun dirnode copyDirnode(dirnode src, c3po_bool Deep) { dirnode d; if (src == NULL) return NULL; else { d = (dirnode) malloc (sizeof(dirnode_struct)); if (d != NULL) { if (Deep == true) { d->name = textNew(src->name); d->x = src->x; d->y = src->y; d->parent = src->parent; d->up = src->up; d->down = src->down; d->fold = src->fold; } else { d->name = src->name; d->x = src->x; d->y = src->y; d->parent = src->parent; d->up = src->up; d->down = src->down; d->fold = src->fold; } d->subdirs = NULL; d->size = 0; if (Deep == true) deepExtendDirnode(src, d); else extendDirnode(src, d); } else malloc_error("copyDirnode()"); return d; } } expfun text dirnodeGetName(dirnode d) { if (d != NULL) return d->name; else return NULL; } expfun int dirnodeGetX(dirnode d) { if (d != NULL) return d->x; else return 0; } expfun int dirnodeGetY(dirnode d) { if (d != NULL) return d->y; else return 0; } expfun dirnode dirnodeGetParent(dirnode d) { if (d != NULL) return d->parent; else return NULL; } expfun dirnode* dirnodeGetSubdirs(dirnode d) { if (d != NULL) return d->subdirs; else return NULL; } expfun dirnode dirnodeGetUp(dirnode d) { if (d != NULL) return d->up; else return NULL; } expfun dirnode dirnodeGetDown(dirnode d) { if (d != NULL) return d->down; else return NULL; } expfun c3po_bool dirnodeFold(dirnode d) { if (d != NULL) return d->fold; else return false; } expfun dirnode dirnodeSetName(text name, dirnode d) { if (d != NULL) d->name = name; return d; } expfun dirnode dirnodeSetX(int x, dirnode d) { if (d != NULL) d->x = x; return d; } expfun dirnode dirnodeSetY(int y, dirnode d) { if (d != NULL) d->y = y; return d; } expfun dirnode dirnodeSetParent(dirnode parent, dirnode d) { if (d != NULL) d->parent = parent; return d; } expfun dirnode dirnodeSetUp(dirnode up, dirnode d) { if (d != NULL) d->up = up; return d; } expfun dirnode dirnodeSetDown(dirnode down, dirnode d) { if (d != NULL) d->down = down; return d; } expfun dirnode dirnodeSetFold(c3po_bool fold, dirnode d) { if (d != NULL) d->fold = fold; return d; } expfun c3po_bool dirnodeHasName(dirnode d) { if (dirnodeGetName(d) != NULL) return true; else return false; } expfun c3po_bool dirnodeHasParent(dirnode d) { if (dirnodeGetParent(d) != NULL) return true; else return false; } expfun c3po_bool dirnodeHasSubdirs(dirnode d) { if (isEmptyDirnode(d) == false) return true; else return false; } expfun c3po_bool dirnodeHasUp(dirnode d) { if (dirnodeGetUp(d) != NULL) return true; else return false; } expfun c3po_bool dirnodeHasDown(dirnode d) { if (dirnodeGetDown(d) != NULL) return true; else return false; } expfun dirnode endOfRecursionOfDirnodeParent(dirnode d) { if (dirnodeHasParent(d) == true) return endOfRecursionOfDirnodeParent(dirnodeGetParent(d)); else return d; } expfun dirnode endOfRecursionOfDirnodeUp(dirnode d) { if (dirnodeHasUp(d) == true) return endOfRecursionOfDirnodeUp(dirnodeGetUp(d)); else return d; } expfun dirnode endOfRecursionOfDirnodeDown(dirnode d) { if (dirnodeHasDown(d) == true) return endOfRecursionOfDirnodeDown(dirnodeGetDown(d)); else return d; } expfun size_t getSizeOfDirnode(dirnode d) { if (d != NULL) return d->size; else return 0; } expfun void setSizeOfDirnode(dirnode d, size_t size) { size_t index; if (d != NULL) { if (size == 0) { if (isEmptyDirnode(d) eq false) { free((void *) d->subdirs); d->subdirs = NULL; d->size = 0; } } else if (size ne d->size) { if (isEmptyDirnode(d) eq true) d->subdirs = (dirnode*) malloc(sizeof(dirnode) * size); else d->subdirs = (dirnode*) realloc((void *) d->subdirs, sizeof(dirnode) * size); if (d->subdirs ne NULL) { index = d->size; while(index < size) { d->subdirs[index] = NULL; index = index + 1; } d->size = size; } else { d->size = 0; malloc_error("setSizeOfDirnode(d, size)"); } } } } expfun c3po_bool isEmptyDirnode(dirnode d) { if (getSizeOfDirnode(d) > 0) return false; else return true; } expfun void addToDirnode(dirnode d, dirnode set) { if (set != NULL) { setSizeOfDirnode(set, set->size + 1); if (set->subdirs != NULL) set->subdirs[set->size - 1] = d; else malloc_error("addToDirnode()"); } } expfun void putElementAtDirnode(dirnode d, size_t position, dirnode set) { if (set != NULL) { if (position >= set->size) setSizeOfDirnode(set, position + 1); if (set->subdirs != NULL) set->subdirs[position] = d; else malloc_error("putElementAtDirnode(d, position, set)"); } } expfun void insertElementAtDirnode(dirnode d, size_t position, dirnode set) { size_t index; if (set != NULL) { index = set->size; while(index > position) { putElementAtDirnode(set->subdirs[index-1], index, set); index = index - 1; } putElementAtDirnode(d, position, set); } } expfun void removeElementAtDirnode(size_t position, dirnode set, c3po_bool FreeAtPos, c3po_bool Deep) { size_t index; if (set != NULL) { if (position < set->size) { if (FreeAtPos eq true) freeDirnode(set->subdirs[position], Deep); index = position + 1; while(index < set->size) { putElementAtDirnode(set->subdirs[index], index - 1, set); index = index + 1; } setSizeOfDirnode(set, set->size - 1); } } } expfun dirnode elementAtDirnode(size_t position, dirnode set) { if (set != NULL) { if (position < set->size) return set->subdirs[position]; } return NULL; } expfun void extendDirnode(dirnode src, dirnode dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToDirnode(elementAtDirnode(index, src), dest); index = index + 1; } } } expfun void deepExtendDirnode(dirnode src, dirnode dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToDirnode(copyDirnode(elementAtDirnode(index, src), true), dest); index = index + 1; } } } expfun void printDirnode(text Offset, dirnode d, FILE* fp, c3po_bool showEmpty) { size_t index; text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); if (d == NULL) { if (showEmpty == true) { fprintf(fp, "%s{\n", Offset); fprintf(fp, "%sNULL\n", new_Offset); fprintf(fp, "%s}\n", Offset); } } else { fprintf(fp, "%s{\n", Offset); if ((dirnodeHasName(d) == true) || (showEmpty == true)) { if (d->name ne NULL) fprintf(fp, "%stext name : %s\n", new_Offset, d->name); else if (showEmpty == true) fprintf(fp, "%stext name : NULL\n", new_Offset); } fprintf(fp, "%sint x : %d\n", new_Offset, d->x); fprintf(fp, "%sint y : %d\n", new_Offset, d->y); if ((dirnodeHasParent(d) == true) || (showEmpty == true)) fprintf(fp, "%sdirnode parent : %lu (reference)\n", new_Offset, (unsigned long) d->parent); if ((dirnodeHasUp(d) == true) || (showEmpty == true)) fprintf(fp, "%sdirnode up : %lu (reference)\n", new_Offset, (unsigned long) d->up); if ((dirnodeHasDown(d) == true) || (showEmpty == true)) fprintf(fp, "%sdirnode down : %lu (reference)\n", new_Offset, (unsigned long) d->down); fprintf(fp, "%sc3po_bool fold : %d\n", new_Offset, d->fold); if (d->subdirs == NULL) { if (showEmpty == true) fprintf(fp, "%sdirnode subdirs : NULL\n", new_Offset); } else { if ((isEmptyDirnode(d) == false) || (showEmpty == true)) { fprintf(fp, "%sint size : %lu\n", new_Offset, (unsigned long)d->size); index = 0; while(index < d->size) { fprintf(fp, "%sdirnode subdirs[%lu],\n", new_Offset, (unsigned long)index); printDirnode(new_Offset, d->subdirs[index], fp, showEmpty); fprintf(fp, "%s\\end dirnode[%lu]\n", new_Offset, (unsigned long)index); index = index + 1; } } } fprintf(fp, "%s}\n", Offset); } } expfun void freeDirnode(dirnode d, c3po_bool Deep) { size_t index; if (d ne NULL) { if (Deep eq true) { if (d->name ne NULL) { free((void *) d->name); d->name = NULL; } index = 0; while(index < d->size) { freeDirnode(d->subdirs[index], Deep); index = index + 1; } } if (d->subdirs ne NULL) { free((void *) d->subdirs); d->subdirs = NULL; d->size = 0; } free((void *) d); } } wcd-5.2.5/src/c3po/README0000664000175000017500000000045211074472234015036 0ustar waterlanwaterlanAll source files in this directory have been generated with C3PO 0.19.5 from grammar input file 'wcd.G'. Only datastructures and APIs for it are generated. No parser generated. Shell script 'Generate' is used to run C3PO. More information about C3PO is at http://sourceforge.net/projects/c3po/ wcd-5.2.5/src/c3po/wcd.G0000664000175000017500000000224212032140545015032 0ustar waterlanwaterlaninclude { prepend '/*\ Copyright (C) 1997-2000 Ondrej Popp\ This code is generated with Ondrej Popp\'s C3PO.\ \ This program is free software; you can redistribute it and/or\ modify it under the terms of the GNU General Public License\ as published by the Free Software Foundation; either version 2\ of the License, or (at your option) any later version.\ \ This program is distributed in the hope that it will be useful,\ but WITHOUT ANY WARRANTY; without even the implied warranty of\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\ GNU General Public License for more details.\ \ You should have received a copy of the GNU General Public License\ along with this program; if not, write to the Free Software\ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\ \ */' } maxsize (int)->lastadded (int)->current ((text)->dir)+ >; /* recursive directory tree structure */ name (int)->x (int)->y dirnode->parent & (dirnode->subdirs)+ dirnode->up & dirnode->down & (bool)->fold >; wcd-5.2.5/src/c3po/main.c0000664000175000017500000000215111273517352015246 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Command.h" #include "Usage.h" #include "Driver.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ int main(int argc, char** argv) { /*************** CODE FROM APPEND SECTION *************/ /*************** END APPEND SECTION *************/ } exit(0); } wcd-5.2.5/src/c3po/Textw.c0000775000175000017500000001272011636446624015451 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "namesetw.h" #include "intset.h" expfun textw textwNewSize(size_t size) { textw t = NULL; if (size > 0) { t = (textw) malloc (sizeof(wchar_t) * size); if (t eq NULL) malloc_error("textwNewSize(size)"); } return t; } expfun textw textwNew(textw string) { textw t = NULL; if (string ne NULL) { t = textwNewSize(wcslen(string) + 1); if (t ne NULL) wcscpy(t, string); else malloc_error("textwNew(textw)"); } return t; } expfun c3po_bool eqTextw(textw a, textw b) { if ((a eq NULL) or (b eq NULL)) return false; else if (wcscmp(a, b) eq 0) return true; else return false; } expfun size_t inNamesetw(textw name, namesetw set) { size_t index; if (isEmptyNamesetwArray(set) eq false) { index = 0; while(index < getSizeOfNamesetwArray(set)) { if (eqTextw(name, elementAtNamesetwArray(index, set)) eq true) return index; index = index + 1; } } return (size_t)-1; } expfun intset matchNamesetw(textw name, namesetw set) { size_t index; static intset i_set = NULL; if (i_set eq NULL) i_set = intsetNew(); else setSizeOfIntset(i_set, (size_t)0); if (isEmptyNamesetwArray(set) eq false) { index = 0; while(index < getSizeOfNamesetwArray(set)) { if (eqTextw(name, elementAtNamesetwArray(index, set)) eq true) addToIntset(index, i_set); index = index + 1; } } return i_set; } expfun size_t matchCountNamesetw(textw name, namesetw set) { size_t count = 0; size_t index; if (isEmptyNamesetwArray(set) eq false) { index = 0; while(index < getSizeOfNamesetwArray(set)) { if (eqTextw(name, elementAtNamesetwArray(index, set)) eq true) count = count + 1; index = index + 1; } } return count; } expfun textw concatw(textw a, textw b) { textw res = (textw) malloc(sizeof(wchar_t) * (wcslen(a) + wcslen(b) + 1)); if (res ne NULL) { wcscpy(res, a); wcscpy(res + wcslen(res), b); } else malloc_error("concatw()"); return res; } expfun textw concatw3(textw a, textw b, textw c) { textw res = (textw) malloc(sizeof(wchar_t) * (wcslen(a) + wcslen(b) + wcslen(c) + 1)); if (res ne NULL) { wcscpy(res, a); wcscpy(res + wcslen(res), b); wcscpy(res + wcslen(res), c); } else malloc_error("concatw3()"); return res; } expfun textw concatw4(textw a, textw b, textw c, textw d) { textw res = (textw) malloc(sizeof(wchar_t) * (wcslen(a) + wcslen(b) + wcslen(c) + wcslen(d) + 1)); if (res ne NULL) { wcscpy(res, a); wcscpy(res + wcslen(res), b); wcscpy(res + wcslen(res), c); wcscpy(res + wcslen(res), d); } else malloc_error("concatw4()"); return res; } expfun textw repeatOnBufferw(textw pattern, size_t amount, size_t bufferNr) { size_t count = 0; static namesetw buffers = NULL; textw buffer; if (buffers eq NULL) buffers = namesetwNew(); buffer = elementAtNamesetwArray(bufferNr, buffers); if (buffer eq NULL) buffer = textwNewSize(wcslen(pattern) * amount + 1); else buffer = (textw) realloc((void *) buffer, sizeof(wchar_t) * (wcslen(pattern) * amount + 1)); putElementAtNamesetwArray(buffer, bufferNr, buffers); buffer[0] = '\0'; while(count < amount) { wcscpy(buffer + wcslen(buffer), pattern); count = count + 1; } return buffer; } expfun textw repeatw(textw pattern, size_t amount) { return repeatOnBufferw(pattern, amount, (size_t)0); } expfun textw spacesOnBufferw(size_t amount, size_t bufferNr) { return repeatOnBufferw(L" ", amount, bufferNr); } expfun textw spacesw(size_t amount) { return spacesOnBufferw(amount, (size_t)0); } expfun textw TabOnBufferw(size_t amount, size_t bufferNr) { size_t tabSize = 3; return spacesOnBufferw(tabSize*amount, bufferNr); } expfun textw Tabw(size_t amount) { return TabOnBufferw(amount, (size_t)0); } expfun textw intToStringw(int i) { wchar_t buffer[100]; swprintf(buffer, L"%d", i); return textwNew(buffer); } expfun textw doubleToStringw(double d) { wchar_t buffer[100]; swprintf(buffer, L"%g", d); return textwNew(buffer); } wcd-5.2.5/src/c3po/dirnode.h0000664000175000017500000000724011635724443015762 0ustar waterlanwaterlan#ifndef DIRNODE_INCLUDED #define DIRNODE_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern dirnode dirnodeNew(dirnode parent, dirnode up, dirnode down); extern dirnode copyDirnode(dirnode src, c3po_bool Deep); extern text dirnodeGetName(dirnode d); extern int dirnodeGetX(dirnode d); extern int dirnodeGetY(dirnode d); extern dirnode dirnodeGetParent(dirnode d); extern dirnode* dirnodeGetSubdirs(dirnode d); extern dirnode dirnodeGetUp(dirnode d); extern dirnode dirnodeGetDown(dirnode d); extern c3po_bool dirnodeFold(dirnode d); extern dirnode dirnodeSetName(text name, dirnode d); extern dirnode dirnodeSetX(int x, dirnode d); extern dirnode dirnodeSetY(int y, dirnode d); extern dirnode dirnodeSetParent(dirnode parent, dirnode d); extern dirnode dirnodeSetUp(dirnode up, dirnode d); extern dirnode dirnodeSetDown(dirnode down, dirnode d); extern dirnode dirnodeSetFold(c3po_bool fold, dirnode d); extern c3po_bool dirnodeHasName(dirnode d); extern c3po_bool dirnodeHasParent(dirnode d); extern c3po_bool dirnodeHasSubdirs(dirnode d); extern c3po_bool dirnodeHasUp(dirnode d); extern c3po_bool dirnodeHasDown(dirnode d); extern dirnode endOfRecursionOfDirnodeParent(dirnode d); extern dirnode endOfRecursionOfDirnodeUp(dirnode d); extern dirnode endOfRecursionOfDirnodeDown(dirnode d); extern size_t getSizeOfDirnode(dirnode d); extern void setSizeOfDirnode(dirnode d, size_t size); extern c3po_bool isEmptyDirnode(dirnode d); extern void addToDirnode(dirnode d, dirnode set); extern void putElementAtDirnode(dirnode d, size_t position, dirnode set); extern void insertElementAtDirnode(dirnode d, size_t position, dirnode set); extern void removeElementAtDirnode(size_t position, dirnode set, c3po_bool FreeAtPos, c3po_bool Deep); extern dirnode elementAtDirnode(size_t position, dirnode set); extern void extendDirnode(dirnode src, dirnode dest); extern void deepExtendDirnode(dirnode src, dirnode dest); extern void printDirnode(text Offset, dirnode d, FILE* fp, c3po_bool showEmpty); extern void freeDirnode(dirnode d, c3po_bool Deep); #endif wcd-5.2.5/src/c3po/Usage.h0000664000175000017500000000157611273517352015405 0ustar waterlanwaterlan#ifndef USAGE_INCLUDED #define USAGE_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern void Usage(int argc, char** argv); #endif wcd-5.2.5/src/c3po/intset.c0000664000175000017500000001374311637722771015650 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "intset.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ expfun intset intsetNew(void) { intset i = (intset) malloc (sizeof(intset_struct)); if (i != NULL) { i->array = NULL; i->size = 0; } else malloc_error("intsetNew()"); return i; } expfun intset copyIntset(intset src) { intset i; if (src == NULL) return NULL; else { i = (intset) malloc (sizeof(intset_struct)); if (i != NULL) { i->array = NULL; i->size = 0; extendIntset(src, i); } else malloc_error("copyIntset()"); return i; } } expfun size_t* intsetGetArray(intset i) { if (i != NULL) return i->array; else return NULL; } expfun c3po_bool intsetHasArray(intset i) { if (isEmptyIntset(i) == false) return true; else return false; } expfun size_t getSizeOfIntset(intset i) { if (i != NULL) return i->size; else return 0; } expfun void setSizeOfIntset(intset i, size_t size) { size_t index; if (i != NULL) { if (size == 0) { if (isEmptyIntset(i) eq false) { free((void *) i->array); i->array = NULL; i->size = 0; } } else if (size ne i->size) { if (isEmptyIntset(i) eq true) i->array = (size_t*) malloc(sizeof(size_t) * size); else i->array = (size_t*) realloc((void *) i->array, sizeof(size_t) * size); if (i->array ne NULL) { index = i->size; while(index < size) { i->array[index] = 0; index = index + 1; } i->size = size; } else { i->size = 0; malloc_error("setSizeOfIntset(i, size)"); } } } } expfun c3po_bool isEmptyIntset(intset i) { if (getSizeOfIntset(i) > 0) return false; else return true; } expfun void addToIntset(size_t i, intset set) { if (set != NULL) { setSizeOfIntset(set, set->size + 1); if (set->array != NULL) set->array[set->size - 1] = i; else malloc_error("addToIntset()"); } } expfun void putElementAtIntset(size_t i, size_t position, intset set) { if (set != NULL) { if (position >= set->size) setSizeOfIntset(set, position + 1); if (set->array != NULL) set->array[position] = i; else malloc_error("putElementAtIntset(i, position, set)"); } } expfun void insertElementAtIntset(size_t i, size_t position, intset set) { size_t index; if (set != NULL) { index = set->size; while(index > position) { putElementAtIntset(set->array[index-1], index, set); index = index - 1; } putElementAtIntset(i, position, set); } } expfun void removeElementAtIntset(size_t position, intset set) { size_t index; if (set != NULL) { if (position < set->size) { index = position + 1; while(index < set->size) { putElementAtIntset(set->array[index], index - 1, set); index = index + 1; } setSizeOfIntset(set, set->size - 1); } } } expfun size_t elementAtIntset(size_t position, intset set) { if (set != NULL) { if (position < set->size) return set->array[position]; } return 0; } expfun void extendIntset(intset src, intset dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToIntset(elementAtIntset(index, src), dest); index = index + 1; } } } expfun void printIntset(text Offset, intset i, FILE* fp, c3po_bool showEmpty) { size_t index; text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); if (i == NULL) { if (showEmpty == true) { fprintf(fp, "%s{\n", Offset); fprintf(fp, "%sNULL\n", new_Offset); fprintf(fp, "%s}\n", Offset); } } else { fprintf(fp, "%s{\n", Offset); if (i->array == NULL) { if (showEmpty == true) fprintf(fp, "%sint array : NULL\n", new_Offset); } else { if ((isEmptyIntset(i) == false) || (showEmpty == true)) { fprintf(fp, "%sint size : %lu\n", new_Offset, (unsigned long)i->size); index = 0; while(index < i->size) { fprintf(fp, "%sint array[%lu] : %lu\n", new_Offset, (unsigned long)index, (unsigned long)i->array[index]); index = index + 1; } } } fprintf(fp, "%s}\n", Offset); } } expfun void freeIntset(intset i) { if (i ne NULL) { free((void *) i); } } wcd-5.2.5/src/c3po/Text.h0000664000175000017500000000377311635724443015271 0ustar waterlanwaterlan#ifndef TEXT_INCLUDED #define TEXT_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern text textNewSize(size_t size); extern text textNew(text string); extern c3po_bool eqText(text a, text b); extern size_t inNameset(text name, nameset set); extern intset matchNameset(text name, nameset set); extern size_t matchCountNameset(text name, nameset set); extern text concat(text a, text b); extern text concat3(text a, text b, text c); extern text concat4(text a, text b, text c, text d); extern text repeatOnBuffer(text pattern, size_t amount, size_t bufferNr); extern text repeat(text pattern, size_t amount); extern text spacesOnBuffer(size_t amount, size_t bufferNr); extern text spaces(size_t amount); extern text TabOnBuffer(size_t amount, size_t bufferNr); extern text Tab(size_t amount); extern text intToString(int i); extern text doubleToString(double d); #endif wcd-5.2.5/src/c3po/WcdStack.c0000664000175000017500000002143411637722771016041 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Text.h" #include "WcdStack.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ expfun WcdStack WcdStackNew(int maxsize) { WcdStack w = (WcdStack) malloc (sizeof(WcdStack_struct)); if (w != NULL) { w->maxsize = maxsize; w->lastadded = 0; w->current = 0; w->dir = NULL; w->size = 0; } else malloc_error("WcdStackNew()"); return w; } expfun WcdStack copyWcdStack(WcdStack src, c3po_bool Deep) { WcdStack w; if (src == NULL) return NULL; else { w = (WcdStack) malloc (sizeof(WcdStack_struct)); if (w != NULL) { if (Deep == true) { w->maxsize = src->maxsize; w->lastadded = src->lastadded; w->current = src->current; } else { w->maxsize = src->maxsize; w->lastadded = src->lastadded; w->current = src->current; } w->dir = NULL; w->size = 0; if (Deep == true) deepExtendWcdStackDir(src, w); else extendWcdStackDir(src, w); } else malloc_error("copyWcdStack()"); return w; } } expfun int WcdStackGetMaxsize(WcdStack w) { if (w != NULL) return w->maxsize; else return 0; } expfun int WcdStackGetLastadded(WcdStack w) { if (w != NULL) return w->lastadded; else return 0; } expfun int WcdStackGetCurrent(WcdStack w) { if (w != NULL) return w->current; else return 0; } expfun text* WcdStackGetDir(WcdStack w) { if (w != NULL) return w->dir; else return NULL; } expfun WcdStack WcdStackSetMaxsize(int maxsize, WcdStack w) { if (w != NULL) w->maxsize = maxsize; return w; } expfun WcdStack WcdStackSetLastadded(int lastadded, WcdStack w) { if (w != NULL) w->lastadded = lastadded; return w; } expfun WcdStack WcdStackSetCurrent(int current, WcdStack w) { if (w != NULL) w->current = current; return w; } expfun c3po_bool WcdStackHasDir(WcdStack w) { if (isEmptyWcdStackDir(w) == false) return true; else return false; } expfun size_t getSizeOfWcdStackDir(WcdStack w) { if (w != NULL) return w->size; else return 0; } expfun void setSizeOfWcdStackDir(WcdStack w, size_t size) { size_t index; if (w != NULL) { if (size == 0) { if (isEmptyWcdStackDir(w) eq false) { free((void *) w->dir); w->dir = NULL; w->size = 0; } } else if (size ne w->size) { if (isEmptyWcdStackDir(w) eq true) w->dir = (text*) malloc(sizeof(text) * size); else w->dir = (text*) realloc((void *) w->dir, sizeof(text) * size); if (w->dir ne NULL) { index = w->size; while(index < size) { w->dir[index] = NULL; index = index + 1; } w->size = size; } else { w->size = 0; malloc_error("setSizeOfWcdStackDir(w, size)"); } } } } expfun c3po_bool isEmptyWcdStackDir(WcdStack w) { if (getSizeOfWcdStackDir(w) > 0) return false; else return true; } expfun void addToWcdStackDir(text t, WcdStack set) { if (set != NULL) { setSizeOfWcdStackDir(set, set->size + 1); if (set->dir != NULL) set->dir[set->size - 1] = t; else malloc_error("addToWcdStackDir()"); } } expfun void putElementAtWcdStackDir(text t, size_t position, WcdStack set) { if (set != NULL) { if (position >= set->size) setSizeOfWcdStackDir(set, position + 1); if (set->dir != NULL) set->dir[position] = t; else malloc_error("putElementAtWcdStackDir(t, position, set)"); } } expfun void insertElementAtWcdStackDir(text t, size_t position, WcdStack set) { size_t index; if (set != NULL) { index = set->size; while(index > position) { putElementAtWcdStackDir(set->dir[index-1], index, set); index = index - 1; } putElementAtWcdStackDir(t, position, set); } } expfun void removeElementAtWcdStackDir(size_t position, WcdStack set, c3po_bool FreeAtPos) { size_t index; if (set != NULL) { if (position < set->size) { if (FreeAtPos eq true) { if (set->dir[position] ne NULL) free((void *) set->dir[position]); } index = position + 1; while(index < set->size) { putElementAtWcdStackDir(set->dir[index], index - 1, set); index = index + 1; } setSizeOfWcdStackDir(set, set->size - 1); } } } expfun text elementAtWcdStackDir(size_t position, WcdStack set) { if (set != NULL) { if (position < set->size) return set->dir[position]; } return NULL; } expfun void extendWcdStackDir(WcdStack src, WcdStack dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToWcdStackDir(elementAtWcdStackDir(index, src), dest); index = index + 1; } } } expfun void deepExtendWcdStackDir(WcdStack src, WcdStack dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToWcdStackDir(textNew(elementAtWcdStackDir(index, src)), dest); index = index + 1; } } } expfun void printWcdStack(text Offset, WcdStack w, FILE* fp, c3po_bool showEmpty) { size_t index; text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); if (w == NULL) { if (showEmpty == true) { fprintf(fp, "%s{\n", Offset); fprintf(fp, "%sNULL\n", new_Offset); fprintf(fp, "%s}\n", Offset); } } else { fprintf(fp, "%s{\n", Offset); fprintf(fp, "%sint maxsize : %d\n", new_Offset, w->maxsize); fprintf(fp, "%sint lastadded : %d\n", new_Offset, w->lastadded); fprintf(fp, "%sint current : %d\n", new_Offset, w->current); if (w->dir == NULL) { if (showEmpty == true) fprintf(fp, "%stext dir : NULL\n", new_Offset); } else { if ((isEmptyWcdStackDir(w) == false) || (showEmpty == true)) { fprintf(fp, "%sint size : %lu\n", new_Offset, (unsigned long)w->size); index = 0; while(index < w->size) { if (w->dir[index] ne NULL) fprintf(fp, "%stext dir[%lu] : %s\n", new_Offset, (unsigned long)index, w->dir[index]); else if (showEmpty == true) fprintf(fp, "%stext dir[%lu] : NULL\n", new_Offset, (unsigned long)index); index = index + 1; } } } fprintf(fp, "%s}\n", Offset); } } expfun void freeWcdStack(WcdStack w, c3po_bool Deep) { size_t index; if (w ne NULL) { if (Deep eq true) { index = 0; while(index < w->size) { if (w->dir[index] ne NULL) free((void *) w->dir[index]); index = index + 1; } } if (w->dir ne NULL) { free((void *) w->dir); w->dir = NULL; w->size = 0; } free((void *) w); } } wcd-5.2.5/src/c3po/nameset.h0000664000175000017500000000454311635724443015775 0ustar waterlanwaterlan#ifndef NAMESET_INCLUDED #define NAMESET_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern nameset namesetNew(void); extern nameset copyNameset(nameset src, c3po_bool Deep); extern text* namesetGetArray(nameset n); extern c3po_bool namesetHasArray(nameset n); extern size_t getSizeOfNamesetArray(nameset n); extern void setSizeOfNamesetArray(nameset n, size_t size); extern c3po_bool isEmptyNamesetArray(nameset n); extern void addToNamesetArray(text t, nameset set); extern void putElementAtNamesetArray(text t, size_t position, nameset set); extern void insertElementAtNamesetArray(text t, size_t position, nameset set); extern void removeElementAtNamesetArray(size_t position, nameset set, c3po_bool FreeAtPos); extern text elementAtNamesetArray(size_t position, nameset set); extern void extendNamesetArray(nameset src, nameset dest); extern void deepExtendNamesetArray(nameset src, nameset dest); extern void printNameset(text Offset, nameset n, FILE* fp, c3po_bool showEmpty); extern void freeNameset(nameset n, c3po_bool Deep); #endif wcd-5.2.5/src/c3po/Advance.h0000664000175000017500000001374511273517352015703 0ustar waterlanwaterlan#ifndef ADVANCE_INCLUDED #define ADVANCE_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ template static void advanceHookWcdStack(WcdStack w, text Offset, ARGS); template static void advanceWcdStack(WcdStack w, text Offset, ARGS); template static void advanceHookDirnode(dirnode d, text Offset, ARGS); template static void advanceDirnode(dirnode d, text Offset, ARGS); template static void advanceHookNameset(nameset n, text Offset, ARGS); template static void advanceNameset(nameset n, text Offset, ARGS); template static void advanceHookIntset(intset i, text Offset, ARGS); template static void advanceIntset(intset i, text Offset, ARGS); template static void advanceHookWcdStack(WcdStack w, text Offset, ARGS) { int index; index = 0; while(index < w->getSizeOfWcdStackDir) { index = index + 1; } } template static void advanceWcdStack(WcdStack w, text Offset, ARGS) { text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); TRACE(fprintf(stdout, "%sAdvance : WcdStack\n", Offset);) TRACE(fprintf(stdout, "%s{\n", Offset);) if (w ne NULL) advanceHookWcdStack(w, new_Offset, ARGSREF); TRACE(fprintf(stdout, "%s} <- end Advance WcdStack\n", Offset);) free(new_Offset); } template static void advanceHookDirnode(dirnode d, text Offset, ARGS) { int index; index = 0; while(index < d->getSizeOfDirnode) { advanceDirnode(d->subdirs[index], Offset, ARGSREF); index = index + 1; } } template static void advanceDirnode(dirnode d, text Offset, ARGS) { text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); TRACE(fprintf(stdout, "%sAdvance : dirnode\n", Offset);) TRACE(fprintf(stdout, "%s{\n", Offset);) if (d ne NULL) advanceHookDirnode(d, new_Offset, ARGSREF); TRACE(fprintf(stdout, "%s} <- end Advance dirnode\n", Offset);) free(new_Offset); } template static void advanceHookNameset(nameset n, text Offset, ARGS) { int index; index = 0; while(index < n->getSizeOfNamesetArray) { index = index + 1; } } template static void advanceNameset(nameset n, text Offset, ARGS) { text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); TRACE(fprintf(stdout, "%sAdvance : nameset\n", Offset);) TRACE(fprintf(stdout, "%s{\n", Offset);) if (n ne NULL) advanceHookNameset(n, new_Offset, ARGSREF); TRACE(fprintf(stdout, "%s} <- end Advance nameset\n", Offset);) free(new_Offset); } template static void advanceHookIntset(intset i, text Offset, ARGS) { int index; index = 0; while(index < i->getSizeOfIntset) { index = index + 1; } } template static void advanceIntset(intset i, text Offset, ARGS) { text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); TRACE(fprintf(stdout, "%sAdvance : intset\n", Offset);) TRACE(fprintf(stdout, "%s{\n", Offset);) if (i ne NULL) advanceHookIntset(i, new_Offset, ARGSREF); TRACE(fprintf(stdout, "%s} <- end Advance intset\n", Offset);) free(new_Offset); } #endif wcd-5.2.5/src/c3po/namesetw.h0000775000175000017500000000461411635724443016166 0ustar waterlanwaterlan#ifndef NAMESET_INCLUDED #define NAMESET_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern namesetw namesetwNew(void); extern namesetw copyNamesetw(namesetw src, c3po_bool Deep); extern textw* namesetwGetArray(namesetw n); extern c3po_bool namesetwHasArray(namesetw n); extern size_t getSizeOfNamesetwArray(namesetw n); extern void setSizeOfNamesetwArray(namesetw n, size_t size); extern c3po_bool isEmptyNamesetwArray(namesetw n); extern void addToNamesetwArray(textw t, namesetw set); extern void putElementAtNamesetwArray(textw t, size_t position, namesetw set); extern void insertElementAtNamesetwArray(textw t, size_t position, namesetw set); extern void removeElementAtNamesetwArray(size_t position, namesetw set, c3po_bool FreeAtPos); extern textw elementAtNamesetwArray(size_t position, namesetw set); extern void extendNamesetwArray(namesetw src, namesetw dest); extern void deepExtendNamesetwArray(namesetw src, namesetw dest); extern void printNamesetw(textw Offset, namesetw n, FILE* fp, c3po_bool showEmpty); extern void freeNamesetw(namesetw n, c3po_bool Deep); #endif wcd-5.2.5/src/c3po/Text.c0000664000175000017500000001253211636446624015260 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "nameset.h" #include "intset.h" expfun text textNewSize(size_t size) { text t = NULL; if (size > 0) { t = (text) malloc (sizeof(char) * size); if (t eq NULL) malloc_error("textNewSize(size)"); } return t; } expfun text textNew(text string) { text t = NULL; if (string ne NULL) { t = textNewSize(strlen(string) + 1); if (t ne NULL) strcpy(t, string); else malloc_error("textNew(text)"); } return t; } expfun c3po_bool eqText(text a, text b) { if ((a eq NULL) or (b eq NULL)) return false; else if (strcmp(a, b) eq 0) return true; else return false; } expfun size_t inNameset(text name, nameset set) { size_t index; if (isEmptyNamesetArray(set) eq false) { index = 0; while(index < getSizeOfNamesetArray(set)) { if (eqText(name, elementAtNamesetArray(index, set)) eq true) return index; index = index + 1; } } return (size_t)-1; } expfun intset matchNameset(text name, nameset set) { size_t index; static intset i_set = NULL; if (i_set eq NULL) i_set = intsetNew(); else setSizeOfIntset(i_set, (size_t)0); if (isEmptyNamesetArray(set) eq false) { index = 0; while(index < getSizeOfNamesetArray(set)) { if (eqText(name, elementAtNamesetArray(index, set)) eq true) addToIntset(index, i_set); index = index + 1; } } return i_set; } expfun size_t matchCountNameset(text name, nameset set) { size_t count = 0; size_t index; if (isEmptyNamesetArray(set) eq false) { index = 0; while(index < getSizeOfNamesetArray(set)) { if (eqText(name, elementAtNamesetArray(index, set)) eq true) count = count + 1; index = index + 1; } } return count; } expfun text concat(text a, text b) { text res = (text) malloc(sizeof(char) * (strlen(a) + strlen(b) + 1)); if (res ne NULL) { strcpy(res, a); strcpy(res + strlen(res), b); } else malloc_error("concat()"); return res; } expfun text concat3(text a, text b, text c) { text res = (text) malloc(sizeof(char) * (strlen(a) + strlen(b) + strlen(c) + 1)); if (res ne NULL) { strcpy(res, a); strcpy(res + strlen(res), b); strcpy(res + strlen(res), c); } else malloc_error("concat3()"); return res; } expfun text concat4(text a, text b, text c, text d) { text res = (text) malloc(sizeof(char) * (strlen(a) + strlen(b) + strlen(c) + strlen(d) + 1)); if (res ne NULL) { strcpy(res, a); strcpy(res + strlen(res), b); strcpy(res + strlen(res), c); strcpy(res + strlen(res), d); } else malloc_error("concat4()"); return res; } expfun text repeatOnBuffer(text pattern, size_t amount, size_t bufferNr) { size_t count = 0; static nameset buffers = NULL; text buffer; if (buffers eq NULL) buffers = namesetNew(); buffer = elementAtNamesetArray(bufferNr, buffers); if (buffer eq NULL) buffer = textNewSize(strlen(pattern) * amount + 1); else buffer = (text) realloc((void *) buffer, sizeof(char) * (strlen(pattern) * amount + 1)); putElementAtNamesetArray(buffer, bufferNr, buffers); buffer[0] = '\0'; while(count < amount) { strcpy(buffer + strlen(buffer), pattern); count = count + 1; } return buffer; } expfun text repeat(text pattern, size_t amount) { return repeatOnBuffer(pattern, amount, (size_t)0); } expfun text spacesOnBuffer(size_t amount, size_t bufferNr) { return repeatOnBuffer(" ", amount, bufferNr); } expfun text spaces(size_t amount) { return spacesOnBuffer(amount, (size_t)0); } expfun text TabOnBuffer(size_t amount, size_t bufferNr) { size_t tabSize = 3; return spacesOnBuffer(tabSize*amount, bufferNr); } expfun text Tab(size_t amount) { return TabOnBuffer(amount, (size_t)0); } expfun text intToString(int i) { char buffer[100]; sprintf(buffer, "%d", i); return textNew(buffer); } expfun text doubleToString(double d) { char buffer[100]; sprintf(buffer, "%g", d); return textNew(buffer); } wcd-5.2.5/src/c3po/Textw.h0000775000175000017500000000405511635724443015455 0ustar waterlanwaterlan#ifndef TEXT_INCLUDED #define TEXT_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern textw textwNewSize(size_t size); extern textw textwNew(textw string); extern c3po_bool eqTextw(textw a, textw b); extern size_t inNamesetw(textw name, namesetw set); extern intset matchNamesetw(textw name, namesetw set); extern size_t matchCountNamesetw(textw name, namesetw set); extern textw concatw(textw a, textw b); extern textw concatw3(textw a, textw b, textw c); extern textw concatw4(textw a, textw b, textw c, textw d); extern textw repeatOnBufferw(textw pattern, size_t amount, size_t bufferNr); extern textw repeatw(textw pattern, size_t amount); extern textw spacesOnBufferw(size_t amount, size_t bufferNr); extern textw spacesw(size_t amount); extern textw TabOnBufferw(size_t amount, size_t bufferNr); extern textw Tabw(size_t amount); extern textw intToStringw(int i); extern textw doubleToStringw(double d); #endif wcd-5.2.5/src/c3po/Error.c0000664000175000017500000000234112276236747015426 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include "std_macr.h" #include "structur.h" #include "../config.h" #include "../wcd.h" expfun void c3po_beep(int number_times) { int counter = 0; while (counter < number_times) { fprintf(stderr, "\007"); counter = counter + 1; } } expfun void malloc_error(text function_name) { c3po_beep(1); print_error(_("in '%s', insufficient memory for allocation\n"), function_name); exit(1); } wcd-5.2.5/src/c3po/std_macr.h0000664000175000017500000000472512025724165016132 0ustar waterlanwaterlan#ifndef STD_MACRO_INCLUDED #define STD_MACRO_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define eq == /* Logical 'equals' */ #define ne != /* Logical inequality */ #define not ! /* Logical 'NOT' */ #define bnot ~ /* Bitwise 'NOT' (one's complement) */ #define cand && /* Conditional 'AND' */ #define and && /* Logical 'AND' */ #define band & /* Bitwise 'AND' */ #define cor || /* Conditional 'OR' */ #define or || /* Logical 'OR' */ #define bor | /* Bitwise 'OR' */ #define bxor ^ /* Bitwise exclusive 'OR' */ /* Definition of 'mod' gives problems with WinBase.h (MS Visual C++) */ /*#define mod % Remainder operator */ #ifndef NULL #define NULL 0 /* Null pointer */ #endif #ifndef EOF #define EOF -1 /* end of file */ #endif #define true 1 #define false 0 #define expvar /* export variable */ #define expfun /* export function */ #ifdef __cplusplus #define c3po_bool _c3po_bool #endif typedef int c3po_bool; /* pseudo c3po_boolean */ #ifdef SETTRACE #define TRACE(x) x #else #define TRACE(x) #endif #endif wcd-5.2.5/src/c3po/Command.c0000664000175000017500000001117712337451362015710 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "nameset.h" expfun text getBasename(text input_file) { static char base[200]; int i; strcpy(base, input_file); i = (int)strlen(base) - 1; while(i >= 0) { if (base[i] eq '/') return base + i + 1; i = i - 1; } return base; } expfun text getCore(text input_file) { static char core[200]; int i; strcpy(core, getBasename(input_file)); i = (int)strlen(core) - 1; while(i >= 0) { if (core[i] eq '.') core[i] = '\0'; i = i - 1; } return core; } expfun c3po_bool inArgList(text name, int argc, char** argv) { text arg; c3po_bool found = false; int index = 1; while(index < argc) { arg = *(argv + index); if (strcmp(name, arg) eq 0) { found = true; break; } index = index + 1; } return found; } expfun text getArg(text name, int argc, char** argv) { int index = 1; text arg = NULL; text current_arg; c3po_bool found = false; while(index < argc) { current_arg = *(argv + index); if (strcmp(name, current_arg) eq 0) { found = true; break; } index = index + 1; } if (found eq true) { index = index + 1; if (index < argc) { current_arg = *(argv + index); if ( *current_arg ne '-') arg = current_arg; } } return arg; } expfun nameset getArgs(text name, int argc, char** argv) { int index = 0; text arg; nameset args = NULL; c3po_bool found = false; while(index < argc) { arg = *(argv + index); if (strcmp(name, arg) eq 0) { index = index + 1; if (index < argc) { args = namesetNew(); found = true; } else return NULL; } if (found eq true) { arg = *(argv + index); if ( *arg eq '-') { if (args->size eq 0) { free((void *) args); args = NULL; } break; } else addToNamesetArray(arg, args); } index = index + 1; } return args; } expfun c3po_bool isInt(text string) { unsigned int index = 0; c3po_bool is_int = true; while(index < strlen(string)) { if (isdigit(string[index]) ne 0) index = index + 1; else if ((index eq 0) and (string[0] eq '-')) index = index + 1; else { is_int = false; break; } } return is_int; } expfun c3po_bool isFloat(text string) { unsigned int index = 0; c3po_bool digits = true; c3po_bool found_point = false; while(index < strlen(string)) { if (isdigit(string[index]) ne 0) index = index + 1; else if (string[index] eq '.') { index = index + 1; found_point = true; } else { digits = false; break; } } if (found_point eq true) { if (digits eq true) return true; else return false; } else return false; } expfun void dumpCommandline(text file, int argc, char** argv) { FILE *fp; int index = 0; fp = fopen(file, "a"); if (fp ne NULL) { fprintf(stderr, "\n- appending commandline to '%s'\n", file); while(index < argc) { fprintf(fp, "%s ", argv[index]); index = index + 1; } fprintf(fp, "\n"); fclose(fp); } else { c3po_beep(1); fprintf(stderr, "- couldn't append commandline to '%s'\n", file); } } wcd-5.2.5/src/c3po/namesetw.c0000775000175000017500000001676111637722771016173 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Textw.h" #include "namesetw.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ expfun namesetw namesetwNew(void) { namesetw n = (namesetw) malloc (sizeof(namesetw_struct)); if (n != NULL) { n->array = NULL; n->size = 0; } else malloc_error("namesetwNew()"); return n; } expfun namesetw copyNamesetw(namesetw src, c3po_bool Deep) { namesetw n; if (src == NULL) return NULL; else { n = (namesetw) malloc (sizeof(namesetw_struct)); if (n != NULL) { n->array = NULL; n->size = 0; if (Deep == true) deepExtendNamesetwArray(src, n); else extendNamesetwArray(src, n); } else malloc_error("copyNamesetw()"); return n; } } expfun textw* namesetwGetArray(namesetw n) { if (n != NULL) return n->array; else return NULL; } expfun c3po_bool namesetwHasArray(namesetw n) { if (isEmptyNamesetwArray(n) == false) return true; else return false; } expfun size_t getSizeOfNamesetwArray(namesetw n) { if (n != NULL) return n->size; else return 0; } expfun void setSizeOfNamesetwArray(namesetw n, size_t size) { size_t index; if (n != NULL) { if (size == 0) { if (isEmptyNamesetwArray(n) eq false) { free((void *) n->array); n->array = NULL; n->size = 0; } } else if (size ne n->size) { if (isEmptyNamesetwArray(n) eq true) n->array = (textw*) malloc(sizeof(textw) * size); else n->array = (textw*) realloc((void *) n->array, sizeof(textw) * size); if (n->array ne NULL) { index = n->size; while(index < size) { n->array[index] = NULL; index = index + 1; } n->size = size; } else { n->size = 0; malloc_error("setSizeOfNamesetwArray(n, size)"); } } } } expfun c3po_bool isEmptyNamesetwArray(namesetw n) { if (getSizeOfNamesetwArray(n) > 0) return false; else return true; } expfun void addToNamesetwArray(textw t, namesetw set) { if (set != NULL) { setSizeOfNamesetwArray(set, set->size + 1); if (set->array != NULL) set->array[set->size - 1] = t; else malloc_error("addToNamesetwArray()"); } } expfun void putElementAtNamesetwArray(textw t, size_t position, namesetw set) { if (set != NULL) { if (position >= set->size) setSizeOfNamesetwArray(set, position + 1); if (set->array != NULL) set->array[position] = t; else malloc_error("putElementAtNamesetwArray(t, position, set)"); } } expfun void insertElementAtNamesetwArray(textw t, size_t position, namesetw set) { size_t index; if (set != NULL) { index = set->size; while(index > position) { putElementAtNamesetwArray(set->array[index-1], index, set); index = index - 1; } putElementAtNamesetwArray(t, position, set); } } expfun void removeElementAtNamesetwArray(size_t position, namesetw set, c3po_bool FreeAtPos) { size_t index; if (set != NULL) { if (position < set->size) { if (FreeAtPos eq true) { if (set->array[position] ne NULL) free((void *) set->array[position]); } index = position + 1; while(index < set->size) { putElementAtNamesetwArray(set->array[index], index - 1, set); index = index + 1; } setSizeOfNamesetwArray(set, set->size - 1); } } } expfun textw elementAtNamesetwArray(size_t position, namesetw set) { if (set != NULL) { if (position < set->size) return set->array[position]; } return NULL; } expfun void extendNamesetwArray(namesetw src, namesetw dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToNamesetwArray(elementAtNamesetwArray(index, src), dest); index = index + 1; } } } expfun void deepExtendNamesetwArray(namesetw src, namesetw dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToNamesetwArray(textwNew(elementAtNamesetwArray(index, src)), dest); index = index + 1; } } } expfun void printNamesetw(textw Offset, namesetw n, FILE* fp, c3po_bool showEmpty) { size_t index; textw increment = L" "; textw new_Offset = (textw) malloc(sizeof(char) * (wcslen(Offset) + wcslen(increment) + 1)); swprintf(new_Offset, L"%s%s", Offset, increment); if (n == NULL) { if (showEmpty == true) { fwprintf(fp, L"%s{\n", Offset); fwprintf(fp, L"%sNULL\n", new_Offset); fwprintf(fp, L"%s}\n", Offset); } } else { fwprintf(fp, L"%s{\n", Offset); if (n->array == NULL) { if (showEmpty == true) fwprintf(fp, L"%stextw array : NULL\n", new_Offset); } else { if ((isEmptyNamesetwArray(n) == false) || (showEmpty == true)) { fwprintf(fp, L"%sint size : %zu\n", new_Offset, n->size); index = 0; while(index < n->size) { if (n->array[index] ne NULL) fwprintf(fp, L"%stextw array[%zu] : %s\n", new_Offset, index, n->array[index]); else if (showEmpty == true) fwprintf(fp, L"%stextw array[%zu] : NULL\n", new_Offset, index); index = index + 1; } } } fwprintf(fp, L"%s}\n", Offset); } } expfun void freeNamesetw(namesetw n, c3po_bool Deep) { size_t index; if (n ne NULL) { if (Deep eq true) { index = 0; while(index < n->size) { if (n->array[index] ne NULL) free((void *) n->array[index]); index = index + 1; } } if (n->array ne NULL) { free((void *) n->array); n->array = NULL; n->size = 0; } free((void *) n); } } wcd-5.2.5/src/c3po/intset.h0000664000175000017500000000374311635724443015650 0ustar waterlanwaterlan#ifndef INTSET_INCLUDED #define INTSET_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern intset intsetNew(void); extern intset copyIntset(intset src); extern size_t* intsetGetArray(intset i); extern c3po_bool intsetHasArray(intset i); extern size_t getSizeOfIntset(intset i); extern void setSizeOfIntset(intset i, size_t size); extern c3po_bool isEmptyIntset(intset i); extern void addToIntset(size_t i, intset set); extern void putElementAtIntset(size_t i, size_t position, intset set); extern void insertElementAtIntset(size_t i, size_t position, intset set); extern void removeElementAtIntset(size_t position, intset set); extern size_t elementAtIntset(size_t position, intset set); extern void extendIntset(intset src, intset dest); extern void printIntset(text Offset, intset i, FILE* fp, c3po_bool showEmpty); extern void freeIntset(intset i); #endif wcd-5.2.5/src/c3po/nameset.c0000664000175000017500000001667011637722771016000 0ustar waterlanwaterlan#include #include #include #include "std_macr.h" #include "structur.h" #include "Error.h" #include "Text.h" #include "nameset.h" /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ expfun nameset namesetNew(void) { nameset n = (nameset) malloc (sizeof(nameset_struct)); if (n != NULL) { n->array = NULL; n->size = 0; } else malloc_error("namesetNew()"); return n; } expfun nameset copyNameset(nameset src, c3po_bool Deep) { nameset n; if (src == NULL) return NULL; else { n = (nameset) malloc (sizeof(nameset_struct)); if (n != NULL) { n->array = NULL; n->size = 0; if (Deep == true) deepExtendNamesetArray(src, n); else extendNamesetArray(src, n); } else malloc_error("copyNameset()"); return n; } } expfun text* namesetGetArray(nameset n) { if (n != NULL) return n->array; else return NULL; } expfun c3po_bool namesetHasArray(nameset n) { if (isEmptyNamesetArray(n) == false) return true; else return false; } expfun size_t getSizeOfNamesetArray(nameset n) { if (n != NULL) return n->size; else return 0; } expfun void setSizeOfNamesetArray(nameset n, size_t size) { size_t index; if (n != NULL) { if (size == 0) { if (isEmptyNamesetArray(n) eq false) { free((void *) n->array); n->array = NULL; n->size = 0; } } else if (size ne n->size) { if (isEmptyNamesetArray(n) eq true) n->array = (text*) malloc(sizeof(text) * size); else n->array = (text*) realloc((void *) n->array, sizeof(text) * size); if (n->array ne NULL) { index = n->size; while(index < size) { n->array[index] = NULL; index = index + 1; } n->size = size; } else { n->size = 0; malloc_error("setSizeOfNamesetArray(n, size)"); } } } } expfun c3po_bool isEmptyNamesetArray(nameset n) { if (getSizeOfNamesetArray(n) > 0) return false; else return true; } expfun void addToNamesetArray(text t, nameset set) { if (set != NULL) { setSizeOfNamesetArray(set, set->size + 1); if (set->array != NULL) set->array[set->size - 1] = t; else malloc_error("addToNamesetArray()"); } } expfun void putElementAtNamesetArray(text t, size_t position, nameset set) { if (set != NULL) { if (position >= set->size) setSizeOfNamesetArray(set, position + 1); if (set->array != NULL) set->array[position] = t; else malloc_error("putElementAtNamesetArray(t, position, set)"); } } expfun void insertElementAtNamesetArray(text t, size_t position, nameset set) { size_t index; if (set != NULL) { index = set->size; while(index > position) { putElementAtNamesetArray(set->array[index-1], index, set); index = index - 1; } putElementAtNamesetArray(t, position, set); } } expfun void removeElementAtNamesetArray(size_t position, nameset set, c3po_bool FreeAtPos) { size_t index; if (set != NULL) { if (position < set->size) { if (FreeAtPos eq true) { if (set->array[position] ne NULL) free((void *) set->array[position]); } index = position + 1; while(index < set->size) { putElementAtNamesetArray(set->array[index], index - 1, set); index = index + 1; } setSizeOfNamesetArray(set, set->size - 1); } } } expfun text elementAtNamesetArray(size_t position, nameset set) { if (set != NULL) { if (position < set->size) return set->array[position]; } return NULL; } expfun void extendNamesetArray(nameset src, nameset dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToNamesetArray(elementAtNamesetArray(index, src), dest); index = index + 1; } } } expfun void deepExtendNamesetArray(nameset src, nameset dest) { if (src != NULL) { size_t index = 0; while(index < src->size) { addToNamesetArray(textNew(elementAtNamesetArray(index, src)), dest); index = index + 1; } } } expfun void printNameset(text Offset, nameset n, FILE* fp, c3po_bool showEmpty) { size_t index; text increment = " "; text new_Offset = (text) malloc(sizeof(char) * (strlen(Offset) + strlen(increment) + 1)); sprintf(new_Offset, "%s%s", Offset, increment); if (n == NULL) { if (showEmpty == true) { fprintf(fp, "%s{\n", Offset); fprintf(fp, "%sNULL\n", new_Offset); fprintf(fp, "%s}\n", Offset); } } else { fprintf(fp, "%s{\n", Offset); if (n->array == NULL) { if (showEmpty == true) fprintf(fp, "%stext array : NULL\n", new_Offset); } else { if ((isEmptyNamesetArray(n) == false) || (showEmpty == true)) { fprintf(fp, "%sint size : %lu\n", new_Offset, (unsigned long)n->size); index = 0; while(index < n->size) { if (n->array[index] ne NULL) fprintf(fp, "%stext array[%lu] : %s\n", new_Offset, (unsigned long)index, n->array[index]); else if (showEmpty == true) fprintf(fp, "%stext array[%lu] : NULL\n", new_Offset, (unsigned long)index); index = index + 1; } } } fprintf(fp, "%s}\n", Offset); } } expfun void freeNameset(nameset n, c3po_bool Deep) { size_t index; if (n ne NULL) { if (Deep eq true) { index = 0; while(index < n->size) { if (n->array[index] ne NULL) free((void *) n->array[index]); index = index + 1; } } if (n->array ne NULL) { free((void *) n->array); n->array = NULL; n->size = 0; } free((void *) n); } } wcd-5.2.5/src/c3po/structur.h0000664000175000017500000000337311635724443016234 0ustar waterlanwaterlan#ifndef STRUCTURES_INCLUDED #define STRUCTURES_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef C3PO_BASIC_TYPES_INCLUDED #define C3PO_BASIC_TYPES_INCLUDED typedef char *text; typedef struct nameset_struct { text *array; size_t size; } nameset_struct, *nameset; typedef struct intset_struct { size_t *array; size_t size; } intset_struct, *intset; #endif typedef struct WcdStack_struct { int maxsize; int lastadded; int current; text *dir; size_t size; } WcdStack_struct, *WcdStack; typedef struct dirnode_struct { text name; int x; int y; struct dirnode_struct *parent; struct dirnode_struct **subdirs; size_t size; struct dirnode_struct *up; struct dirnode_struct *down; c3po_bool fold; } dirnode_struct, *dirnode; #ifdef WCD_UNICODE typedef wchar_t *textw; typedef struct namesetw_struct { textw *array; size_t size; } namesetw_struct, *namesetw; #endif #endif wcd-5.2.5/src/c3po/Constants.h0000664000175000017500000000153511273517352016310 0ustar waterlanwaterlan#ifndef CONSTANTS_INCLUDED #define CONSTANTS_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define STRING_SIZE 1024 #endif wcd-5.2.5/src/c3po/Imakefile0000664000175000017500000000310211273517352015764 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define CONFIG_TOP #include "Config.h" #undef CONFIG_TOP GEN_SRCS= \ Error.c \ Text.c \ Command.c \ File.c \ WcdStack.c \ dirnode.c \ nameset.c \ intset.c \ main.c PROTECTED_SRCS= \ Usage.c SRCS = $(GEN_SRCS) $(PROTECTED_SRCS) $(EXTRA_SRCS) OBJS = $(SRCS:.c=.o) GEN_HDRS = \ structur.h \ std_macr.h \ Error.h \ Text.h \ Command.h \ File.h \ WcdStack.h \ dirnode.h \ nameset.h \ intset.h \ Advance.h PROTECTED_HDRS = \ Constants.h \ Usage.h \ Config.h INCLUDE_FILES = $(GEN_HDRS) $(PROTECTED_HDRS) TGTPATH = $(OBJDIR) vpath %.o $(TGTPATH) ComplexProgramTarget(wcd) clean :: rm -f wcd.y rm -f wcd.l rm -f $(GEN_SRCS) $(GEN_HDRS) rm -f Imakefile rm -f wcd_y.c wcd.output y.tab.c y.output rm -f wcd_l.c wcd.h y.tab.h lex.yy.c rm -f *.tmp* makefile Makefile #define CONFIG_BOT #include "Config.h" #undef CONFIG_BOT wcd-5.2.5/src/c3po/Config.h0000664000175000017500000000156511273517352015544 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ OBJDIR = . #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' CDEBUGFLAGS = -g CCOPTIONS = -Wall -z CC = gcc wcd-5.2.5/src/c3po/File.c0000664000175000017500000000536611273517352015214 0ustar waterlanwaterlan/* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include #include #include #include #include "std_macr.h" #include "structur.h" #include "Constants.h" expfun FILE * openR(text filename) { FILE *fi = fopen(filename, "r"); return fi; } expfun FILE * openRwarn(text filename, c3po_bool Warn) { FILE *fi = fopen(filename, "r"); if ((fi == NULL) && (Warn == true)) fprintf(stderr, "\n** WARNING : couldn't open '%s', (ignored) ...\n", filename); return fi; } expfun c3po_bool existsFile(text filename) { FILE *fp = openR(filename); if (fp != NULL) { fclose(fp); return true; } else return false; } expfun FILE * openW(text filename) { FILE *fo = fopen(filename, "w"); if (fo != NULL) fprintf(stderr, "\n- generating '%s'\n", filename); else { fprintf(stderr, "\n- couldn't open '%s', using stdout...\n", filename); fo = stdout; } return fo; } expfun FILE * openWBackup(text filename, c3po_bool Backup) { int index; char moveName[STRING_SIZE]; if ((existsFile(filename) == true) && (Backup == true)) { sprintf(moveName, "%s.tmp", filename); index = 1; while(existsFile(moveName) == true) { sprintf(moveName, "%s.tmp%d", filename, index); index = index + 1; } fprintf(stderr, "\n- existing file '%s' has been moved to '%s',", filename, moveName); rename(filename, moveName); } return openW(filename); } expfun FILE * Append(text filename) { FILE *fo = fopen(filename, "a"); if (fo == NULL) { fprintf(stderr, "\n- couldn't append to '%s', using stdout...\n", filename); fo = stdout; } return fo; } expfun void Close(FILE* fp) { if ((fp != NULL) && (fp != stdout) && (fp != stderr)) fclose(fp); } expfun unsigned long getFileSize(text filename) { struct stat s; if (stat(filename, &s) == 0) return (unsigned long) s.st_size; else return 0; } wcd-5.2.5/src/c3po/WcdStack.h0000664000175000017500000000546611635724443016051 0ustar waterlanwaterlan#ifndef WCDSTACK_INCLUDED #define WCDSTACK_INCLUDED /* Copyright (C) 1997-2000 Ondrej Popp This code is generated with Ondrej Popp's C3PO. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern WcdStack WcdStackNew(int maxsize); extern WcdStack copyWcdStack(WcdStack src, c3po_bool Deep); extern int WcdStackGetMaxsize(WcdStack w); extern int WcdStackGetLastadded(WcdStack w); extern int WcdStackGetCurrent(WcdStack w); extern text* WcdStackGetDir(WcdStack w); extern WcdStack WcdStackSetMaxsize(int maxsize, WcdStack w); extern WcdStack WcdStackSetLastadded(int lastadded, WcdStack w); extern WcdStack WcdStackSetCurrent(int current, WcdStack w); extern c3po_bool WcdStackHasDir(WcdStack w); extern size_t getSizeOfWcdStackDir(WcdStack w); extern void setSizeOfWcdStackDir(WcdStack w, size_t size); extern c3po_bool isEmptyWcdStackDir(WcdStack w); extern void addToWcdStackDir(text t, WcdStack set); extern void putElementAtWcdStackDir(text t, size_t position, WcdStack set); extern void insertElementAtWcdStackDir(text t, size_t position, WcdStack set); extern void removeElementAtWcdStackDir(size_t position, WcdStack set, c3po_bool FreeAtPos); extern text elementAtWcdStackDir(size_t position, WcdStack set); extern void extendWcdStackDir(WcdStack src, WcdStack dest); extern void deepExtendWcdStackDir(WcdStack src, WcdStack dest); extern void printWcdStack(text Offset, WcdStack w, FILE* fp, c3po_bool showEmpty); extern void freeWcdStack(WcdStack w, c3po_bool Deep); #endif wcd-5.2.5/src/c3po/Generate0000775000175000017500000000105711324023155015630 0ustar waterlanwaterlan#c3po-latest wcd.G c3po-0.19.5 wcd.G # Solve conflicts with other definitions of type 'bool'. E.g. in (n)curses. # Create 8.3 DOS filenames. export list=`ls *.[chly]` for i in $list do sed -e s/bool/c3po_bool/g -e s/beep/c3po_beep/g -e s/strings.h/string.h/ -e s/structures.h/structur.h/ -e s/std_macro.h/std_macr.h $i > $i.tmp /bin/mv $i.tmp $i done /bin/rm *.tmp /bin/mv structures.h structur.h /bin/mv std_macro.h std_macr.h sed -e s/structures.h/structur.h/ -e s/std_macro.h/std_macr.h Imakefile > Imakefile.tmp /bin/mv Imakefile.tmp Imakefile wcd-5.2.5/src/display.c0000664000175000017500000013261312334500475015127 0ustar waterlanwaterlan/* Copyright (C) 1997-2014 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include #include "wcd.h" #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) #ifndef __USE_XOPEN #define __USE_XOPEN #endif #include #endif #include "display.h" #include "std_macr.h" #include "structur.h" #include "nameset.h" #include "config.h" #include "dosdir.h" #include "graphics.h" #include #if defined(WCD_WINDOWS) #include #endif #ifdef WCD_ANSI /* wide char to UTF-8 */ size_t wcstoansi(char *mbstr, const wchar_t *wcstr, int len) { return((size_t)(WideCharToMultiByte(CP_ACP, 0, wcstr, -1, mbstr, len, NULL, NULL) -1)); } size_t ansitowcs(wchar_t *wcstr, const char *mbstr, int len) { return((size_t)(MultiByteToWideChar(CP_ACP, 0, mbstr, -1, wcstr, len) -1)); } #endif #ifdef WCD_UTF16 /* wide char to UTF-8 */ size_t wcstoutf8(char *mbstr, const wchar_t *wcstr, int len) { return((size_t)(WideCharToMultiByte(CP_UTF8, 0, wcstr, -1, mbstr, len, NULL, NULL) -1)); } size_t utf8towcs(wchar_t *wcstr, const char *mbstr, int len) { return((size_t)(MultiByteToWideChar(CP_UTF8, 0, mbstr, -1, wcstr, len) -1)); } #endif /* * wcd_printf() : printf wrapper, print in Windows Console in Unicode mode, * to have consistent output. Regardless of active code page. * * Windows Unicode: Print Windows ANSI encoded format with UTF-8 encoded arguments. * Windows ANSI : Print Windows ANSI encoded format and arguments. * All others : Use standard printf. * * On Windows the file system uses always Unicode UTF-16 encoding, * regardless of the system default code page. This means * that files and directories can have names that * can't be encoded in the default system Windows ANSI code page. * * The Windows console supports printing of any UTF-16 wide character, * regardless of code page, via WriteConsoleW(). * * Wcd for Windows with Unicode support translates all UTF-16 directory * names to UTF-8, to be able to work with char type strings. * This is done to keep the code portable. * * Wcd's messages are encoded in the default Windows ANSI code page, * which can be translated with gettext. Gettext/libintl recodes * messages (format) to the system default ANSI code page. */ void wcd_printf( const char* format, ... ) { va_list args; #if defined(_WIN32) && !defined(__CYGWIN__) /* Windows, not Cygwin */ wchar_t wstr[DD_MAXPATH]; char buf[DD_MAXPATH]; # ifdef WCD_UTF16 char formatmbs[DD_MAXPATH]; wchar_t formatwcs[DD_MAXPATH]; # endif HANDLE stduit; va_start(args, format); stduit =GetStdHandle(STD_OUTPUT_HANDLE); # ifdef WCD_UTF16 /* Wcd for Windows with Unicode support */ /* The format string is encoded in the system default * Windows ANSI code page. May have been translated * by gettext. Convert it to wide characters. */ MultiByteToWideChar(CP_ACP,0, format, -1, formatwcs, DD_MAXPATH); /* then convert the format string to UTF-8 */ WideCharToMultiByte(CP_UTF8, 0, formatwcs, -1, formatmbs, DD_MAXPATH, NULL, NULL); /* Assume the arguments (directory names) are in UTF-8 encoding, because * in Windows Unicode mode all treedata files are written in UTF-8 format. * Print to buffer (UTF-8) */ vsnprintf( buf, sizeof(buf), formatmbs, args); /* Convert UTF-8 buffer to wide characters, and print to console. */ if (MultiByteToWideChar(CP_UTF8,0, buf, -1, wstr, DD_MAXPATH) > 0 ) # else /* Everything is in ANSI code page */ vsnprintf( buf, sizeof(buf), format, args); if (MultiByteToWideChar(CP_ACP,0, buf, -1, wstr, DD_MAXPATH) > 0 ) # endif WriteConsoleW(stduit, wstr, wcslen(wstr), NULL, NULL); else { /* An error occured. */ printf("A:"); vprintf( format, args ); } #else va_start(args, format); vprintf( format, args ); #endif va_end( args ); } /* * size_t str_columns (char *s) * * Return number of colums a string takes. In case * of erroneous multi-byte sequence, return number of * 8 bit characters. */ #if (defined(WCD_USECONIO) || defined(WCD_USECURSES)) size_t str_columns (char *s) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; size_t i; int j; /* convert to wide characters. i = nr. of characters */ i= MBSTOWCS(wstr,s,(size_t)DD_MAXPATH); if ( i == (size_t)(-1)) return(strlen(s)); else { j = wcd_wcswidth(wstr,(size_t)DD_MAXPATH); /* j = nr. of columns */ if ( j < 0) return(strlen(s)); else return((size_t)j); } #else return(strlen(s)); #endif } #endif /************************************************************************ * * swap(), ssort() and sort_list() * * Sort a nameset list alphabeticly * ************************************************************************/ void swap(nameset list, int i, int j) { text temp; temp = list->array[i]; list->array[i] = list->array[j]; list->array[j] = temp; } void ssort (nameset list, int left, int right) { int i, last; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr_left[DD_MAXPATH]; static wchar_t wstr_right[DD_MAXPATH]; size_t len1,len2; #endif if (left >= right) return; /* fewer than 2 elements */ swap(list, left, (left + right)/2); last = left; for (i = left+1; i <=right; i++) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) len1 = MBSTOWCS(wstr_left, list->array[left],(size_t)DD_MAXPATH); len2 = MBSTOWCS(wstr_right,list->array[i],(size_t)DD_MAXPATH); if ((len1 == (size_t)(-1)) || (len2 == (size_t)(-1))) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ # ifdef ENABLE_NLS if (strcoll(list->array[i],list->array[left])<0) # else if (strcmp(list->array[i],list->array[left])<0) # endif swap(list, ++last, i); } else { if (wcscoll(wstr_right,wstr_left)<0) swap(list, ++last, i); } #else # ifdef ENABLE_NLS if (strcoll(list->array[i],list->array[left])<0) # else if (strcmp(list->array[i],list->array[left])<0) # endif swap(list, ++last, i); #endif } swap(list, left, last); ssort(list, left, last-1); ssort(list, last+1, right); } void sort_list(nameset list) { ssort(list,0,(int)(list->size)-1); } /************************************************************************ * * maxLength() * Get the longest string in a nameset list. * ************************************************************************/ #if (defined(WCD_USECONIO) || defined(WCD_USECURSES)) size_t maxLength(nameset list) { size_t i, len, maxlen = 0; if (list == NULL) { print_error("%s", _("internal error in maxLength(), list == NULL\n")); return 32 ; } for (i=0;isize;i++) { if( (len=str_columns(list->array[i])) > maxlen) maxlen=len; } if (maxlen > 32) return(maxlen); else return 32 ; /* minimal width for help screen */ } size_t maxLengthStack(WcdStack s) { size_t i, len,maxlen = 0; if (s == NULL) { print_error("%s", _("internal error in maxLengthStack(), s == NULL\n")); return 32 ; } for (i=0;isize;i++) { if( (len=str_columns(s->dir[i])) > maxlen) maxlen=len; } if (maxlen > 32) return(maxlen); else return 32 ; /* minimal width for help screen */ } #endif /************************************************************************ * * display_list(nameset list) * * Display a match list on screen. * * There are three versions of the function: * * 1) stdout version * This version will work on any platform. Default for Unix and Windows. * Has to make use of the scroll-back capability of the terminal. * * 2) CONIO version * Default used for DOS, optional for Windows NT. * Scroll back is programmed in. * * 3) CURSES version * Optional for Unix, DOS or Windows. * Scroll back is programmed in. * ************************************************************************/ #ifdef WCD_USECONIO void printLine(nameset n, int i, int y, int xoffset, int *use_numbers, int screenWidth) { wcd_uchar *s; int len, j, nr_offset; s = n->array[i]; if (s != NULL) { len = strlen(s); if (*use_numbers == 0) nr_offset = 2; else nr_offset = 3; for(j=xoffset;(jdir[i]; if (s != NULL) { len = strlen(s); if (*use_numbers == 0) nr_offset = 2; else nr_offset = 3; for(j=xoffset;(jcurrent) && ((nr_offset+j-xoffset+2)<(screenWidth-1))) cprintf(" *"); } } void print_list_normal(int lines_per_page, int line, nameset list, int top, int bottom, int use_numbers, int xoffset, int screenWidth) { int i; for (i=top;i<=bottom;i++) { gotoxy(1,line); if (use_numbers == 0) cprintf("%c ",(char)(((i-top)%lines_per_page) + 'a')); else cprintf("%2d ",((i-top)%lines_per_page) + 1); printLine(list, i, line, xoffset, &use_numbers, screenWidth); line++; } } /**************************************************/ void print_list_stack(int lines_per_page, int line, WcdStack ws, int start, int top, int bottom, int use_numbers, int xoffset, int screenWidth) { int i,j; if (use_numbers == 0) { for (i=top;i<=bottom;i++) { j = (i + start)%(ws->size); gotoxy(1,line); cprintf("%c ",(char)(((i-top)%lines_per_page) + 'a')); printStackLine(ws, j, line, xoffset, &use_numbers, screenWidth); line++; } } else { for (i=top;i<=bottom;i++) { j = (i + start)%(ws->size); gotoxy(1,line); cprintf("%2d ",(i-top)%lines_per_page + 1); printStackLine(ws, j, line, xoffset, &use_numbers, screenWidth); line++; } } } void print_list(int lines_per_page,int line, nameset list, WcdStack ws, int start, int top, int bottom, int use_numbers, int xoffset, int screenWidth) { clrscr(); if (list != NULL) print_list_normal(lines_per_page,line,list,top,bottom,use_numbers,xoffset,screenWidth); else if (ws != NULL) print_list_stack(lines_per_page,line,ws,start,top,bottom,use_numbers,xoffset,screenWidth); } /****************************************************************************/ /* upper left corner is (1,1) */ int display_list_conio(nameset list,WcdStack ws, int perfect,int use_numbers) { int i, n=0, line, top, bottom, c=0, extended, gtxt=0; int start=0, size; int scrollWinHeight, page, len, shift=0 ; int lines_per_page ; /* number of lines to print per page */ char number_str[WCD_MAX_INPSTR]; char *buffer; struct text_info ti; int pageoffset; char buf[WCD_MAX_INPSTR]; gettextinfo(&ti); buffer = (char *) malloc(ti.screenwidth * ti.screenheight * 2); if (buffer!=NULL) /* get total screen */ gtxt = gettext(1,1,ti.screenwidth,ti.screenheight,buffer); if (list != NULL) /* normal list */ { sort_list(list); size = list->size; } else if (ws != NULL) /* stack */ { if( ((ws->size) <= 0) || ((ws->size) > ws->maxsize) || ((ws->size) > ws->maxsize) ) return(WCD_ERR_LIST); /* in case stack file was corrupt */ else { size = ws->size; if (ws->size < ws->maxsize) start = 0; else start = ws->lastadded + 1; if (ws->lastadded >= ws->maxsize) start = 0; } } else return(WCD_ERR_LIST); /* no list or stack */ i= WCD_ERR_LIST; number_str[n] = '\0'; scrollWinHeight = ti.screenheight - INPUT_WIN_HEIGHT; lines_per_page = scrollWinHeight ; if (use_numbers == 0) { if (scrollWinHeight > SCROLL_WIN_HEIGHT) lines_per_page = SCROLL_WIN_HEIGHT; } else { if (scrollWinHeight > 99) lines_per_page = 99; /* stay below 3 digits */ } if (list != NULL) len = maxLength(list); else if (ws != NULL) len = maxLengthStack(ws); else return(WCD_ERR_LIST); top = 0; bottom = size -1; top = size - lines_per_page; if (top < 0) top = 0; if (bottom < (lines_per_page -1) ) line = scrollWinHeight - bottom; /* screen line nr. where to start printing */ else line = scrollWinHeight - lines_per_page + 1; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); page = bottom / lines_per_page + 1 ; window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); clrscr(); cprintf("\r\n"); if (list != NULL) { if(perfect) cprintf(_("Perfect match for %d directories."),size); else cprintf(_("Wild match for %d directories."),size); } cprintf("\r\n"); cprintf(_("Please choose one ( to abort): ")); fflush(stdout); sprintf(buf,_(" w=up x=down ?=help Page %d/%d "),page,(size -1)/lines_per_page +1); pageoffset = ti.screenwidth - (int)strlen(buf); if (pageoffset < 0) pageoffset = 0; gotoxy (pageoffset, 2); cprintf("%s",buf); gotoxy (OFFSET + n, 3); while ((c != 13 )&&(( c < 'a' ) || ( c > ('a'+scrollWinHeight-1) || ( c > 'v' ) ))) { c = getch(); switch(c) { case 'x': case 'w': case 'z': case ',': /* 1 left */ case '.': /* 1 right */ case 1 : /* Ctrl-A, Home */ case 5 : /* Ctrl-E, End */ case '?': /* Help */ case 0: /* extended key */ if(c==0) extended = getch(); else { switch (c) { case 'w': extended = 73; /* Page Up */ break; case 'x': extended = 81; /* Page Down */ break; case 'z': extended = 81; /* Page Down */ break; case ',': extended = 75; /* Key Left */ break; case '.': extended = 77; /* Key Right */ break; case 1 : extended = 71; /* Home */ break; case 5 : extended = 79; /* End */ break; case '?': extended = 59; /* F1, Help */ break; default : extended = 0; break; } } if ((extended == 73) || /* Page Up */ (extended == 72)) /* Arrow Up */ { window(1,1,ti.screenwidth,scrollWinHeight); if(bottom > (lines_per_page -1)) { bottom = bottom - lines_per_page ; top = top - lines_per_page ; } if (top<0) top = 0; if (bottom < (lines_per_page -1) ) line = scrollWinHeight - bottom; else line = scrollWinHeight - lines_per_page + 1; print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); page = bottom / lines_per_page + 1 ; window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); sprintf(buf,_(" w=up x=down ?=help Page %d/%d "),page,(size -1)/lines_per_page +1); pageoffset = ti.screenwidth - (int)strlen(buf); if (pageoffset < 0) pageoffset = 0; gotoxy (pageoffset, 2); cprintf("%s",buf); gotoxy (OFFSET + n, 3); } /* Page Up */ if ((extended == 81) || /* Page down */ (extended == 80)) /* Arrow down */ { window(1,1,ti.screenwidth,scrollWinHeight); if(bottom < (size - 1)) { bottom = bottom + lines_per_page ; top = bottom - lines_per_page + 1; } if (bottom < (lines_per_page -1) ) line = scrollWinHeight - bottom; else line = scrollWinHeight - lines_per_page + 1; print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); page = bottom / lines_per_page + 1 ; window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); sprintf(buf,_(" w=up x=down ?=help Page %d/%d "),page,(size -1)/lines_per_page +1); pageoffset = ti.screenwidth - (int)strlen(buf); if (pageoffset < 0) pageoffset = 0; gotoxy (pageoffset, 2); cprintf("%s",buf); gotoxy (OFFSET + n, 3); }/* Page down */ if (extended == 75) /* Key Left */ { if (shift > 0) shift--; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); } if (extended == 77) /* Key Right */ { if (shift < len) shift++; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); } if (extended == 71) /* Home */ { shift = 0; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); } if (extended == 79) /* End */ { shift = len - ti.screenwidth/2; if (shift < 0) shift=0; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); } if (extended == 59) /* Help */ { window(1,1,ti.screenwidth,scrollWinHeight); clrscr(); if (scrollWinHeight < 17) { gotoxy(1,1); cprintf(_("Screenheight must be > 20 for help.")); } else { gotoxy(1,1); cprintf(_("w or page up")); cprintf("\r\n"); cprintf(_("x or z or page down")); cprintf("\r\n"); cprintf(_(", or scroll 1 left")); cprintf("\r\n"); cprintf(_(". or scroll 1 right")); cprintf("\r\n"); cprintf(_("< or [ scroll 10 left")); cprintf("\r\n"); cprintf(_("> or ] scroll 10 right")); cprintf("\r\n"); cprintf(_("CTRL-a or scroll to beginning")); cprintf("\r\n"); cprintf(_("CTRL-e or scroll to end")); cprintf("\r\n"); cprintf(_("CTRL-c or abort")); cprintf("\r\n"); cprintf(_(" abort")); cprintf("\r\n"); cprintf(_("Type w or x to quit help.")); cprintf("\r\n"); } } window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); gotoxy (OFFSET + n, 3); break; case '<': case '[': shift -=10; if (shift < 0) shift=0; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); gotoxy (OFFSET + n, 3); break; case ']': case '>': shift +=10; if (shift > len) shift=len; window(1,1,ti.screenwidth,scrollWinHeight); print_list(lines_per_page,line,list, ws, start, top, bottom, use_numbers,shift,ti.screenwidth); window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); gotoxy (OFFSET + n, 3); break; case 8: /* backspace */ window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); if(n>0) n--; number_str[n] = '\0'; gotoxy(OFFSET + n, 3); cprintf(" "); gotoxy(OFFSET + n, 3); break; case 3: /* Control-C */ case 27: /* Escape */ c = 13; i = WCD_ERR_LIST; number_str[0] = '\0'; break; case 13: /* Enter */ c = 13; i = WCD_ERR_LIST; break; default: if (( c >= '0') && ( c <= '9') && (n < WCD_MAX_INPSTR)) /* numbers */ { number_str[n] = (char)c; window (1,scrollWinHeight+1,ti.screenwidth,ti.screenheight); gotoxy (OFFSET + n++, 3); cprintf("%c",(char)c); number_str[n] = '\0'; /* Notice that one has to choose a number from 1 to max 22 */ if (((bottom - top) < 9) /* displayed list is 9 or less matches */ || (n == 2) /* second number typed */ || (c >= '3') /* 3-9 is typed */ || ((c == '2')&&((bottom - top) < 19)) /* displayed list is 19 or less matches */ ) c = 13; /* do an */ } else i=c+top-'a'+1; break; } } window (1,1,ti.screenwidth,ti.screenheight); gotoxy (ti.curx, ti.cury); printf("\n"); if (gtxt ==1) puttext(1,1,ti.screenwidth,ti.screenheight,buffer); if (buffer!=NULL) free(buffer); /* cprintf("window left %2d\r\n",ti.winleft); cprintf("window top %2d\r\n",ti.wintop); cprintf("window right %2d\r\n",ti.winright); cprintf("window bottom %2d\r\n",ti.winbottom); cprintf("attribute %2d\r\n",ti.attribute); cprintf("normal attribute %2d\r\n",ti.normattr); cprintf("current mode %2d\r\n",ti.currmode); cprintf("screen height %2d\r\n",ti.screenheight); cprintf("screen width %2d\r\n",ti.screenwidth); cprintf("current x %2d\r\n",ti.curx); cprintf("current y %2d\r\n",ti.cury); */ if (strcmp(number_str,"") != 0) /* a number was typed */ i=atoi(number_str) + top; if((ws != NULL)&&(list == NULL)) /* stack */ { if (( i <=0)||(i > ws->size)) /* fail */ { return(WCD_ERR_LIST); } else /* succes */ { i = ( i - 1 + start)%(ws->size); ws->current = i; } } return i; } #endif #ifdef WCD_USECURSES struct wcddisplay /* structure with window information */ { WINDOW *scrollWin; int scrollWinHeight; int scrollWinLen; int use_numbers ; int lines_per_page ; /* number of matches to print per page */ int size; /* total number of elements in the list */ int line; /* screen line nr. where to start printing */ int top; /* top match to print */ int bottom; /* bottom match to print */ int shift; /* number of colums horizontal panning */ int start; /* start line in stack, first to print */ int perfect; WINDOW *inputWin; int inputWinLen; char number_str[WCD_MAX_INPSTR]; nameset list; /* normal match list */ WcdStack ws; /* wcd stack list */ } ; struct wcddisplay wcd_display; /*global variable wcd curses windows */ void displayRefresh(int init); #if defined(SIGWINCH) # define CAN_RESIZE 1 #else # define CAN_RESIZE 0 #endif #if CAN_RESIZE /* The most portable way of resizing seems to be * to just rebuild the windows from scratch */ void displayResize() { /* end curses mode */ endwin(); refresh(); /* start curses */ wcd_display.scrollWinHeight = LINES - INPUT_WIN_HEIGHT; wcd_display.lines_per_page = wcd_display.scrollWinHeight; wcd_display.scrollWinLen = COLS; if (wcd_display.use_numbers == 0) { if (wcd_display.scrollWinHeight > SCROLL_WIN_HEIGHT) wcd_display.lines_per_page = SCROLL_WIN_HEIGHT; } else { if (wcd_display.scrollWinHeight > 99) wcd_display.lines_per_page = 99; /* stay below 3 digits */ } /* free resources */ delwin(wcd_display.scrollWin); delwin(wcd_display.inputWin); /* create new windows */ wcd_display.scrollWin = newpad(wcd_display.scrollWinHeight,COLS); if (COLS < INPUT_WIN_LEN) wcd_display.inputWinLen = INPUT_WIN_LEN; else wcd_display.inputWinLen = COLS; wcd_display.inputWin = newpad(INPUT_WIN_HEIGHT,wcd_display.inputWinLen); scrollok(wcd_display.scrollWin, TRUE); refresh(); displayRefresh(1); } void signalSigwinchDisplay (int sig) { displayResize (); signal(SIGWINCH,signalSigwinchDisplay); } #endif void wcd_mvwaddstr(WINDOW *win, int x, int y, char *str) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; size_t i; /* convert to wide characters. i = nr. of characters */ i= mbstowcs(wstr,str,(size_t)DD_MAXPATH); if ( i == (size_t)(-1)) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ mvwaddstr(win, x, y, str); } else { mvwaddwstr(win, x, y, wstr); } #else mvwaddstr(win, x, y, str); #endif } void printLine(WINDOW *win, nameset n, int i, int y, int xoffset, int *use_numbers) { wcd_uchar *s; size_t len; int j, nr_offset; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; int width, c; #endif s = (wcd_uchar *)n->array[i]; if (s != NULL) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) len = MBSTOWCS(wstr,(char *)s,(size_t)DD_MAXPATH); /* number of wide characters */ #else len = strlen((char *)s); #endif if (*use_numbers == 0) nr_offset = 2; else nr_offset = 3; wmove(win,y,(int)nr_offset); #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) if (len == (size_t)(-1)) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ len = strlen((char *)s); for(j=xoffset;(j<(int)len)&&((nr_offset+j-xoffset)<(COLS-1));j++) { waddch(win,(chtype)s[j]); } } else { c = 0; /* count characters with width > 0 from beginning of string. */ j = 0; while ((j<(int)len)&&(c= 0xdc00) && (wstr[j] < 0xe000)) wstr[j] = ' '; #endif while ((j<(int)len)&&(wcd_wcwidth(wstr[j]) == 0 )) /* Skip combining characters */ j++; width = wcd_wcwidth(wstr[j]); while ((j<(int)len)&&((nr_offset+width)<(COLS-1))) { waddnwstr(win,wstr+j,1); j++; width = width + wcd_wcwidth(wstr[j]); } } #else for(j=xoffset;(j<(int)len)&&((nr_offset+j-xoffset)<(COLS-1));j++) { waddch(win,(chtype)s[j]); } #endif } } void printStackLine(WINDOW *win, WcdStack ws, int i, int y, int xoffset, int *use_numbers) { wcd_uchar *s; size_t len; int j, nr_offset; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; int width, c; #endif s = (wcd_uchar *)ws->dir[i]; if (s != NULL) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) len = MBSTOWCS(wstr,(char *)s,(size_t)DD_MAXPATH); /* number of wide characters */ #else len = strlen((char *)s); #endif if (*use_numbers == 0) nr_offset = 2; else nr_offset = 3; wmove(win,y,nr_offset); #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) if (len == (size_t)(-1)) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ len = strlen((char *)s); for(j=xoffset;(j<(int)len)&&((nr_offset+j-xoffset)<(COLS-1));j++) { waddch(win,(chtype)s[j]); } if ((i == ws->current) && ((nr_offset+j-xoffset+2)<(COLS-1))) wprintw(win," *"); } else { c = 0; /* count characters with width > 0 from beginning of string. */ j = 0; while ((j<(int)len)&&(c= 0xdc00) && (wstr[j] < 0xe000)) wstr[j] = ' '; #endif while ((j<(int)len)&&(wcd_wcwidth(wstr[j]) == 0 )) /* Skip combining characters */ j++; width = wcd_wcwidth(wstr[j]); while ((j<(int)len)&&((nr_offset+width)<(COLS-1))) { waddnwstr(win,wstr+j,1); j++; width = width + wcd_wcwidth(wstr[j]); } if ((i == ws->current) && ((nr_offset+width-wcd_wcwidth(wstr[j])+2)<(COLS-1))) wprintw(win," *"); } #else for(j=xoffset;(j<(int)len)&&((nr_offset+j-xoffset)<(COLS-1));j++) { waddch(win,(chtype)s[j]); } if ((i == ws->current) && ((nr_offset+j-xoffset+2)<(COLS-1))) wprintw(win," *"); #endif } } /**************************************************/ void print_list_normal(WINDOW *scrollWin, int lines_per_page,int line, nameset list, int top, int bottom, int use_numbers, int xoffset) { int i; for (i=top;i<=bottom;i++) { if (use_numbers == 0) mvwprintw(scrollWin,line,0,"%c ",(char)(((i-top)%lines_per_page) + 'a')); else mvwprintw(scrollWin,line,0,"%2d ",((i-top)%lines_per_page) + 1); printLine(scrollWin, list, i, line, xoffset, &use_numbers); line++; } } /**************************************************/ void print_list_stack(WINDOW *scrollWin, int lines_per_page,int line, WcdStack ws, int start, int top, int bottom, int use_numbers, int xoffset) { int i,j; if (use_numbers == 0) { for (i=top;i<=bottom;i++) { j = (i + start)%(int)(ws->size); mvwprintw(scrollWin,line,0,"%c ",(char)(((i-top)%lines_per_page) + 'a')); printStackLine(scrollWin, ws, j, line, xoffset, &use_numbers); line++; } } else { for (i=top;i<=bottom;i++) { j = (i + start)%(int)(ws->size); /* mvwprintw(scrollWin,line,0,"%d %s",i + 1,ws->dir[j]); */ mvwprintw(scrollWin,line,0,"%2d ",(i-top)%lines_per_page + 1); printStackLine(scrollWin, ws, j, line, xoffset, &use_numbers); line++; } } } void print_list(WINDOW *scrollWin, int lines_per_page,int line, nameset list, WcdStack ws, int start, int top, int bottom, int use_numbers, int xoffset) { werase(scrollWin); if (list != NULL) print_list_normal(scrollWin,lines_per_page,line,list,top,bottom,use_numbers,xoffset); else if (ws != NULL) print_list_stack(scrollWin,lines_per_page,line,ws,start,top,bottom,use_numbers,xoffset); } /* ****************************************************************** */ /* upper left corner is (0,0) */ /* ****************************************************************** */ void displayRefresh(int init) { int page, pageoffset, offset, n; char buf[WCD_MAX_INPSTR]; werase(wcd_display.scrollWin); werase(wcd_display.inputWin); if (init || (wcd_display.bottom >= wcd_display.size) || (wcd_display.size <= wcd_display.lines_per_page)) { /* initialise bottom only first time || bottom overshoots || complete list fits in page. */ if ( (wcd_display.bottom < 0) || (wcd_display.bottom >= wcd_display.size) || (wcd_display.size <= wcd_display.lines_per_page)) wcd_display.bottom = wcd_display.size -1; /* lowest match to print */ wcd_display.top = wcd_display.bottom - wcd_display.lines_per_page + 1; /* top match to print */ if (wcd_display.top < 0) wcd_display.top = 0; if (wcd_display.bottom < (wcd_display.lines_per_page -1) ) wcd_display.line = wcd_display.scrollWinHeight - wcd_display.bottom - 1; /* screen line nr. where to start printing */ else wcd_display.line = wcd_display.scrollWinHeight - wcd_display.lines_per_page; } print_list(wcd_display.scrollWin,wcd_display.lines_per_page,wcd_display.line,wcd_display.list,wcd_display.ws,wcd_display.start,wcd_display.top,wcd_display.bottom,wcd_display.use_numbers,wcd_display.shift); if (wcd_display.list != NULL) { wmove (wcd_display.inputWin, 1, 0); if(wcd_display.perfect) wprintw(wcd_display.inputWin,_("Perfect match for %d directories."),wcd_display.size); else wprintw(wcd_display.inputWin,_("Wild match for %d directories."),wcd_display.size); } page = wcd_display.bottom / wcd_display.lines_per_page + 1 ; sprintf(buf,_(" w=up x=down ?=help Page %d/%d "),page,(wcd_display.size -1)/wcd_display.lines_per_page +1); pageoffset = COLS - (int)str_columns(buf); if (pageoffset < 0) pageoffset = 0; wmove (wcd_display.inputWin, 0, pageoffset); wprintw(wcd_display.inputWin,"%s",buf); sprintf(buf,_("Please choose one ( to abort): ")); wcd_mvwaddstr(wcd_display.inputWin,2,0,buf); offset = (int)str_columns(buf) ; wmove (wcd_display.inputWin, 2, offset); waddstr(wcd_display.inputWin, wcd_display.number_str); n = (int)str_columns(wcd_display.number_str) ; wmove (wcd_display.inputWin, 2, offset + n); prefresh(wcd_display.scrollWin,0,0,0,0,wcd_display.scrollWinHeight-1,COLS-1); prefresh(wcd_display.inputWin,0,0,wcd_display.scrollWinHeight,0,wcd_display.scrollWinHeight+INPUT_WIN_HEIGHT-1,COLS-1); } void displayHelp(WINDOW *win, int height) { werase(win); if (height < 17) wcd_mvwaddstr(win,0,0,_("Screenheight must be > 20 for help.")); else { wcd_mvwaddstr(win, 0,0,_("w or page up")); wcd_mvwaddstr(win, 1,0,_("x or z or page down")); wcd_mvwaddstr(win, 2,0,_(", or scroll 1 left")); wcd_mvwaddstr(win, 3,0,_(". or scroll 1 right")); wcd_mvwaddstr(win, 4,0,_("< or [ scroll 10 left")); wcd_mvwaddstr(win, 5,0,_("> or ] scroll 10 right")); wcd_mvwaddstr(win, 6,0,_("CTRL-a or scroll to beginning")); wcd_mvwaddstr(win, 7,0,_("CTRL-e or scroll to end")); wcd_mvwaddstr(win, 8,0,_("CTRL-c or abort")); wcd_mvwaddstr(win, 9,0,_(" abort")); wcd_mvwaddstr(win,11,0,_("Press any key.")); } prefresh(win,0,0,0,0,height-1,COLS-1); getch(); } #define Key_CTRL(x) ((x) & 31) int display_list_curses(nameset list, WcdStack ws, int perfect,int use_numbers) { int i, n=0, c=0; int displayed_list; size_t len ; #ifndef __PDCURSES__ SCREEN *sp; #endif #if CAN_RESIZE signal (SIGWINCH, signalSigwinchDisplay); #endif /* Notice that list->size > 1 when this function is called. */ wcd_display.shift = 0; wcd_display.start = 0; wcd_display.perfect = perfect; wcd_display.bottom = -1; if (list != NULL) /* normal list */ { sort_list(list); wcd_display.size = (int)list->size; } else if (ws != NULL) /* stack */ { if( ((int)(ws->size) == 0) || ((int)(ws->size) > ws->maxsize) ) return(WCD_ERR_LIST); /* in case stack file was corrupt */ else { wcd_display.size = (int)ws->size; if ((int)ws->size < ws->maxsize) wcd_display.start = 0; else wcd_display.start = ws->lastadded + 1; if (ws->lastadded >= ws->maxsize) wcd_display.start = 0; } } else return(WCD_ERR_LIST); /* no list or stack */ i= WCD_ERR_LIST; wcd_display.number_str[n] = '\0'; /* Older versions of PDCurses and ncurses < 5.9.20120922 do not * support newterm() on Windows */ #if defined(__PDCURSES__) || (defined(_WIN32) && !defined(__CYGWIN__)) initscr(); #else sp = newterm(NULL,stdout,stdin); if (sp == NULL) { print_error("%s", _("Error opening terminal, falling back to stdout interface.\n")); return WCD_ERR_CURSES; } #endif keypad(stdscr, TRUE); intrflush(stdscr, FALSE); cbreak(); noecho(); nonl(); scrollok(stdscr, TRUE); /* enable scrolling */ wcd_display.use_numbers = use_numbers; wcd_display.list = list; wcd_display.ws = ws; if (LINES < 4) { endwin(); #ifdef XCURSES XCursesExit(); #endif print_error("%s", _("screen height must be larger than 3 lines.\n")); return WCD_ERR_CURSES; } wcd_display.scrollWinHeight = LINES - INPUT_WIN_HEIGHT; wcd_display.lines_per_page = wcd_display.scrollWinHeight; if (wcd_display.use_numbers == 0) { if (wcd_display.scrollWinHeight > SCROLL_WIN_HEIGHT) wcd_display.lines_per_page = SCROLL_WIN_HEIGHT; } else { if (wcd_display.scrollWinHeight > 99) wcd_display.lines_per_page = 99; /* stay below 3 digits */ } if (list != NULL) len = maxLength(list); else if (ws != NULL) len = maxLengthStack(ws); else return(WCD_ERR_LIST); refresh(); wcd_display.scrollWin = newpad(wcd_display.scrollWinHeight,COLS); if (wcd_display.scrollWin == NULL) { endwin(); #ifdef XCURSES XCursesExit(); #endif print_error("%s", _("error creating scroll window.\n")); return WCD_ERR_CURSES; } scrollok(wcd_display.scrollWin, TRUE); if (COLS < INPUT_WIN_LEN) wcd_display.inputWinLen = INPUT_WIN_LEN; else wcd_display.inputWinLen = COLS; wcd_display.inputWin = newpad(INPUT_WIN_HEIGHT,wcd_display.inputWinLen); if (wcd_display.inputWin == NULL) { endwin(); #ifdef XCURSES XCursesExit(); #endif print_error("%s", _("error creating input window.\n")); return WCD_ERR_CURSES; } scrollok(wcd_display.inputWin, TRUE); displayRefresh(1); while ((c != 13 )&&(( c < 'a' ) || ( c > ('a'+wcd_display.scrollWinHeight-1) || ( c > 'v' ) ))) { c = getch(); switch(c) { case 'w': case KEY_UP: /* Arrow Up */ case KEY_PPAGE: /* Page Up */ if(wcd_display.bottom > (wcd_display.lines_per_page -1)) { wcd_display.bottom = wcd_display.bottom - wcd_display.lines_per_page ; wcd_display.top = wcd_display.top - wcd_display.lines_per_page ; } if (wcd_display.top<0) wcd_display.top = 0; if (wcd_display.bottom < (wcd_display.lines_per_page -1) ) wcd_display.line = wcd_display.scrollWinHeight - wcd_display.bottom - 1; else wcd_display.line = wcd_display.scrollWinHeight - wcd_display.lines_per_page; break; case 'x': case 'z': case KEY_DOWN: /* Arrow down */ case KEY_NPAGE: /* Page down */ if(wcd_display.bottom < (wcd_display.size - 1)) { wcd_display.bottom = wcd_display.bottom + wcd_display.lines_per_page ; wcd_display.top = wcd_display.bottom - wcd_display.lines_per_page + 1; } if (wcd_display.bottom < (wcd_display.lines_per_page -1) ) wcd_display.line = wcd_display.scrollWinHeight - wcd_display.bottom - 1; else wcd_display.line = wcd_display.scrollWinHeight - wcd_display.lines_per_page; break; case ',': case KEY_LEFT: if (wcd_display.shift > 0) wcd_display.shift--; break; case '.': case KEY_RIGHT: if (wcd_display.shift < (int)len) wcd_display.shift++; break; case '<': case '[': wcd_display.shift -=10; if (wcd_display.shift < 0) wcd_display.shift=0; break; case ']': case '>': wcd_display.shift +=10; if (wcd_display.shift > (int)len) wcd_display.shift=(int)len; break; case Key_CTRL ('a'): case KEY_HOME: wcd_display.shift = 0; break; case Key_CTRL ('e'): #ifdef KEY_END case KEY_END: #endif wcd_display.shift = (int)len - COLS/2; if (wcd_display.shift < 0) wcd_display.shift=0; break; case KEY_F (1): case '?': displayHelp(wcd_display.scrollWin, wcd_display.scrollWinHeight); break; case 3: /* Control-C */ case 27: /* Escape */ c = 13; i = WCD_ERR_LIST; wcd_display.number_str[0] = '\0'; break; case 13: /* Enter */ case KEY_ENTER: c = 13; i = WCD_ERR_LIST; break; case 8: /* backspace */ case KEY_BACKSPACE: case 127: /* delete */ if(n>0) n--; wcd_display.number_str[n] = '\0'; break; default: if (( c >= '0') && ( c <= '9') && (n < WCD_MAX_INPSTR)) /* numbers */ { wcd_display.number_str[n] = (char)c; n++; wcd_display.number_str[n] = '\0'; displayed_list = wcd_display.bottom - wcd_display.top; /* Notice that one has to choose a number from 1 to max 99 */ if ((displayed_list < 9) /* displayed list is 9 or less matches */ || (n == 2) /* second number typed */ || ((c == '2')&&( displayed_list < 19)) /* displayed list is 19 or less matches */ || ((c == '3')&&( displayed_list < 29)) /* displayed list is 29 or less matches */ || ((c == '4')&&( displayed_list < 39)) /* displayed list is 39 or less matches */ || ((c == '5')&&( displayed_list < 49)) /* displayed list is 49 or less matches */ || ((c == '6')&&( displayed_list < 59)) /* displayed list is 59 or less matches */ || ((c == '7')&&( displayed_list < 69)) /* displayed list is 69 or less matches */ || ((c == '8')&&( displayed_list < 79)) /* displayed list is 79 or less matches */ || ((c == '9')&&( displayed_list < 89)) /* displayed list is 89 or less matches */ ) c = 13; /* do an */ } else i=c+wcd_display.top-'a'+1; break; } displayRefresh(0); } endwin(); #ifdef XCURSES XCursesExit(); #endif if (strcmp(wcd_display.number_str,"") != 0) /* a number was typed */ i=atoi(wcd_display.number_str) + wcd_display.top; printf("\n"); /* Extra newline for curses, pdcurses and when ncurses doesn't restore screen */ if ((ws != NULL)&&(list == NULL)) /* stack */ { if (( i <=0)||(i > (int)ws->size)) /* fail */ { return(WCD_ERR_LIST); } else /* succes */ { i = ( i - 1 + wcd_display.start)%(int)(ws->size); ws->current = i; } } return i; } #endif /* stdout version */ int display_list_stdout(nameset list,WcdStack ws, int perfect, int use_stdout) { int i; size_t ii; int k, start, j; if (list != NULL) /* normal list */ { sort_list(list); if ( use_stdout & WCD_STDOUT_DUMP ) { for (ii=0;iisize;ii++) wcd_printf("%s\n", list->array[ii]); } else { for (ii=0;iisize;ii++) wcd_printf("%lu %s\n",(unsigned long)(ii+1),list->array[ii]); } if ( use_stdout & WCD_STDOUT_DUMP ) return(WCD_ERR_LIST); else { printf("\n"); if(perfect) printf(_("Perfect match for %d directories."),(int)list->size); else printf(_("Wild match for %d directories."),(int)list->size); printf("\n"); printf(_("Please choose one ( to abort): ")); } return wcd_get_int(); } else if (ws != NULL) /* stack */ { /* printWcdStack("XXX ", ws, stdout); */ if(ws->maxsize <= 0) return (WCD_ERR_LIST); else if( ((ws->size) == 0) || ((ws->size) > (size_t)ws->maxsize) ) return (WCD_ERR_LIST); else { if (ws->size < (size_t)ws->maxsize) start = 0; else start = ws->lastadded + 1; if (ws->lastadded >= ws->maxsize) start = 0; k=1; for(i=0; i < (int)(ws->size) ; i++) { j = (i + start)%(int)(ws->size); if ( !(use_stdout & WCD_STDOUT_DUMP) ) printf("%2d ",k); k++; wcd_printf("%s",ws->dir[j]); if (j == ws->current) printf(" *"); printf("\n"); } if ( use_stdout & WCD_STDOUT_DUMP ) return(WCD_ERR_LIST); printf("\n"); printf(_("Please choose one ( to abort): ")); i = wcd_get_int(); if (( i <=0)||(i > (int)ws->size)) /* fail */ { return(WCD_ERR_LIST); } else /* succes */ { i = ( i - 1 + start)%(int)(ws->size); ws->current = i; return(i); } } } else return WCD_ERR_LIST; } int display_list(nameset list,int perfect, int use_numbers, int use_stdout) { #ifdef WCD_USECONIO if (use_stdout == WCD_STDOUT_NO) return display_list_conio(list,NULL,perfect,use_numbers); else return display_list_stdout(list,NULL,perfect, use_stdout); #else # ifdef WCD_USECURSES int i; if ((use_stdout == WCD_STDOUT_NO) && ((i = display_list_curses(list,NULL,perfect,use_numbers)) != WCD_ERR_CURSES)) return i; else return display_list_stdout(list,NULL,perfect, use_stdout); # else return display_list_stdout(list,NULL,perfect, use_stdout); # endif #endif } wcd-5.2.5/src/dosdir.h0000664000175000017500000002046512337451362014757 0ustar waterlanwaterlan/* dosdir.h Defines structures, macros, and functions for dealing with directories and pathnames. Copyright (C) 1994 Jason Mathews This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, see the file COPYING. Modification history: V1.0 13-May-94, J Mathews Original version. V1.1 8-Jun-94, J Mathews Added VMS definitions, added dd_ prefix to functions/constants. Jun 23 1998, Erwin Waterlander, DJGPP compatibilty Oct 28 1999, Erwin Waterlander, update for WIN32 console appl. Jan 3 2000, Erwin Waterlander, update for Mingw32 compiler. Jul 14 2008, Erwin Waterlander, update for OS/2. Aug 2012, Major cleanup macros: * Use only C99 predefined macros. * Use __MSDOS__ only when it's real for MS-DOS. * UNIX is not defined on OS/2 EMX (fixed tailor.h, UNIX got defined, because _BSD_SOURCE is defined with EMX (GCC on OS/2)). * Make it compile with Watcom C for OS/2. * Borland C and LCC may have been broken, because these are not supported anymore. Erwin Waterlander */ #ifndef _DOSDIR_H #define _DOSDIR_H /* Set up portability */ #include #include "tailor.h" #include "wcd.h" #ifdef _MSC_VER typedef unsigned int mode_t; #endif /* intptr_t is new since C99. An integer type capable of holding a pointer. When you use an older C standard your compiler may still support intptr_t. Older compilers may not support it. */ #ifdef _WIN64 typedef intptr_t wcd_intptr_t; #else typedef int wcd_intptr_t; #endif #ifdef __MSDOS__ # include # ifdef __TURBOC__ # include # else # include # endif # define ALL_FILES_MASK "*.*" # define DIR_PARENT ".." # define DIR_END '\\' #elif defined(_WIN32) # ifdef __WATCOMC__ # include /* Watcom C does not have _getdrives(). We use the dos functions. */ # endif # include # include # ifdef WCD_UTF16 # define ALL_FILES_MASK L"*.*" # else # define ALL_FILES_MASK "*.*" # endif # define DIR_PARENT ".." # define DIR_END '\\' #elif (defined(__OS2__) && !defined(__EMX__)) # include # include # define INCL_DOSFILEMGR # include # define ALL_FILES_MASK "*" # define DIR_PARENT ".." # define DIR_END '\\' #elif defined(VMS) # include # define ALL_FILES_MASK "*.*" # define DIR_PARENT "[-]" # define DIR_END ']' #else /* ?UNIX or EMX */ # ifdef __OS2__ # define INCL_DOSFILEMGR # include # define ALL_FILES_MASK "*" # define DIR_END '\\' # else # define ALL_FILES_MASK "*" # define DIR_END '/' # endif # include # include # define DIR_PARENT ".." #endif /* ?__TURBOC__ */ /* MS-DOS flags equivalent to "dos.h" file attribute definitions */ #define DD_NORMAL 0x00 /* Normal file, no attributes */ #define DD_RDONLY 0x01 /* Read only attribute */ #define DD_HIDDEN 0x02 /* Hidden file */ #define DD_SYSTEM 0x04 /* System file */ #define DD_LABEL 0x08 /* Volume label */ #define DD_DIREC 0x10 /* Directory */ #define DD_ARCH 0x20 /* Archive */ #define DD_DEVICE 0x40 /* Device */ #define DD_DOSATTRIBS 0x3f /* DOS ATTRIBUTE MASK */ /* * note that all DOS file attributes defined above do not overlap the * DOS stat definitions, but will conflict will non-DOS machines, so * use following macros to access the flags instead. */ #define DD_ISNORMAL(m) ((m) & S_IFREG) #if defined(__MSDOS__) || defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # define DD_ISRDONLY(m) ((m) & DD_RDONLY) # define DD_ISHIDDEN(m) ((m) & DD_HIDDEN) # define DD_ISSYSTEM(m) ((m) & DD_SYSTEM) # define DD_ISLABEL(m) ((m) & DD_LABEL) # define DD_ISDIREC(m) ((m) & (DD_DIREC | S_IFDIR)) # define DD_ISARCH(m) ((m) & DD_ARCH) #else # define DD_ISRDONLY(m) !((m) & S_IWRITE) # define DD_ISHIDDEN(m) (0) # define DD_ISSYSTEM(m) (0) # define DD_ISLABEL(m) (0) # define DD_ISDIREC(m) ((m) & S_IFDIR) # define DD_ISARCH(m) (0) #endif /* ?__MSDOS__ */ #if (defined(UNIX) || defined(VMS) || defined(__EMX__)) # include # ifndef ENOENT # define ENOENT -1 # endif # ifndef ENMFILE # define ENMFILE ENOENT # endif #endif /* ?UNIX/VMS */ /* flags used by fnsplit */ #ifndef __TURBOC__ # define WILDCARDS 0x01 # define EXTENSION 0x02 # define FILENAME 0x04 # define DIRECTORY 0x08 # define DRIVE 0x10 #endif /* definitions and types corresponding to those in dir.h */ #include /* for time_t definition */ #if defined(__GO32__) || defined(_WIN32) || defined(__OS2__) || defined(__386__) /* flat memory, _long_ directory names */ # define __FLAT__ 1 #endif /* MAXPATH MAXDIR MAXFILE MAXEXT Borland DOS16 80 66 9 5 Watcom DOS16 144 130 9 5 Watcom DOS32 144 130 9 5 DJGPP DOS32 260 256 256 256 * WIN32 260 256 256 256 */ #if defined(__MSDOS__) || defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # define DD_MAXDRIVE 3 # ifndef __FLAT__ /* DOS 16 bit */ # define DD_MAXPATH 80 # define DD_MAXDIR 66 # define DD_MAXFILE 16 # define DD_MAXEXT 10 /* allow for wildcards .[ch]*, .etc */ # else /* DOS 32 bit or Windows */ /* Big values to be able to read treedata files of Unix network drives */ # define DD_MAXPATH 1028 # define DD_MAXDIR 1024 # define DD_MAXFILE 256 # define DD_MAXEXT 256 # endif /* ?__FLAT__ */ # if defined(__TURBOC__) || defined(_MSC_VER) typedef long off_t; # endif # ifdef __TURBOC__ typedef short mode_t; # endif /* ?__TURBOC__ */ #elif defined(VMS) # define DD_MAXPATH NAM$C_MAXRSS # define DD_MAXDRIVE 1 # define DD_MAXDIR NAM$C_MAXRSS # define DD_MAXFILE 80 # define DD_MAXEXT 32 typedef unsigned short mode_t; #else /* ?unix or EMX */ /* * DD_MAXPATH defines the longest permissable path length, * including the terminating null. It should be set high * enough to allow all legitimate uses, but halt infinite loops * reasonably quickly. */ # define DD_MAXPATH 1024 # define DD_MAXDIR 1024 # define DD_MAXFILE 255 # ifdef __OS2__ # define DD_MAXDRIVE 3 # define DD_MAXEXT 256 # else # define DD_MAXDRIVE 1 # define DD_MAXEXT 1 # endif typedef struct dirent DIR_ENT; #endif /* ?__MSDOS__ */ typedef struct { #ifdef WCD_UTF16 /* We need a buffer, because we convert the UTF-16 wide character * name to an UTF-8 multi-byte string. */ char dd_name[DD_MAXPATH]; /* File name */ #else char* dd_name; /* File name */ #endif time_t dd_time; /* File time stamp */ off_t dd_size; /* File length */ mode_t dd_mode; /* Attributes of file */ /* Below is private (machine specific) data, which should * only be accessed by dosdir modules. */ #if defined(__MSDOS__) || defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # ifdef __TURBOC__ struct ffblk dos_fb; # elif defined(_WIN32) || (defined(__OS2__) && !defined(__EMX__)) # ifdef WCD_UTF16 struct _wfinddata_t dos_fb; # else struct _finddata_t dos_fb; # endif wcd_intptr_t nHandle; char dd_attribs; # else /* ?MSC */ struct find_t dos_fb; # endif /* ?TURBOC */ #elif defined (VMS) struct FAB fab; struct NAM nam; char rms_filespec[DD_MAXPATH]; char esa[DD_MAXPATH]; char rsa[DD_MAXPATH]; char path[DD_MAXPATH]; char* filespec; char dd_attribs; #else /* ?unix */ DIR* dd_dirp; /* Directory ptr */ DIR_ENT* dd_dp; /* Directory entry */ char dd_attribs; /* File search attributes */ char dd_filespec[DD_MAXFILE]; /* File search mask */ #endif /* ?__MSDOS__ */ } dd_ffblk; #ifdef __cplusplus extern "C" { #endif wcd_intptr_t dd_findfirst(const wcd_char *path, dd_ffblk *fb, int attrib); wcd_intptr_t dd_findnext(dd_ffblk *fb); int dd_fnsplit(const char *path, char * drive, char * dir, char * name, char * ext); #ifndef __TURBOC__ int getdisk(void); int setdisk(int drive); #endif /* ?!__TURBOC__ */ #ifdef __cplusplus } #endif #ifdef WCD_UTF16 extern struct _stat dd_sstat; #else extern struct stat dd_sstat; #endif #endif /* _DOSDIR_H */ wcd-5.2.5/src/wfixpath.h0000664000175000017500000000016511634627213015317 0ustar waterlanwaterlan#ifndef _WFIXPATH_H_ #define _WFIXPATH_H_ int wcd_is_slash(int c); void wcd_fixpath(char *in, size_t lim) ; #endif wcd-5.2.5/src/colors.h0000664000175000017500000000245012066325113014757 0ustar waterlanwaterlan/*------------------------------------------------------------------*\ | This source code is copied from PDCurses 3.1 demos\tui.c and tui.h | | | | Author : P.J. Kunst | | Date : 25-02-93 | | colors.h is in the public domain | | | | | | Billy Chen 12:49 Monday, 4 June, 2007 | \*------------------------------------------------------------------*/ #ifdef A_COLOR # define MENU_COLOR (2 | A_BOLD) # define MENU_SELECT (4 | A_BOLD) # define BODY_COLOR 6 #else # define MENU_COLOR (A_BOLD) # define MENU_SELECT (A_BOLD) # define BODY_COLOR 0 #endif #ifdef A_COLOR #define A_ATTR (A_ATTRIBUTES ^ A_COLOR) /* A_BLINK, A_REVERSE, A_BOLD */ #else #define A_ATTR (A_ATTRIBUTES) /* standard UNIX attributes */ #endif #define MAXSTRLEN 256 #define KEY_ESC 0x1b /* Escape */ void initcolor (void); void setcolor (WINDOW *, chtype color); void colorbox (WINDOW *, chtype color, int hasbox); wcd-5.2.5/src/etc/0000775000175000017500000000000012345660655014074 5ustar waterlanwaterlanwcd-5.2.5/src/etc/profile.d/0000775000175000017500000000000012345660655015756 5ustar waterlanwaterlanwcd-5.2.5/src/etc/profile.d/wcd.sh0000775000175000017500000000243311573330052017057 0ustar waterlanwaterlan# Copyright # # Copyright (C) 2011 Erwin Waterlander # Copyright (C) 2009-2011 Jari Aalto # # License # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Description # # Define a shell alias for wcd(1), which itself change # directories, so it must be done in a shell alias. # # This file is in /etc/profile.d/ and it should be sourced from # a shell startup file: ~/.rc ##if [ -z "$WCDHOME" ] ##then ## export WCDHOME="$HOME/.wcd" ##fi wcd () { go="${WCDHOME:-${HOME}}/bin/wcd.go" rm -f "$go" 2> /dev/null BINDIR/PROGRAM "$@" [ -f "$go" ] && . "$go" unset go } # End of file wcd-5.2.5/src/etc/profile.d/wcd.csh0000775000175000017500000000245311573237124017232 0ustar waterlanwaterlan# Copyright # # Copyright (C) 2011 Erwin Waterlander # # License # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Description # # Define a shell alias for wcd(1), which itself change # directories, so it must be done in a shell alias. # # This file is in /etc/profile.d/ and it should be sourced from # a shell startup file: ~/.rc ##if ( ! ${?WCDHOME} ) then ## setenv WCDHOME "$HOME/.wcd" ##endif if ( ${?WCDHOME} ) then alias wcd "rm -f $WCDHOME/bin/wcd.go ; BINDIR/PROGRAM \!* ; source $WCDHOME/bin/wcd.go" else alias wcd "rm -f $HOME/bin/wcd.go ; BINDIR/PROGRAM \!* ; source $HOME/bin/wcd.go" endif # End of file wcd-5.2.5/src/graphics.c0000664000175000017500000021232512276236747015276 0ustar waterlanwaterlan/* Copyright (C) 2000-2013 Erwin Waterlander Ideas and source code of NCD (Ninux Czo Directory) have been used in the WCD graphical interface. Ninux Change Directory Copyright (C) 1995 Borja Etxebarria or http://www.ibiblio.org/pub/Linux/utils/shell/ncd-0.9.8.tgz Additions on NCD were made by Olivier Sirol (Czo) Ninux Czo Directory Copyright (C) 1995 Borja Etxebarria Copyright (C) 1996 Olivier Sirol Olivier Sirol http://www.ibiblio.org/pub/Linux/utils/file/managers/ncd1_205.tgz This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #if defined(WCD_UNICODE) || (defined(_WIN32) && !defined(__CYGWIN__)) #ifndef __USE_XOPEN #define __USE_XOPEN #endif #include #include "wcwidth.h" /* Marcus Kuhn's wcwidth implementation */ #endif #include "std_macr.h" #include "structur.h" #include "nameset.h" #include "Text.h" #include "Error.h" #include "dirnode.h" #include "graphics.h" #include "wcd.h" #include "dosdir.h" #include "display.h" #include "wfixpath.h" #include "match.h" #ifdef WCD_UNICODE # include "matchw.h" #else # include "matchl.h" #endif #include "config.h" #ifdef WCD_USECURSES #include "colors.h" /* add colors for the tree on MS platform */ #endif /* * The following codes are below 20 and don't interfere with 8 bit normal * characters. They will also not interfere with UTF-8 encoded characters, * because All UCS characters >U+007F are encoded as a sequence of several * bytes, each of which has the most significant bit set. No ASCII byte * (0x00-0x7F) can appear as part of any other UTF-8 encode character. */ # define WCD_ACS_HL 1 /* line art codes */ # define WCD_ACS_VL 2 # define WCD_ACS_LT 3 # define WCD_ACS_LLC 4 # define WCD_ACS_TT 5 # define WCD_SEL_ON 6 /* selection on/off codes */ # define WCD_SEL_OFF 7 # define WCD_SPACE 8 /* double width space in CJK mode */ #ifdef ASCII_TREE static const char WCD_ONESUBDIR[] = "---" ; static const char WCD_SPLITDIR[] = "-+-" ; static const char WCD_SUBDIR[] = " |-" ; static const char WCD_MOREDIR[] = " | " ; static const char WCD_ENDDIR[] = " `-" ; static const char WCD_OVERDIR[] = " " ; static const char WCD_COMPACT_SUBDIR[] = " |--" ; static const char WCD_COMPACT_MOREDIR[] = " | " ; static const char WCD_COMPACT_ENDDIR[] = " `--" ; #else static const char WCD_ONESUBDIR[] = { WCD_ACS_HL, WCD_ACS_HL, WCD_ACS_HL, 0} ; static const char WCD_SPLITDIR[] = { WCD_ACS_HL, WCD_ACS_TT, WCD_ACS_HL, 0} ; static const char WCD_SUBDIR[] = { 32, WCD_SPACE, WCD_ACS_LT, WCD_ACS_HL, 0} ; static const char WCD_MOREDIR[] = { 32, WCD_SPACE, WCD_ACS_VL, WCD_SPACE, 32, 0} ; static const char WCD_ENDDIR[] = { 32, WCD_SPACE, WCD_ACS_LLC, WCD_ACS_HL, 0} ; static const char WCD_OVERDIR[] = { 32, WCD_SPACE, WCD_SPACE, WCD_SPACE, 32, 0} ; static const char WCD_COMPACT_SUBDIR[] = { 32, WCD_ACS_LT, WCD_ACS_HL, WCD_ACS_HL, 0} ; static const char WCD_COMPACT_MOREDIR[] = { 32, WCD_ACS_VL, WCD_SPACE, WCD_SPACE, 0} ; static const char WCD_COMPACT_ENDDIR[] = { 32, WCD_ACS_LLC, WCD_ACS_HL, WCD_ACS_HL, 0} ; #endif #define WCD_GRAPH_MAX_LINE_LENGTH DD_MAXPATH * 2 #ifdef WCD_USECURSES struct wcdwin /* structure with window information */ { WINDOW *scrollWin; int scrollWinHeight; int scrollWinLen; WINDOW *inputWin; dirnode curNode; char str[WCD_MAX_INPSTR]; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) wchar_t wstr[WCD_MAX_INPSTR]; #endif int mode; int graphics_mode; dirnode zoomStack; } ; struct wcdwin wcd_cwin; /*global variable wcd curses windows */ void dataRefresh(int ydiff, int init); #if defined(SIGWINCH) # define CAN_RESIZE 1 #else # define CAN_RESIZE 0 #endif #if CAN_RESIZE /* The most portable way of resizing seems to be * to just rebuild the windows from scratch */ void ioResize() { /* end curses mode */ endwin(); refresh(); /* start curses */ wcd_cwin.scrollWinHeight = LINES - INPUT_WIN_HEIGHT; wcd_cwin.scrollWinLen = COLS; /* free resources */ delwin(wcd_cwin.scrollWin); delwin(wcd_cwin.inputWin); /* create new windows */ wcd_cwin.scrollWin = newpad(wcd_cwin.scrollWinHeight,COLS); wcd_cwin.inputWin = newpad(INPUT_WIN_HEIGHT,COLS); if (wcd_cwin.graphics_mode & WCD_GRAPH_COLOR) { colorbox (wcd_cwin.scrollWin, MENU_COLOR, 0); /* BillyC add colors */ colorbox (wcd_cwin.inputWin, BODY_COLOR, 0); /* BillyC add colors */ } scrollok(wcd_cwin.scrollWin, TRUE); refresh(); dataRefresh(0, 1); } void signalSigwinch (int sig) { ioResize (); signal(SIGWINCH,signalSigwinch); } #endif #endif /* WCD_USECURSES */ /***************************************************************** * * dirHasSubdirs() * Wrapper for API dirnodeHasSubdirs() * When directory is folded it looks like there are no subdirectories. * *************************************************************** */ c3po_bool dirHasSubdirs(dirnode d) { if (dirnodeFold(d) eq true) return false; else return dirnodeHasSubdirs(d); } char* getCompactTreeLine(dirnode d, int y, int *y_orig, char *line, char *tline) { dirnode n; if (dirnodeHasParent(d) eq false) return(line); if (y == *y_orig) { if (dirnodeGetDown(d) == NULL) strcpy(tline,WCD_COMPACT_ENDDIR); else strcpy(tline,WCD_COMPACT_SUBDIR); if (d->fold eq true) tline[strlen(tline)-1] = '+'; } else { if (dirnodeGetDown(d) == NULL) strcpy(tline," "); else strcpy(tline,WCD_COMPACT_MOREDIR); } strcat(tline,line); strcpy(line,tline); n = dirnodeGetParent(d); return(getCompactTreeLine(n,dirnodeGetY(n),y_orig, line, tline)); } /* this function is called by other functions only on directories that are last * on a line */ char* getTreeLine(dirnode d, int y, int *y_orig, dirnode curNode, c3po_bool fold, const int *graphics_mode) { static text line = NULL; static text tline = NULL; dirnode n; size_t i,len,clen; if (d == NULL) return(NULL); len = strlen(dirnodeGetName(d)); /* nr. of bytes */ clen = str_columns(dirnodeGetName(d)); /* nr. of columns */ if (line == NULL) { line = textNewSize((size_t)WCD_GRAPH_MAX_LINE_LENGTH); line[0] = '\0'; } if (tline == NULL) { tline = textNewSize((size_t)WCD_GRAPH_MAX_LINE_LENGTH); tline[0] = '\0'; } if (*graphics_mode & WCD_GRAPH_COMPACT) /* compact tree */ { strcpy(tline," "); if (d == curNode) tline[strlen (tline) - 1] = WCD_SEL_ON; strcat(tline,dirnodeGetName(d)); strcat(tline," "); if (d == curNode) tline[strlen (tline) - 1] = WCD_SEL_OFF; strcpy(line,tline); getCompactTreeLine(d,dirnodeGetY(d),y_orig, line, tline); return line; } /* buffer overflow prevention: * * The max length of `line' and `tline' is the length of `line' increased * by the namelength of the dirnode and at most 8 characters */ if ((strlen(line) + len + 8) > WCD_GRAPH_MAX_LINE_LENGTH) { sprintf(line,_("Wcd: error: path too long")); return(line); } if (dirHasSubdirs(d) eq true) { if(getSizeOfDirnode(d) == 1) { if (dirnodeGetY(d) == *y_orig) { strcpy(tline," "); if (d == curNode) tline[strlen (tline) - 1] = WCD_SEL_ON; strcat(tline,dirnodeGetName(d)); strcat(tline," "); if (d == curNode) tline[strlen (tline) - 1] = WCD_SEL_OFF; strcat(tline,WCD_ONESUBDIR); n = elementAtDirnode((size_t)0,d); if (fold eq true) tline[strlen(tline)-1] = '+'; } else { for (i=0;ifold, graphics_mode)); } if (*y_orig != 0) { strcpy(tline," "); strcat(tline,line); strcpy(line,tline); } return line; } void dumpTreeLine(dirnode d, const int *graphics_mode) { int y; char *l; y = dirnodeGetY(d); l = getTreeLine(d,y,&y,NULL,false, graphics_mode); while ( *l != '\0') { switch(*l) { case WCD_ACS_HL: putc('-', stdout); break; case WCD_ACS_VL: putc('|', stdout); break; case WCD_ACS_LT: putc('|', stdout); break; case WCD_ACS_LLC: putc('`', stdout); break; case WCD_ACS_TT: putc('+', stdout); break; case WCD_SEL_ON: putc('<', stdout); break; case WCD_SEL_OFF: putc('>', stdout); break; case WCD_SPACE: putc(' ', stdout); break; default: putc(*l, stdout); } l++; } printf("\n"); } void dumpTree(dirnode d, const int *graphics_mode) { size_t index, size; dirnode n; index = 0; if (*graphics_mode & WCD_GRAPH_COMPACT) { dumpTreeLine(d, graphics_mode); size = getSizeOfDirnode(d); while(index < size) { n = elementAtDirnode(index,d); dumpTree(n, graphics_mode); index++; } } else if (isEmptyDirnode(d) eq false) { size = getSizeOfDirnode(d); while(index < size) { n = elementAtDirnode(index,d); dumpTree(n, graphics_mode); index++; } } else { dumpTreeLine(d, graphics_mode); } } /* * Set the x,y values of the dirnodes * in the tree */ void setXYTree(dirnode d, const int *graphics_mode) { size_t index, len, size; int x; static int y; dirnode n; if(dirHasSubdirs(d) eq true) { if (*graphics_mode & WCD_GRAPH_COMPACT) /* compact tree */ { len = str_columns(dirnodeGetName(d)); y = dirnodeGetY(d); index = 0; size = getSizeOfDirnode(d); while(index < size) { y = y + 1; n = elementAtDirnode(index,d); #ifndef ASCII_TREE if ((*graphics_mode & WCD_GRAPH_CJK) && !(*graphics_mode & WCD_GRAPH_ASCII)) /* double width line drawing symbols. */ x = dirnodeGetX(d) + 7; else #endif x = dirnodeGetX(d) + 4; dirnodeSetX(x,n); dirnodeSetY(y,n); setXYTree(n, graphics_mode); index++; } } else { len = str_columns(dirnodeGetName(d)); y = dirnodeGetY(d); index = 0; size = getSizeOfDirnode(d); while(index < size) { n = elementAtDirnode(index,d); #ifndef ASCII_TREE if ((*graphics_mode & WCD_GRAPH_CJK) && !(*graphics_mode & WCD_GRAPH_ASCII)) /* double width line drawing symbols. */ x = dirnodeGetX(d) + (int)len + 8; else #endif x = dirnodeGetX(d) + (int)len + 5; dirnodeSetX(x,n); dirnodeSetY(y,n); setXYTree(n, graphics_mode); index++; y = y + 1; } /* y is 1 too large */ y = y - 1; } } } c3po_bool eqTextDirnode(text t, dirnode d) { return(eqText(t,dirnodeGetName(d))); } size_t inDirnode(text t, dirnode d) { size_t index, size; index = 0; if(dirHasSubdirs(d) eq true) { size = getSizeOfDirnode(d); while(index < size) { if (eqTextDirnode(t,elementAtDirnode(index,d)) eq true) return index; index++; } } return (size_t) -1; } void addPath(text path, dirnode d) { char *s; dirnode n,n_up; text t; size_t index; #if (defined(_WIN32) || defined(__CYGWIN__)) static char buf[DD_MAXPATH] = "//" ; if ( (path != NULL) && (*path == '/') && (*(path+1) == '/') ) { s = strtok(path,"/"); if (s != NULL) { buf[2] = '\0'; strcat(buf, s); s = buf; } } else #endif s = strtok(path,"/"); if (s != NULL) { index = inDirnode(s,d); if (index == (size_t) -1) { n = dirnodeNew(d,NULL,NULL); t = textNew(s); dirnodeSetName(t,n); if (d->size > 0) { n_up = d->subdirs[d->size -1]; n_up->down = n; n->up = n_up; } addToDirnode(n,d); } else { n = elementAtDirnode(index,d); } addPath(NULL,n); } } void buildTreeFromNameset(nameset set, dirnode d) { size_t i; if ((set == NULL)||(d == NULL)) return; sort_list(set); for (i=0;i < set->size;i++) { addPath(set->array[i],d); } } /********************************************************** * * NCD (Ninux Czo Directory) can read a tree and build * a data structure faster than WCD because: * - NCD has a more compact treefile, optimised for graphical tree. * - NCD just adds all dirs. No checking for duplicates. * * WCD is slower because: * - WCD has larger treefile, optimised for string matching. * - WCD has to split every path in directories. * - WCD searches every path in data structure. * * WCD takes slower speed for granted because: * - no extra file needed for graphical interface. * - string matching is more important feature. * - duplicates are skipped * - These functions can be used on all WCD treefiles * and match lists. This enables a graphical match list. * ***********************************************************/ void buildTreeFromFile(char *filename, dirnode d) { nameset dirs; dirs = namesetNew(); if(dirs != NULL) read_treefile(filename,dirs,0); else return; if (d == NULL) return; buildTreeFromNameset(dirs,d); freeNameset(dirs, 1); } /*****************************************************/ dirnode createRootNode() { dirnode rootNode; rootNode = dirnodeNew(NULL,NULL,NULL); if (rootNode != NULL) { dirnodeSetName(ROOTDIR,rootNode); dirnodeSetX(0,rootNode); dirnodeSetY(0,rootNode); } return(rootNode); } /************************************************ * * Search for dirnode with with path `path'. * If dirnode is not found return closest parent * dirnode. * ************************************************/ dirnode searchNodeForDir(text path, dirnode d, dirnode rNode) { char *s; dirnode n; size_t index; dirnode rootnode; #if (defined(_WIN32) || defined(__CYGWIN__)) static char buf[DD_MAXPATH] = "//" ; #endif if (d == NULL) return(NULL); if (rNode == NULL) { rootnode = endOfRecursionOfDirnodeParent(d); return searchNodeForDir(path, rootnode, rootnode); /* start on top of tree */ } #if (defined(_WIN32) || defined(__CYGWIN__)) if ( (path != NULL) && (*path == '/') && (*(path+1) == '/') ) { s = strtok(path,"/"); if (s != NULL) { buf[2] = '\0'; strcat(buf, s); s = buf; } } else #endif s = strtok(path,"/"); if (s != NULL) { index = inDirnode(s,d); if (index == (size_t) -1) { return(d); } else { n = elementAtDirnode(index,d); return(searchNodeForDir(NULL,n,rNode)); } } return(d); } /*****************************************************/ dirnode locatePathOrSo(text path, dirnode d) { return(searchNodeForDir(path,d,NULL)); } /*****************************************************/ char *getNodeFullPath(dirnode node) { static text line = NULL; static text tline = NULL; dirnode n; /* The reconstructed path will not be longer than * it was original in the treedata file. The max length * is DD_MAXPATH. See also function `read_treefile()' * * The reconstructed path has only an extra slash "/" * in the beginning on DOS/Windows if environment * variable HOME or WCDHOME is set * */ if (line == NULL) { line = textNewSize((size_t)(DD_MAXPATH+1)); } if (tline == NULL) { tline = textNewSize((size_t)(DD_MAXPATH+1)); } line[0] = '\0'; n = node; if (dirnodeHasParent(n) eq false) strcpy(line,"/"); else { while (dirnodeHasParent(n) eq true) { strcpy(tline,"/"); strcat(tline,dirnodeGetName(n)); strcat(tline,line); strcpy(line,tline); n = dirnodeGetParent(n); } } return(line); } /***************************************************** * * dirnode Left() * * Return Left node, which is parent node *****************************************************/ dirnode Left(dirnode node) { return dirnodeGetParent(node); } /***************************************************** * * dirnode Down() * * Return node Down, which is next node in parent directory *****************************************************/ dirnode Down(dirnode node) { return node->down; } /***************************************************** * * dirnode Right() * * Return Right node, which is first sub node *****************************************************/ dirnode Right(dirnode node) { if(dirnodeFold(node) eq false) return elementAtDirnode((size_t)0,node); else return(NULL); } /***************************************************** * * dirnode Up() * * Return node Up, which is previous node in parent directory *****************************************************/ dirnode Up(dirnode node) { return node->up; } /****************************************************** * * return first node in a certain level * ******************************************************/ dirnode getAnyNodeInLevel(dirnode node, int level) { dirnode n, ndown; dirnode rootnode; if (node == NULL) return(NULL); rootnode = endOfRecursionOfDirnodeParent(node); n = rootnode; /* start on top of tree */ while(n != NULL) { ndown = Down(n); while ((ndown != NULL) && (dirnodeGetY(ndown)<=level)) { n = ndown; ndown=Down(ndown); } if (dirnodeGetY(n) == level) return(n); n = Right(n); } return(NULL); /* level is larger than tree or <0 */ } /****************************************************** * * return first node in a certain level * ******************************************************/ dirnode getFirstNodeInLevel(dirnode node, int level) { return getAnyNodeInLevel(node, level); } /******************************************************/ /* get last node (most right side) on a line */ dirnode getLastNodeInSameLevel(dirnode node) { if (node == NULL) return(NULL); /* In compact mode there is only one node per line */ if (wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) return(node); if (dirHasSubdirs(node) eq false) return(node); else return getLastNodeInSameLevel(elementAtDirnode((size_t)0,node)); } /******************************************************/ dirnode getLastNodeInLevel(dirnode node, int level) { return getLastNodeInSameLevel(getAnyNodeInLevel(node,level)); } /****************************************************** * * getNodeCursUp(dirnode curNode) * * Get node up in the tree. * If node is a valid pointer to a node this function * will return always a node. ******************************************************/ dirnode getNodeCursUp(dirnode curNode) { dirnode node; if ((node = Up(curNode)) == NULL) /* there is no Up node, try left node */ { if ((node = Left(curNode)) == NULL) return(curNode); /* there is no Up or Left node, return same node */ } return(node); } /****************************************************** * * getNodeCursDown(dirnode curNode) * * Get node down in the tree. * If node is a valid pointer to a node this function * will return always a node. ******************************************************/ dirnode getNodeCursDown(dirnode curNode) { dirnode node; if ((node = Down(curNode)) == NULL) { if ((node = Right(curNode)) == NULL) { node = getFirstNodeInLevel(curNode,dirnodeGetY(curNode)+1); if (node == NULL) return(curNode); } } return(node); } /****************************************************** * * getNodeCursLeft(dirnode curNode) * * Get node left in the tree. * If node is a valid pointer to a node this function * will return always a node. ******************************************************/ dirnode getNodeCursLeft(dirnode curNode, int *ymax) { dirnode node; if ((wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) && (wcd_cwin.graphics_mode & WCD_GRAPH_ALT)) { if((dirnodeHasSubdirs(curNode) eq true) && (curNode->fold eq false)) { setFold(wcd_cwin.curNode,true,ymax); /* fold */ return(curNode); } } if ((node = Left(curNode)) == NULL) return(curNode); /* there is no Left node, return same node */ return(node); } /****************************************************** * * getNodeCursRight(dirnode curNode) * * Get node right in the tree. * If node is a valid pointer to a node this function * will return always a node. ******************************************************/ dirnode getNodeCursRight(dirnode curNode, int graphics_mode) { dirnode node; if ((node = Right(curNode)) == NULL) { if (graphics_mode & WCD_GRAPH_ALT) /* stop at end of line */ return(curNode); if ((node = Down(curNode)) == NULL) /* try to go one down */ { /* try to go one up and one down */ node = Left(curNode); while (node != NULL) { if(Down(node) != NULL) return(Down(node)); else node = Left(node); } /* node == NULL */ return(curNode); } } return(node); } /******************************************************/ dirnode getNodeLnUp(dirnode curNode) { dirnode dn; dn = getLastNodeInLevel(curNode, dirnodeGetY(curNode)-1); if(dn == NULL) { return(curNode); } else { return(dn); } } /******************************************************/ dirnode getNodeLnDn(dirnode curNode) { dirnode dn; dn = getFirstNodeInLevel(curNode,dirnodeGetY(curNode)+1); if(dn == NULL) return(curNode); else return(dn); } /******************************************************/ dirnode getNodePrev(dirnode curNode) { dirnode node; if (curNode == NULL) return(NULL); node = Left(curNode); if ((node != NULL) && (dirnodeGetY(node)==dirnodeGetY(curNode))) { return(node); } return(getNodeLnUp(curNode)); } /******************************************************/ dirnode getLastDescendant(dirnode node) { dirnode n; dirnode rootnode; if (node == NULL) return(NULL); rootnode = endOfRecursionOfDirnodeParent(node); n = rootnode; /* start on top of tree */ while(n != NULL) { while (Down(n) != NULL) n=Down(n); if (Right(n) == NULL) return(n); n = Right(n); } return(NULL); } /******************************************************/ dirnode prevNodeCiclic(dirnode curNode) { dirnode rootnode; if (curNode == NULL) return NULL; rootnode = endOfRecursionOfDirnodeParent(curNode); if (curNode == rootnode) return(getLastDescendant(curNode)); return(getNodePrev(curNode)); } /******************************************************/ dirnode nextNodeCiclic(dirnode curNode) { dirnode node; dirnode rootnode; if (curNode == NULL) return NULL; rootnode = endOfRecursionOfDirnodeParent(curNode); node = getNodeCursRight(curNode, WCD_GRAPH_NORMAL); if (node == curNode) return(rootnode); else return(node); } /******************************************************/ int getNodeDepth(dirnode curNode) { dirnode node; int thisdepth = 0; node = curNode; while ((node = Left(node)) != NULL) thisdepth++; return(thisdepth); } /******************************************************/ dirnode getNodeCursDownNatural(dirnode curNode, int graphics_mode) { dirnode node,oldnode; int thisdepth; if(Down(curNode) != NULL) return(Down(curNode)); /* go down */ if (graphics_mode & WCD_GRAPH_ALT) return(curNode); /* stop */ thisdepth = getNodeDepth(curNode); oldnode = curNode; node = getNodeCursRight(curNode, graphics_mode); /* There was no direct down node, try to find down node on same level */ while ( (node != NULL) && (node !=oldnode) && (getNodeDepth(node) != thisdepth)) { oldnode = node; node = getNodeCursRight(node, WCD_GRAPH_NORMAL); } /* node==NULL or * node==oldnode or * dept node == dept oldnode */ if (node != NULL) { if (oldnode != node) return(node); else return getNodeCursRight(curNode, WCD_GRAPH_NORMAL); } else return(curNode); } /******************************************************/ dirnode getNodeCursUpNatural(dirnode curNode, int graphics_mode) { dirnode node,oldnode; int thisdepth; if(Up(curNode) != NULL) return(Up(curNode)); /* go up */ if (graphics_mode & WCD_GRAPH_ALT) return(curNode); /* stop */ thisdepth = getNodeDepth(curNode); oldnode = curNode; node = getNodePrev(curNode); while ( (node != NULL) && (node !=oldnode) && (getNodeDepth(node) != thisdepth)) { oldnode = node; node = getNodePrev(node); } /* node==NULL or * node==oldnode or * dept node == dept oldnode */ if (node != NULL) { if(oldnode != node) return(node); else return(getNodePrev(curNode)); } else return(curNode); } /******************************************************/ int validSearchDir(char *dir, dirnode curNode, int exact, int ignore_case, int ignore_diacritics) { char path[WCD_MAX_INPSTR+2]; char *name; if ((dir == NULL)||(curNode == NULL)) return(0); /* The string length of *dir is guaranteed <= WCD_MAX_INPSTR * *path is max two characters longer * */ strcpy(path,"*"); strcat(path,dir); if (exact == 0) strcat(path,"*"); if( (name = strrchr(path,DIR_SEPARATOR)) != NULL) name++; else name = path + 1; /* matching with wildcard support !!! */ if ( #ifdef WCD_UNICODE (dd_matchmbs(dirnodeGetName(curNode),name,ignore_case,ignore_diacritics)) && (dd_matchmbs(getNodeFullPath(curNode),path,ignore_case,ignore_diacritics)) #else (dd_matchl(dirnodeGetName(curNode),name,ignore_case,ignore_diacritics)) && (dd_matchl(getNodeFullPath(curNode),path,ignore_case,ignore_diacritics)) #endif ) return(1); else return(0); } /******************************************************/ dirnode findDirInCiclePrev(char *dir, dirnode curNode, int exact, int ignore_case, int ignore_diacritics) { dirnode node; int valid; node = curNode; do{ node = prevNodeCiclic(node); valid = validSearchDir(dir,node,exact,ignore_case,ignore_diacritics); } while((!valid)&&(node!=curNode)); return(node); } /******************************************************/ dirnode findDirInCicle(char *dir, dirnode curNode, int exact, int ignore_case, int ignore_diacritics) { dirnode node; int valid; node = curNode; do{ node = nextNodeCiclic(node); valid = validSearchDir(dir,node,exact,ignore_case,ignore_diacritics); } while((!valid)&&(node!=curNode)); return(node); } /************************************************************ * * updateLine() * i = nodelevel * y = screen level * * **********************************************************/ #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) int wcd_wcwidth(wchar_t c) { switch(c) { case WCD_ACS_HL: case WCD_ACS_VL: case WCD_ACS_LT: case WCD_ACS_LLC: case WCD_ACS_TT: case WCD_SPACE: #ifndef ASCII_TREE if ((wcd_cwin.graphics_mode & WCD_GRAPH_CJK) && !(wcd_cwin.graphics_mode & WCD_GRAPH_ASCII)) return(2); else #endif return(1); break; case WCD_SEL_ON: case WCD_SEL_OFF: return(1); break; default: if (wcd_cwin.graphics_mode & WCD_GRAPH_CJK) return(mk_wcwidth_cjk(c)); else return(wcwidth(c)); } } int wcd_wcswidth(const wchar_t *pwcs, size_t n) { if (wcd_cwin.graphics_mode & WCD_GRAPH_CJK) return(mk_wcswidth_cjk(pwcs, n)); else return(wcswidth(pwcs, n)); } #endif #ifdef WCD_USECURSES void updateLine(WINDOW *win, dirnode n, int i, int y, dirnode curNode, int xoffset) { wcd_uchar *s; size_t len; int j; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; int width, c; #endif s = (wcd_uchar *)getTreeLine(getLastNodeInLevel(n,i),i,&i,curNode,false, &wcd_cwin.graphics_mode); if (s != NULL) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) len = MBSTOWCS(wstr,(char *)s,(size_t)DD_MAXPATH); /* number of wide characters */ #else len = strlen((char *)s); #endif wmove(win,y,0); /* if (len == (size_t) -1 ) { fprintf(stderr,"len = %d\n",len); fprintf(stderr,"s = %s\n",s); } */ #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) /* xoffset is horizontal offset measured in nr. of columns. */ if (len == (size_t) -1) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ len = strlen((char *)s); for(j=xoffset;(j<(int)len)&&((j-xoffset)<(COLS-1));j++) { switch(s[j]) { case WCD_ACS_HL: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'-'); else waddch(win,ACS_HLINE); break; case WCD_ACS_VL: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'|'); else waddch (win,ACS_VLINE); break; case WCD_ACS_LT: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'|'); else waddch (win,ACS_LTEE); break; case WCD_ACS_LLC: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'`'); else waddch (win,ACS_LLCORNER); break; case WCD_ACS_TT: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'+'); else waddch (win,ACS_TTEE); break; case WCD_SPACE: waddch(win, (chtype)' '); #ifndef ASCII_TREE if ((wcd_cwin.graphics_mode & WCD_GRAPH_CJK) && !(wcd_cwin.graphics_mode & WCD_GRAPH_ASCII)) waddch(win, (chtype)' '); #endif break; case WCD_SEL_ON: wattron(win,A_REVERSE); waddch(win,(chtype)'['); /* square brackets indicate there was an error. */ break; case WCD_SEL_OFF: waddch(win,(chtype)']'); wattroff(win,A_REVERSE); break; default: waddch(win,(chtype)s[j]); } } } else { c = 0; /* count width from beginning of string. */ j = 0; while ((j<(int)len)&&(c xoffset ) && ( wcd_wcwidth(wstr[j-1]) == 2)) { /* Last character skipped was a double width character. * Insert a space. */ j--; wstr[j] = ' '; } #if defined(_WIN32) || defined(__CYGWIN__) /* xoffset is horizontal offset measured in nr. of columns. * This may be at the middle of a surrogate pair. */ if ((wstr[j] >= 0xdc00) && (wstr[j] < 0xe000)) { /* Last character skipped was a surrogate lead. * First character is a surrogate trail. * Insert a space. */ wstr[j] = ' '; } #endif while ((j<(int)len)&&(wcd_wcwidth(wstr[j]) == 0 )) /* Skip combining characters */ j++; width = 0; if (j<(int)len) width = wcd_wcwidth(wstr[j]); while ((j<(int)len)&&(width'); wattroff(win,A_REVERSE); break; default: waddnwstr(win,wstr+j,1); } j++; width = width + wcd_wcwidth(wstr[j]); } } #else for(j=xoffset;(j<(int)len)&&((j-xoffset)<(COLS-1));j++) { switch(s[j]) { case WCD_ACS_HL: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'-'); else waddch(win,ACS_HLINE); break; case WCD_ACS_VL: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'|'); else waddch (win,ACS_VLINE); break; case WCD_ACS_LT: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'|'); else waddch (win,ACS_LTEE); break; case WCD_ACS_LLC: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'`'); else waddch (win,ACS_LLCORNER); break; case WCD_ACS_TT: if (wcd_cwin.graphics_mode & WCD_GRAPH_ASCII) waddch(win, (chtype)'+'); else waddch (win,ACS_TTEE); break; case WCD_SPACE: waddch(win, (chtype)' '); #ifndef ASCII_TREE if ((wcd_cwin.graphics_mode & WCD_GRAPH_CJK) && !(wcd_cwin.graphics_mode & WCD_GRAPH_ASCII)) waddch(win, (chtype)' '); #endif break; case WCD_SEL_ON: wattron(win,A_REVERSE); waddch(win,(chtype)'<'); break; case WCD_SEL_OFF: waddch(win,(chtype)'>'); wattroff(win,A_REVERSE); break; default: waddch(win,(chtype)s[j]); } } #endif } } #define WCD_NAV 0 #define WCD_SEARCH 1 /************************************************************/ char *getZoomStackPath(dirnode stack) { static text line = NULL; size_t i, size; text name; if (line == NULL) { line = textNewSize((size_t)DD_MAXPATH); } line[0] = '\0'; size = getSizeOfDirnode(stack); for (i = 0; i < size ; i++) { if(i != 0) strcat(line,"/"); name = dirnodeGetName(elementAtDirnode(i,stack)); if((strlen(line)+strlen(name)) < (size_t)DD_MAXPATH) strcat(line,name); } return(line); } /************************************************************/ void dataRefresh(int ydiff, int init) { int i, yoffset, xo, len; static int xoffset = 0; /* Horizontal offset in number of columns */ static int yposition = -1; /* -1 : not initialized */ wcd_uchar *s; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) static wchar_t wstr[DD_MAXPATH]; int width; #endif /* yoffset is the y-offset in the whole tree of the current node. ydiff is the y-difference in the whole tree with the previous node. yposition is the y-offset in the window (0 .. scrollWinHeight-1) */ if ((yposition < 0)|| init) yposition = (wcd_cwin.scrollWinHeight /2); werase(wcd_cwin.scrollWin); werase(wcd_cwin.inputWin); if (ydiff < 0 ) { /* going down */ if( yposition-ydiff < (wcd_cwin.scrollWinHeight-1) ) yposition -= ydiff; else yposition = (wcd_cwin.scrollWinHeight -2); } else { /* going up */ if( (yposition-ydiff) > 0 ) yposition -= ydiff; else yposition = 1; } yoffset = dirnodeGetY(wcd_cwin.curNode) - yposition; if (yoffset < 0) yoffset = 0; len=dirnodeGetX(wcd_cwin.curNode)+(int)str_columns(dirnodeGetName(wcd_cwin.curNode))+3; /* len is total nr of colums of current node plus 3 */ if (len > COLS) { xo = len - COLS; if ((xo > xoffset) || (xoffset > (dirnodeGetX(wcd_cwin.curNode)-1))) { xoffset = xo; } } else xoffset = 0; for (i = 0; i < wcd_cwin.scrollWinHeight; i++) updateLine(wcd_cwin.scrollWin, wcd_cwin.curNode, i+yoffset, i, wcd_cwin.curNode, xoffset); for (i = 0; i < COLS; i++) { wmove(wcd_cwin.inputWin, 0, i); waddch(wcd_cwin.inputWin, (chtype)'-'); } /* mvwprintw(inputWin, 1,0,"%s",getNodeFullPath(curNode)); */ s = (wcd_uchar *)getZoomStackPath(wcd_cwin.zoomStack); /* s has size DD_MAXPATH */ strcat((char *)s, getNodeFullPath(wcd_cwin.curNode)); wcd_fixpath((char *)s, (size_t)DD_MAXPATH); if (s != NULL) { wmove(wcd_cwin.inputWin, 1, 0); #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) len = (int)MBSTOWCS(wstr,(char *)s,(size_t)DD_MAXPATH); /* number of wide characters */ if (len < 0) { /* Erroneous multi-byte sequence */ /* Try 8 bit characters */ len = (int)strlen((char *)s); for (i = 0; (i < len) && (i < (COLS - 1)); i++) waddch(wcd_cwin.inputWin, (chtype)s[i]); } else { i = 0; width = wcd_wcwidth(wstr[i]); while ((i 21) { wcd_mvwaddstr(win, 0,0,_("NAVIGATION MODE (1/2):")); wcd_mvwaddstr(win, 1,0,_("h or go left")); wcd_mvwaddstr(win, 2,0,_("j or go down")); wcd_mvwaddstr(win, 3,0,_("k or go up")); wcd_mvwaddstr(win, 4,0,_("l or go right")); wcd_mvwaddstr(win, 5,0,_("* or v or go forward to dir with same name")); wcd_mvwaddstr(win, 6,0,_("# or p or go backward to dir with same name")); wcd_mvwaddstr(win, 7,0,_("^ or a go to beginning of line")); wcd_mvwaddstr(win, 8,0,_("$ or e go to end of line")); wcd_mvwaddstr(win, 9,0,_("1 go to root dir")); wcd_mvwaddstr(win,10,0,_("g or G go to last dir")); wcd_mvwaddstr(win,11,0,_("f go page forward")); wcd_mvwaddstr(win,12,0,_("b go page backward")); wcd_mvwaddstr(win,13,0,_("u go half page up")); wcd_mvwaddstr(win,14,0,_("d go half page down")); wcd_mvwaddstr(win,16,0,_("Press any key.")); prefresh(win,0,0,0,0,height-1,COLS-1); getch(); werase(win); wcd_mvwaddstr(win, 0,0,_("NAVIGATION MODE (2/2):")); wcd_mvwaddstr(win, 1,0,_("A switch alternative tree navigation on/off")); wcd_mvwaddstr(win, 2,0,_("t switch centered mode on/off")); wcd_mvwaddstr(win, 3,0,_("T toggle between line drawing and ASCII characters")); wcd_mvwaddstr(win, 4,0,_("m toggle between compact and wide tree")); wcd_mvwaddstr(win, 5,0,_(" or q abort")); wcd_mvwaddstr(win, 6,0,_("/ search forward")); wcd_mvwaddstr(win, 7,0,_("? search backward")); wcd_mvwaddstr(win, 8,0,_("n repeat last / or ? search")); wcd_mvwaddstr(win, 9,0,_(" select directory")); wcd_mvwaddstr(win,11,0,_("Press any key.")); prefresh(win,0,0,0,0,height-1,COLS-1); getch(); werase(win); wcd_mvwaddstr(win, 0,0,_("SEARCH MODE with wildcard and subdir support:")); wcd_mvwaddstr(win, 1,0,_(" go left")); wcd_mvwaddstr(win, 2,0,_(" go down")); wcd_mvwaddstr(win, 3,0,_(" go up")); wcd_mvwaddstr(win, 4,0,_(" go right")); wcd_mvwaddstr(win, 5,0,_("CTRL-v go forward to dir with same name")); wcd_mvwaddstr(win, 6,0,_("CTRL-p go backward to dir with same name")); wcd_mvwaddstr(win, 7,0,_("CTRL-a go to beginning of line")); wcd_mvwaddstr(win, 8,0,_("CTRL-e go to end of line")); wcd_mvwaddstr(win, 9,0,_("CTRL-g go to last dir")); wcd_mvwaddstr(win,10,0,_("CTRL-f go page forward")); wcd_mvwaddstr(win,11,0,_("CTRL-b go page backward")); wcd_mvwaddstr(win,12,0,_("CTRL-u go half page up")); wcd_mvwaddstr(win,13,0,_("CTRL-d go half page down")); wcd_mvwaddstr(win,14,0,_(" or CTRL-x abort SEARCH MODE")); wcd_mvwaddstr(win,15,0,_("CTRL-n repeat last / or ? search")); wcd_mvwaddstr(win,16,0,_(" select directory")); wcd_mvwaddstr(win,18,0,_("Press any key.")); prefresh(win,0,0,0,0,height-1,COLS-1); getch(); werase(win); wcd_mvwaddstr(win, 0,0,_("ZOOMING:")); wcd_mvwaddstr(win, 1,0,_("z or i or CTRL-i zoom in")); wcd_mvwaddstr(win, 2,0,_("Z or o or CTRL-o zoom out")); wcd_mvwaddstr(win, 3,0,_("c condense: fold current level")); wcd_mvwaddstr(win, 4,0,_("C condense: fold subdir level")); wcd_mvwaddstr(win, 5,0,_("w condense: fold current and subdir levels")); wcd_mvwaddstr(win, 6,0,_("y or CTRL-y uncondense: unfold current and subdir levels")); wcd_mvwaddstr(win, 7,0,_("r or CTRL-r uncondense: unfold all directories")); wcd_mvwaddstr(win, 8,0,_("- fold directory")); wcd_mvwaddstr(win, 9,0,_("+ or = unfold directory")); wcd_mvwaddstr(win,10,0,_("l or unfold and go right")); wcd_mvwaddstr(win,11,0,_("Press any key.")); } else wcd_mvwaddstr(win, 0,0,_("Screenheight must be > 21 for help.")); prefresh(win,0,0,0,0,height-1,COLS-1); getch(); } /************************************************************/ dirnode pushZoom(dirnode zoomStack, dirnode curNode, int *ymax) { dirnode znew; /* new element on zoom stack */ dirnode top; if ((zoomStack == NULL)||(curNode == NULL)) return(NULL); top = endOfRecursionOfDirnodeParent(curNode); if (curNode == top) /* we are at the top */ return(curNode); /* store Parent, Up and Down pointers in znew */ znew = dirnodeNew(dirnodeGetParent(curNode),dirnodeGetUp(curNode),dirnodeGetDown(curNode)); dirnodeSetName(textNew(getNodeFullPath(curNode)),znew); addToDirnode (znew,zoomStack); /* curNode will be the new top node */ dirnodeSetParent(NULL,curNode); dirnodeSetUp(NULL,curNode); dirnodeSetDown(NULL,curNode); dirnodeSetX(0,curNode); dirnodeSetY(0,curNode); setXYTree(curNode, &wcd_cwin.graphics_mode); *ymax = dirnodeGetY(getLastDescendant(curNode)); return(curNode); } /************************************************************/ dirnode popZoom(dirnode zoomStack, dirnode curNode, int *ymax) { dirnode zlast; /* element on zoom stack */ dirnode top; /* the current top node */ dirnode newtop; /* the new top node */ size_t size; if ((zoomStack == NULL)||(curNode == NULL)) return(NULL); size = getSizeOfDirnode(zoomStack); if( size == 0) return(NULL); /* stack is empty */ else zlast = elementAtDirnode(size - 1,zoomStack); /* get last element on stack */ top = endOfRecursionOfDirnodeParent(curNode); /* restore pointers on top node */ dirnodeSetParent(dirnodeGetParent(zlast),top); dirnodeSetUp(dirnodeGetUp(zlast),top); dirnodeSetDown(dirnodeGetDown(zlast),top); /* remove last element from stack */ removeElementAtDirnode(size - 1, zoomStack, false, false); newtop = endOfRecursionOfDirnodeParent(top); dirnodeSetX(0,newtop); dirnodeSetY(0,newtop); setXYTree(newtop, &wcd_cwin.graphics_mode); *ymax = dirnodeGetY(getLastDescendant(newtop)); return(newtop); } /**************************************************************** * setFold() * Unfold or fold a dirnode * ****************************************************************/ void setFold(dirnode n, c3po_bool f, int *ymax) { dirnode d; if (n == NULL) return; else { if (n->size > 0) /* only (un)fold directories that have subdirs */ { dirnodeSetFold(f,n); d = endOfRecursionOfDirnodeParent(n); setXYTree(d, &wcd_cwin.graphics_mode); *ymax = dirnodeGetY(getLastDescendant(d)); } } return; } /**************************************************************** * setfold_tree() * Fold or unfold all dirnodes in tree * ****************************************************************/ void setFold_tree(dirnode d, c3po_bool *f) { size_t index,size; dirnode n; if(dirnodeHasSubdirs(d) eq true) /* only (un)fold directories that have subdirs */ { d->fold = *f; index = 0; size = getSizeOfDirnode(d); while(index < size) { n = elementAtDirnode(index,d); setFold_tree(n,f); index++; } } return; } /***************************************************************** * setfold_sub() * Fold or unfold all dirnode from a sub dirnode *****************************************************************/ void setFold_sub(dirnode d, c3po_bool f, int *ymax) { dirnode top; if (d == NULL) return; else { setFold_tree(d,&f); d->fold = false; top = endOfRecursionOfDirnodeParent(d); setXYTree(top, &wcd_cwin.graphics_mode); *ymax = dirnodeGetY(getLastDescendant(top)); return; } } /***************************************************************** * setfold_all() * Fold or unfold all dirnode from top dirnode *****************************************************************/ void setFold_all(dirnode n, c3po_bool f, int *ymax) { dirnode top; if (n == NULL) return; else { top = endOfRecursionOfDirnodeParent(n); setFold_sub(top,f,ymax); return; } } /**************************************************************** * * condenseSubdirs() * This function folds all subdirectories of a dirnode. * *****************************************************************/ void condenseSubdirs(dirnode n, int *ymax) { size_t i; dirnode d; if ((n == NULL)||(dirHasSubdirs(n) eq false)) return; for(i=0;isize;i++) { d = elementAtDirnode(i,n); if (d-> size > 0) d->fold = true; } d = endOfRecursionOfDirnodeParent(n); setXYTree(d, &wcd_cwin.graphics_mode); *ymax = dirnodeGetY(getLastDescendant(d)); return; } /***************************************************************/ void condense(dirnode n, int *ymax) { if((n == NULL) || (dirnodeHasParent(n) eq false)) return; condenseSubdirs(dirnodeGetParent(n),ymax); } /***************************************************************/ #define Key_CTRL(x) ((x) & 31) char *selectANode(dirnode tree, int *use_HOME, int ignore_case, int graphics_mode,int ignore_diacritics) { int c = 0, n =0, y, ymax; int ydiff; char curPath[DD_MAXPATH]; char *ptr, *ptr2; #ifndef __PDCURSES__ SCREEN *sp; #endif #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) wint_t ch; #endif wcd_cwin.mode = WCD_NAV; wcd_cwin.graphics_mode = graphics_mode; ydiff = 0; if (tree == NULL) return NULL; ptr=NULL; getCurPath(curPath, (size_t)DD_MAXPATH, use_HOME); wcd_cwin.curNode = locatePathOrSo(curPath,tree); wcd_cwin.zoomStack = dirnodeNew(NULL,NULL,NULL); #if CAN_RESIZE signal (SIGWINCH, signalSigwinch); #endif /* Older versions of PDCurses and ncurses < 5.9.20120922 do not * support newterm() on Windows */ #if defined(__PDCURSES__) || (defined(_WIN32) && !defined(__CYGWIN__)) initscr(); #else sp = newterm(NULL,stdout,stdin); if (sp == NULL) { print_error("%s", _("Error opening terminal, falling back to stdout interface.\n")); return NULL; } #endif if (wcd_cwin.graphics_mode & WCD_GRAPH_COLOR) initcolor(); keypad(stdscr, TRUE); intrflush(stdscr, FALSE); cbreak(); noecho(); nonl(); scrollok(stdscr, TRUE); /* enable scrolling */ wcd_cwin.scrollWinHeight = LINES - INPUT_WIN_HEIGHT; wcd_cwin.scrollWinLen = COLS; wcd_cwin.scrollWin = newpad(wcd_cwin.scrollWinHeight,COLS); wcd_cwin.inputWin = newpad(INPUT_WIN_HEIGHT,COLS); if (wcd_cwin.graphics_mode & WCD_GRAPH_COLOR) { colorbox (wcd_cwin.scrollWin, MENU_COLOR, 0); /* BillyC add colors */ colorbox (wcd_cwin.inputWin, BODY_COLOR, 0); /* BillyC add colors */ } if (wcd_cwin.scrollWin == NULL) { endwin(); #ifdef XCURSES XCursesExit(); #endif print_error("%s", _("error creating scroll window.\n")); return NULL; } scrollok(wcd_cwin.scrollWin, TRUE); wcd_cwin.str[n] = '\0'; refresh(); dataRefresh(0, 1); ymax = dirnodeGetY(getLastDescendant(wcd_cwin.curNode)); while (c != 13 ) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) c = get_wch(&ch); #else c = getch(); #endif ydiff = wcd_cwin.curNode->y; if (wcd_cwin.mode == WCD_NAV) #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) switch(ch) #else switch(c) #endif { case 'y': if (dirnodeHasParent(wcd_cwin.curNode) eq false) setFold_sub(wcd_cwin.curNode,false,&ymax); /* unfold tree from current dirnode */ else setFold_sub(dirnodeGetParent(wcd_cwin.curNode),false,&ymax); /* unfold tree from parent dirnode */ break; case 'r': setFold_all(wcd_cwin.curNode,false,&ymax); /* unfold complete tree */ break; case '-': setFold(wcd_cwin.curNode,true,&ymax); /* fold */ break; case '+': case '=': setFold(wcd_cwin.curNode,false,&ymax); /* unfold */ break; case 'c': condense(wcd_cwin.curNode,&ymax); /* condense */ break; case 'C': condenseSubdirs(wcd_cwin.curNode,&ymax); /* condense */ break; case 'w': if (dirnodeHasParent(wcd_cwin.curNode) eq false) setFold_sub(wcd_cwin.curNode,true,&ymax); /* fold tree from current dirnode */ else setFold_sub(dirnodeGetParent(wcd_cwin.curNode),true,&ymax); /* fold tree from parent dirnode */ break; case 'b': y = dirnodeGetY(wcd_cwin.curNode) - wcd_cwin.scrollWinHeight; if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case 'f': y = dirnodeGetY(wcd_cwin.curNode) + wcd_cwin.scrollWinHeight; if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case 'u': y = dirnodeGetY(wcd_cwin.curNode) - (wcd_cwin.scrollWinHeight/2); if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case 'd': y = dirnodeGetY(wcd_cwin.curNode) + (wcd_cwin.scrollWinHeight/2); if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case '$': case 'e': wcd_cwin.curNode = getLastNodeInSameLevel(wcd_cwin.curNode); break; case '^': case 'a': wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,dirnodeGetY(wcd_cwin.curNode)); break; case 'k': if ((wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) && (wcd_cwin.graphics_mode & WCD_GRAPH_ALT)) { y = dirnodeGetY(wcd_cwin.curNode) - 1; if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); } else wcd_cwin.curNode = getNodeCursUpNatural(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case 'j': if ((wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) && (wcd_cwin.graphics_mode & WCD_GRAPH_ALT)) { y = dirnodeGetY(wcd_cwin.curNode) + 1; if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); } else wcd_cwin.curNode = getNodeCursDownNatural(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case ',': case 'h': wcd_cwin.curNode = getNodeCursLeft(wcd_cwin.curNode, &ymax); break; case '.': case 'l': if(dirnodeFold(wcd_cwin.curNode) eq true) { setFold(wcd_cwin.curNode,false,&ymax); } wcd_cwin.curNode = getNodeCursRight(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case '1': /* goto rootnode */ wcd_cwin.curNode = endOfRecursionOfDirnodeParent(wcd_cwin.curNode); break; case 'G': /* goto last node */ case 'g': wcd_cwin.curNode = getLastDescendant(wcd_cwin.curNode); break; case 'p': case '#': wcd_cwin.curNode = findDirInCiclePrev(dirnodeGetName(wcd_cwin.curNode),wcd_cwin.curNode,1,ignore_case,ignore_diacritics); break; case ' ': case 'v': case '*': wcd_cwin.curNode = findDirInCicle(dirnodeGetName(wcd_cwin.curNode),wcd_cwin.curNode,1,ignore_case,ignore_diacritics); break; case '/': wcd_cwin.mode = WCD_SEARCH; wcd_cwin.str[0] = '\0'; n = 0; break; case '?': wcd_cwin.mode = WCD_SEARCH; wcd_cwin.str[0] = '\0'; n = 0; break; case 'n': ptr2 = wcd_cwin.str + 1; if (n>1) { if (wcd_cwin.str[0] == '/') wcd_cwin.curNode = findDirInCicle(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); else wcd_cwin.curNode = findDirInCiclePrev(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); } break; case ':': showHelp(wcd_cwin.scrollWin,wcd_cwin.scrollWinHeight); break; case 'q': #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) ch = 3; /* 3 = Control-C */ #else c = 3; /* 3 = Control-C */ #endif break; case 'i': case 'z': pushZoom(wcd_cwin.zoomStack,wcd_cwin.curNode,&ymax); break; case 'o': case 'Z': popZoom(wcd_cwin.zoomStack,wcd_cwin.curNode,&ymax); break; case 8: /* backspace */ case KEY_BACKSPACE: wcd_cwin.curNode = findDirInCiclePrev(dirnodeGetName(wcd_cwin.curNode),wcd_cwin.curNode,1,ignore_case,ignore_diacritics); break; case 't': wcd_cwin.graphics_mode ^= WCD_GRAPH_CENTER ; break; case 'T': wcd_cwin.graphics_mode ^= WCD_GRAPH_ASCII ; if (wcd_cwin.graphics_mode & WCD_GRAPH_CJK) setXYTree(endOfRecursionOfDirnodeParent(wcd_cwin.curNode),&wcd_cwin.graphics_mode); break; case 'A': wcd_cwin.graphics_mode ^= WCD_GRAPH_ALT ; break; case 'm': wcd_cwin.graphics_mode ^= WCD_GRAPH_COMPACT ; setXYTree(endOfRecursionOfDirnodeParent(wcd_cwin.curNode),&wcd_cwin.graphics_mode); ymax = dirnodeGetY(getLastDescendant(wcd_cwin.curNode)); break; default: break; } #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) switch(ch) #else switch(c) #endif { case Key_CTRL ('y'): if (dirnodeHasParent(wcd_cwin.curNode) eq false) setFold_sub(wcd_cwin.curNode,false,&ymax); /* unfold tree from current dirnode */ else setFold_sub(dirnodeGetParent(wcd_cwin.curNode),false,&ymax); /* unfold tree from parent dirnode */ break; case Key_CTRL('r'): setFold_all(wcd_cwin.curNode,false,&ymax); /* unfold complete tree */ break; #ifdef PADMINUS case PADMINUS: setFold(wcd_cwin.curNode,true,&ymax); /* fold */ break; #endif #ifdef PADPLUS case PADPLUS: setFold(wcd_cwin.curNode,false,&ymax); /* unfold */ break; #endif case Key_CTRL ('b'): case KEY_PPAGE: /* Page Up */ #ifdef KEY_A3 case KEY_A3: /* Num-pad Page Up */ #endif y = dirnodeGetY(wcd_cwin.curNode) - wcd_cwin.scrollWinHeight; if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case Key_CTRL ('f'): case KEY_NPAGE: /* Page down */ #ifdef KEY_C3 case KEY_C3: /* Num-pad page down */ #endif y = dirnodeGetY(wcd_cwin.curNode) + wcd_cwin.scrollWinHeight; if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case Key_CTRL ('u'): y = dirnodeGetY(wcd_cwin.curNode) - (wcd_cwin.scrollWinHeight/2); if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case Key_CTRL ('d'): y = dirnodeGetY(wcd_cwin.curNode) + (wcd_cwin.scrollWinHeight/2); if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); break; case Key_CTRL ('e'): #ifdef KEY_END case KEY_END: #endif #ifdef KEY_C1 case KEY_C1: /* Num-pad END */ #endif wcd_cwin.curNode = getLastNodeInSameLevel(wcd_cwin.curNode); break; case Key_CTRL ('a'): case KEY_HOME: #ifdef KEY_A1 case KEY_A1: /* Num-pad HOME */ #endif wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,dirnodeGetY(wcd_cwin.curNode)); break; case KEY_UP: /* Arrow Up */ #ifdef KEY_A2 case KEY_A2: /* Num-pad ARROW UP */ #endif if ((wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) && (wcd_cwin.graphics_mode & WCD_GRAPH_ALT)) { y = dirnodeGetY(wcd_cwin.curNode) - 1; if (y < 0) y = 0; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); } else wcd_cwin.curNode = getNodeCursUpNatural(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case KEY_DOWN: /* Arrow down */ #ifdef KEY_C2 case KEY_C2: /* Num-pad Arrow down */ #endif if ((wcd_cwin.graphics_mode & WCD_GRAPH_COMPACT) && (wcd_cwin.graphics_mode & WCD_GRAPH_ALT)) { y = dirnodeGetY(wcd_cwin.curNode) + 1; if (y > ymax) y = ymax; wcd_cwin.curNode = getFirstNodeInLevel(wcd_cwin.curNode,y); } else wcd_cwin.curNode = getNodeCursDownNatural(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case KEY_LEFT: #ifdef KEY_B1 case KEY_B1: /* Num-pad Arrow left */ #endif wcd_cwin.curNode = getNodeCursLeft(wcd_cwin.curNode, &ymax); break; case KEY_RIGHT: #ifdef KEY_B3 case KEY_B3: /* Num-pad key_right */ #endif if(dirnodeFold(wcd_cwin.curNode) eq true) { setFold(wcd_cwin.curNode,false,&ymax); } wcd_cwin.curNode = getNodeCursRight(wcd_cwin.curNode, wcd_cwin.graphics_mode); break; case Key_CTRL ('g'): wcd_cwin.curNode = getLastDescendant(wcd_cwin.curNode); break; case Key_CTRL ('p'): wcd_cwin.curNode = findDirInCiclePrev(dirnodeGetName(wcd_cwin.curNode),wcd_cwin.curNode,1,ignore_case,ignore_diacritics); break; case Key_CTRL ('v'): wcd_cwin.curNode = findDirInCicle(dirnodeGetName(wcd_cwin.curNode),wcd_cwin.curNode,1,ignore_case,ignore_diacritics); break; case Key_CTRL ('n'): ptr2 = wcd_cwin.str + 1; if (n>1) { if (wcd_cwin.str[0] == '/') wcd_cwin.curNode = findDirInCicle(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); else wcd_cwin.curNode = findDirInCiclePrev(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); } break; case KEY_F (1): showHelp(wcd_cwin.scrollWin,wcd_cwin.scrollWinHeight); break; case Key_CTRL ('i'): pushZoom(wcd_cwin.zoomStack,wcd_cwin.curNode,&ymax); break; case Key_CTRL ('o'): popZoom(wcd_cwin.zoomStack,wcd_cwin.curNode,&ymax); break; case 3: /* Control-C */ case 27: /* Escape */ case Key_CTRL (']'): case Key_CTRL ('x'): case Key_CTRL ('q'): if (wcd_cwin.mode == WCD_SEARCH) wcd_cwin.mode = WCD_NAV; else c = 13; break; case 13: /* Enter */ case KEY_ENTER: c = 13; ptr = getZoomStackPath(wcd_cwin.zoomStack); /* s has size DD_MAXPATH */ strcat(ptr,getNodeFullPath(wcd_cwin.curNode)); wcd_fixpath(ptr, (size_t)DD_MAXPATH); break; case 8: /* backspace */ case KEY_BACKSPACE: if(n==1) wcd_cwin.mode = WCD_NAV; if(n>1) n--; wcd_cwin.str[n] = '\0'; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) wcd_cwin.wstr[n] = '\0'; #endif break; case 127: /* delete */ case KEY_DC: if(n==1) wcd_cwin.mode = WCD_NAV; if(n>1) n--; wcd_cwin.str[n] = '\0'; #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) wcd_cwin.wstr[n] = '\0'; #endif break; default: if ((wcd_cwin.mode == WCD_SEARCH) && (n < WCD_MAX_INPSTR)) { #if defined(WCD_UNICODE) || defined(WCD_WINDOWS) wcd_cwin.wstr[n] = (wchar_t)ch; n++; wcd_cwin.wstr[n] = '\0'; /* Convert wide-character input string to byte string. Needed for searching. */ if (WCSTOMBS(wcd_cwin.str, wcd_cwin.wstr, (size_t)WCD_MAX_INPSTR) == (size_t)(-1)) { n=1; wcd_cwin.str[n] = '\0'; } #else wcd_cwin.str[n] = (char)c; n++; wcd_cwin.str[n] = '\0'; #endif ptr2 = wcd_cwin.str + 1; if (n>1) { if (wcd_cwin.str[0] == '/') wcd_cwin.curNode = findDirInCicle(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); else wcd_cwin.curNode = findDirInCiclePrev(ptr2,wcd_cwin.curNode,0,ignore_case,ignore_diacritics); } } break; } ydiff -= (wcd_cwin.curNode->y); if (wcd_cwin.graphics_mode & WCD_GRAPH_CENTER) dataRefresh(0, 1); else dataRefresh(ydiff, 0); } endwin(); #ifdef XCURSES XCursesExit(); #endif printf("\n"); /* Extra newline for curses, pdcurses and when ncurses doesn't restore screen */ #ifdef _WCD_DOSFS /* remove '/' before drive letter */ if ((ptr != NULL)&&(*use_HOME)&& (*(ptr+1) != '/')) /* UNC path */ ptr++; #endif wcd_fixpath(ptr, (size_t)DD_MAXPATH); return(ptr); } #endif /* WCD_USECURSES */ wcd-5.2.5/src/matchl.h0000664000175000017500000000056311642416446014742 0ustar waterlanwaterlan/* matchl.h Copyright (C) 2011 Erwin Waterlander This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, see the file COPYING. */ #ifndef _MATCHL_H #define _MATCHL_H #include "match.h" int dd_matchl(const char *string, const char *pattern, int ignore_case, int ignore_diacritics); #endif /* _MATCHL_H */ wcd-5.2.5/src/wcddir.c0000664000175000017500000004443612275753710014751 0ustar waterlanwaterlan/* filename: wcddir.c WCD - Chdir for Dos and Unix. Author: Erwin Waterlander ====================================================================== = Copyright = ====================================================================== Copyright (C) 2002-2014 Erwin Waterlander This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ======================================================================= */ /* set tabstop=3 */ /* This file contains wrapper functions that operate on directories. These are needed to use the WIN32 API functions. WIN32 API functions are needed to get support for UNC paths. */ #include "config.h" #include #include #ifdef _MSC_VER #define S_ISDIR( m ) (((m) & _S_IFMT) == _S_IFDIR) #endif #if defined(UNIX) || defined(__DJGPP__) || defined(__OS2__) # include #endif #include "dosdir.h" #include "wcddir.h" #include "match.h" #include #include #if (defined(_WIN32) && defined(WCD_UNICODE)) #include #endif #if (defined(_WIN32) || defined(__CYGWIN__)) /* WIN32: Use WIN32 API to support UNC paths. CYGWIN: Use WIN32 API only to scan servers and find shared directories. The Cygwin POSIX interface already supports UNC paths directly. In Cygwin the Win32 api function don't work on cygwin (unix like) paths. */ #include "std_macr.h" #include "structur.h" #include "Text.h" #include "nameset.h" #include "wfixpath.h" #include "dosdir.h" #include #include "display.h" #include /* #include */ #include "wcd.h" /* int wcd_isServerPath (char* path) check if path is a possible UNC server path like \\servername RETURNS 1 if true RETURNS 0 if false */ int wcd_isServerPath (char* path) { if ((strlen(path) > 2) && (wcd_is_slash(*path)) && (wcd_is_slash(*(path+1))) && (strchr(path+2,'/') == NULL) && (strchr(path+2,'\\') == NULL)) return(1); else return(0); } void exterr( void ) { /* This function was taken from Felix Kasza's Win32 Samples page at MVPS.ORG. http://www.mvps.org/win32/ */ char errbuf[2048], namebuf[2048]; DWORD err; errbuf[0] = namebuf[0] = '\0'; if ( WNetGetLastError( &err, errbuf, sizeof errbuf, namebuf, sizeof namebuf ) == NO_ERROR ) print_error(_("%lu (\"%s\") reported by \"%s\".\n"), err, errbuf, namebuf ); return; } #define MAX_NR_BUF 1000 int doEnum( int level, NETRESOURCE *pnr, nameset n ) { /* This function was taken from Felix Kasza's Win32 Samples page at MVPS.ORG. http://www.mvps.org/win32/ */ DWORD rc, rc2; HANDLE hEnum; DWORD count, bufsize, ui; NETRESOURCE buf[MAX_NR_BUF]; /* const char *type; */ char path[DD_MAXPATH]; rc = WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, pnr, &hEnum ); if ( rc == ERROR_ACCESS_DENIED ) { /* printf( "%-6.6s %-4.4s%*s Error 5 -- access denied\n", "", "", level * 2, "" ); */ print_msg( _("access denied.\n")); return 1; } if ( rc ) { rc2 = GetLastError(); /* printf( "WNOE(): rc = %lu, gle = %lu\n", rc, rc2 ); */ if ( rc2 == ERROR_EXTENDED_ERROR ) exterr(); return 0; } while ( 1 ) { count = (DWORD) -1L; bufsize = sizeof buf; rc = WNetEnumResource( hEnum, &count, buf, &bufsize ); if ( rc != NO_ERROR ) break; for ( ui = 0; (ui < count); ++ ui ) { switch ( buf[ui].dwDisplayType ) { case RESOURCEDISPLAYTYPE_DOMAIN: /* type = "domain"; */ break; case RESOURCEDISPLAYTYPE_GENERIC: /* type = "generic"; */ break; case RESOURCEDISPLAYTYPE_SERVER: /* type = "server"; */ break; case RESOURCEDISPLAYTYPE_SHARE: /* type = "share"; */ print_msg( "%s\n", buf[ui].lpRemoteName ); strncpy(path, buf[ui].lpRemoteName, DD_MAXPATH); wcd_fixpath(path, DD_MAXPATH); addToNamesetArray(textNew(path), n); break; default: /* type = "unknown"; */ break; } /* now we recurse if it's a container */ if ( buf[ui].dwUsage & RESOURCEUSAGE_CONTAINER ) doEnum( level + 1, &buf[ui], n ); } } if ( rc != ERROR_NO_MORE_ITEMS ) /* bad things */ { rc2 = GetLastError(); /* printf( "WNER(): rc = %lu, gle = %lu\n", rc, rc2 ); */ if ( rc2 == ERROR_EXTENDED_ERROR ) exterr(); } WNetCloseEnum( hEnum ); return 1; } /************************************************************* * * wcd_getshares(char *path, nameset n) * * In case path points to a server this function will * search for shared directories on that server and add * the shared directory names to n. *************************************************************/ void wcd_getshares(char* path, nameset n) { NETRESOURCE nr; if ((path == NULL) || (n == NULL)) return; if (wcd_isServerPath(path)) { /* an UNC path, possibly pointing to a server */ /* WIN32 API needs backslashes. */ *path = '\\'; *(path+1) = '\\'; print_msg(_("Searching for shared directories on server %s\n"), path); nr.dwScope = RESOURCE_GLOBALNET; nr.dwType = RESOURCETYPE_ANY; nr.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER; nr.dwUsage = RESOURCEUSAGE_CONTAINER; nr.lpLocalName = NULL; nr.lpRemoteName = path ; nr.lpProvider = NULL; doEnum( 0, &nr, n ); } print_msg(_("Found %lu shared directories on server %s\n"), (unsigned long)getSizeOfNamesetArray(n), path); } #endif #if (defined(_WIN32) && !defined(__CYGWIN__)) /* WIN32, not CYGWIN Use WIN32 API */ void wcd_PrintError(DWORD dw) { /* Retrieve the system error message for the last-error code */ LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); /* Display the error message */ /* MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK); */ fprintf(stderr, "%s\n",(LPCTSTR)lpMsgBuf); LocalFree(lpMsgBuf); } /* int wcd_isSharePath (char* path) check if path is a possible UNC share path like \\servername\sharename RETURNS 1 if true RETURNS 0 if false */ int wcd_isSharePath (char* path) { char *ptr; /* Assume the path has been fixed by wcd_fixpath(). Only forward slashes. */ if ((strlen(path) > 2) && (wcd_is_slash(*path)) && (wcd_is_slash(*(path+1)))) { ptr = strchr(path+2,'/'); if (ptr == NULL) return(0); else { ptr = strchr(ptr+1,'/'); if (ptr == NULL) { return(1); } else return(0); } } else return(0); } /* * wcd_islink() * Check if directory is a symbolic link. * Returns: 1 if dir is a symlink, 0 if dir is not a symlink. */ int wcd_islink(const char *dir, int quiet) { DWORD attrs; DWORD dw; #ifdef WCD_UNICODE static wchar_t wstr[DD_MAXPATH]; if (utf8towcs(wstr, dir, DD_MAXPATH) == (size_t)(-1)) attrs = INVALID_FILE_ATTRIBUTES; else attrs = GetFileAttributesW(wstr); #else attrs = GetFileAttributes(dir); #endif if (attrs == INVALID_FILE_ATTRIBUTES) { if ( !quiet ) { dw = GetLastError(); print_error("wcd_islink(): "); wcd_PrintError(dw); } return(0); } return ((attrs & FILE_ATTRIBUTE_REPARSE_POINT) != 0); } /* If WCD_UNICODE is defined we assume that all multi-byte * strings are encoded in UTF-8. */ char *wcd_getcwd(char *buf, size_t size) { DWORD err; DWORD dw; #ifdef WCD_UNICODE static wchar_t wstr[DD_MAXPATH]; err = GetCurrentDirectoryW(size, wstr); if ( err != 0) if (wcstoutf8(buf, wstr, DD_MAXPATH) == (size_t)(-1)) err = 0; #else err = GetCurrentDirectory(size, buf); #endif if (err == 0) { dw = GetLastError(); print_error("%s", _("Unable to get current working directory: ")); wcd_PrintError(dw); return(NULL); /* fail */ } else return(buf); /* success */ } int wcd_chdir(char *buf, int quiet) { BOOL err; DWORD dw; #ifdef WCD_UNICODE static wchar_t wstr[DD_MAXPATH]; if (utf8towcs(wstr, buf, DD_MAXPATH) == (size_t)(-1)) err = 0; else err = SetCurrentDirectoryW(wstr); #else err = SetCurrentDirectory(buf); #endif if (err == 0) { if ( !quiet ) { dw = GetLastError(); print_error(""); wcd_printf(_("Unable to change to directory %s: "), buf); wcd_PrintError(dw); } return(1); /* fail */ } else return(0); /* success */ } int wcd_mkdir(char *buf, int quiet) { BOOL err; DWORD dw; #ifdef WCD_UNICODE static wchar_t wstr[DD_MAXPATH]; if (utf8towcs(wstr, buf, DD_MAXPATH) == (size_t)(-1)) err = FALSE; else err = CreateDirectoryW(wstr, NULL); #else err = CreateDirectory(buf, NULL); #endif if (err == TRUE) return(0); /* success */ else { if ( !quiet ) { dw = GetLastError(); print_error(""); wcd_printf(_("Unable to create directory %s: "), buf); wcd_PrintError(dw); } return(1); /* fail */ } } int wcd_rmdir(char *buf, int quiet) { BOOL err; DWORD dw; #ifdef WCD_UNICODE static wchar_t wstr[DD_MAXPATH]; if (utf8towcs(wstr, buf, DD_MAXPATH) == (size_t)(-1)) err = FALSE; else err = RemoveDirectoryW(wstr); #else err = RemoveDirectory(buf); #endif if (err == TRUE) return(0); /* success */ else { if ( !quiet ) { dw = GetLastError(); print_error(""); wcd_printf(_("Unable to remove directory %s: "), buf); wcd_PrintError(dw); } return(1); /* fail */ } } /****************************************************************** * * int wcd_isdir(char *dir) * * test if *dir points to a directory. * * returns 0 on success, -1 when it fails. * * - The following method using POSIX API fails on UNC share paths * like //servername/sharename on MS-Windows systems. * * stat(path, &buf) ; * if (S_ISDIR(buf.st_mode)) { ... } * * See also bug report at http://sourceforge.net/projects/mingw/ * http://sourceforge.net/tracker/?func=detail&atid=102435&aid=3304800&group_id=2435 * * - The function 'opendir()' from works on all systems, * also on Windows UNC paths as above, but not all compilers have 'dirent' * included. E.g. LCC 3.8 and Open Watcom 1.3 don't have it. * * - Using 'wcd_chdir()' is a portable solution to check \\servername\sharename. * ******************************************************************/ int wcd_isdir(char *dir, int quiet) { #ifdef WCD_UTF16 static wchar_t wstr[DD_MAXPATH]; BOOL err; DWORD dw; struct _stat buf; #else struct stat buf; #endif char *errstr; char tmp[DD_MAXDIR]; if (wcd_isSharePath(dir)) { wcd_getcwd(tmp, sizeof(tmp)); /* remember current dir */ if (wcd_chdir(dir, quiet) == 0) /* just try to change to dir */ { wcd_chdir(tmp, quiet); /* go back */ return(0); } else return(-1); } else { #ifdef WCD_UTF16 if (utf8towcs(wstr, dir, DD_MAXPATH) == (size_t)(-1)) err = FALSE; else err = TRUE; if (err == TRUE) { if (_wstat(wstr, &buf) == 0) { if (S_ISDIR(buf.st_mode)) return(0); else return(-1); } else { if (!quiet) { errstr = strerror(errno); wcd_printf("Wcd: %s: %s\n", dir, errstr); } return(-1); } } else { if ( !quiet ) { dw = GetLastError(); wcd_printf("Wcd: %s: ", dir); wcd_PrintError(dw); } return(-1); /* fail */ } #else if (stat(dir, &buf) == 0) { if (S_ISDIR(buf.st_mode)) return(0); else return(-1); } else { if (!quiet) { errstr = strerror(errno); print_error("%s: %s\n", dir, errstr); } return(-1); } #endif } } #else /************************************************************/ /* Use POSIX API */ #if defined(UNIX) || defined(__DJGPP__) || defined(__EMX__) int wcd_mkdir(char *buf, mode_t m, int quiet) { char *errstr; int err; err = mkdir(buf, m); if ( !quiet && err) { errstr = strerror(errno); print_error(_("Unable to create directory %s: %s\n"), buf, errstr); } return(err); } #else int wcd_mkdir(char *buf, int quiet) { char *errstr; int err; err = mkdir(buf); if ( !quiet && err) { errstr = strerror(errno); print_error(_("Unable to create directory %s: %s\n"), buf, errstr); } return(err); } #endif #ifdef UNIX /* The $HOME directory can be mounted to a long absolute path by * a volume manager. Replace the absolute volume path by $HOME. */ char *replace_volume_path_HOME(char *buf, size_t size) { static char *home = NULL; /* value of $HOME env variable */ static char home_abs[DD_MAXPATH]; /* absolute volume path of $HOME */ static char status = 0; static size_t len_home = 0; static size_t len_home_abs = 0; size_t i, len_buf; size_t j; char tmp[DD_MAXPATH]; static char pattern[DD_MAXPATH]; char *ptr1, *ptr2; if (buf == NULL) return(NULL); if ( status == 0 ) { /* not intialised. */ /* initialize only once. */ if ((home = getenv("HOME")) != NULL ) { getcwd(tmp, sizeof(tmp)); /* remember current dir */ if (wcd_chdir(home,0) == 0) { if (getcwd(home_abs, sizeof(home_abs)) == NULL) { status = 3; /* fail */ } else { if (strcmp(home,home_abs) == 0) { status = 4; /* home and home_abs are equal */ } else { if ( ((ptr1 = strrchr(home,DIR_SEPARATOR)) != NULL) && ((ptr2 = strrchr(home_abs,DIR_SEPARATOR)) != NULL)) { if (strcmp(ptr1,ptr2) == 0) { /* Both paths have same user name. Strip user name, so that * also paths from other users benefit if users have a common * volume prefix. Depends on how Volume Manager was configured. */ ptr1 = '\0'; ptr2 = '\0'; } } strncpy(pattern, home_abs, sizeof(pattern)-1); strcat(pattern,"*"); len_home = strlen(home); len_home_abs = strlen(home_abs); if (len_home <= len_home_abs) { status = 1; /* home and home_abs are not equal */ } else { status = 2; /* home and home_abs are not equal */ } } } wcd_chdir(tmp,0); /* go back */ } else { status = 5; /* fail */ } } else { status = 6; /* fail */ } /* printf("status = %d\n", status); */ } if ( status == 1 ) /* $HOME is shorter or equal length than volume name */ { if (dd_match(buf, pattern , 0)) { len_buf = strlen(buf); for (i=0; i < len_home; i++) buf[i] = home[i]; j = i; for (i=len_home_abs; i < len_buf; i++) { buf[j] = buf[i]; ++j; } buf[j] = '\0'; } } if ( status == 2 ) /* $HOME is longer than volume name */ { if (dd_match(buf, pattern, 0)) { len_buf = strlen(buf); for (i=0; (i < len_home) && (i < size); i++) tmp[i] = home[i]; j = i; for (i=len_home_abs; (i < len_buf) && (i < size); i++) { tmp[j] = buf[i]; ++j; } tmp[j] = '\0'; strcpy(buf,tmp); } } return(buf); } #endif char *wcd_getcwd(char *buf, size_t size) { char *err; char *errstr; err = getcwd(buf, size); if ( err == NULL) { errstr = strerror(errno); print_error(_("Unable to get current working directory: %s\n"), errstr); } #ifdef UNIX else replace_volume_path_HOME(buf,size); #endif return(err); } int wcd_chdir(char *buf, int quiet) { char *errstr; int err; err = chdir(buf); if ( !quiet && err) { errstr = strerror(errno); print_error(_("Unable to change to directory %s: %s\n"), buf, errstr); } return(err); } int wcd_rmdir(char *buf, int quiet) { char *errstr; int err; err = rmdir(buf); if ( !quiet && err) { errstr = strerror(errno); print_error(_("Unable to remove directory %s: %s\n"), buf, errstr); } return(err); } /****************************************************************** * * int wcd_isdir(char *dir) * * test if *dir points to a directory. * * returns 0 on success, -1 when it fails. * ******************************************************************/ int wcd_isdir(char *dir, int quiet) { struct stat buf; char *errstr; if (stat(dir, &buf) == 0) { if (S_ISDIR(buf.st_mode)) return(0); else return(-1); } else { if (!quiet) { errstr = strerror(errno); print_error("%s: %s\n", dir, errstr); } return(-1); } } #endif wcd-5.2.5/msys/0000775000175000017500000000000012345660655013525 5ustar waterlanwaterlanwcd-5.2.5/msys/Makefile0000664000175000017500000000310712101167345015152 0ustar waterlanwaterlan PREFIX = /usr prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CFLAGS = -O2 -Wall -I. CURSES = pdcurses ENABLE_NLS = 1 DEFS = -DUNIX -DWCD_MSYS ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UCS ifdef CURSES DEFS += -DPDC_WIDE endif EXTRA_OBJ += wcwidth.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdmsys.exe VERSIONSUFFIX = -msys all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} dist-zip : ${MAKE} -C ../src dist-zip PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} dist-tgz : ${MAKE} -C ../src dist-tgz PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} dist : dist-tgz strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win32zsh/0000775000175000017500000000000012345660655014221 5ustar waterlanwaterlanwcd-5.2.5/win32zsh/Makefile0000664000175000017500000000365512345431710015656 0ustar waterlanwaterlan PREFIX = c:/usr/local prefix = $(PREFIX) exec_prefix = $(prefix) MKDIR = mkdir LIBS_EXTRA = -lkernel32 -luser32 -lmpr CFLAGS = -O2 -Wall -Wextra -Wconversion -Wno-unused-parameter CURSES = pdcursesw ENABLE_NLS = DEFS = -DWCD_WINZSH ifdef CURSES LIB_CURSES = -l${CURSES} DEFS += -DWCD_USECURSES -DPDC_STATIC_BUILD DEFS += -DPDC_WIDE EXTRA_OBJ += wcwidth.o endif ifdef ENABLE_NLS LIBS_EXTRA += -lintl -liconv endif ifdef WCD_UTF8 # WCD_UTF8 was used in older versions. UCS=1 endif ifdef UNINORM UCS=1 endif ifdef UCS EXTRA_OBJ += matchw.o endif bindir = ${exec_prefix}/bin PROGRAM = wcdwin32zsh.exe VERSIONSUFFIX = -win32zsh ZIPOBJ_EXTRA = ifdef ENABLE_NLS # Using MinGW gettext,iconv ZIPOBJ_EXTRA += bin/libintl-8.dll bin/libiconv-2.dll # libgcc_s_dw2-1 and libwinpthread-1 are needed when built with MSYS2 ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ifdef UNINORM ifndef ENABLE_NLS ZIPOBJ_EXTRA += bin/libgcc_s_dw2-1.dll bin/libwinpthread-1.dll endif ZIPOBJ_EXTRA += bin/libunistring-0.dll endif all : ${MAKE} -C ../src all PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} EXTRA_OBJ="${EXTRA_OBJ}" ENABLE_NLS=${ENABLE_NLS} install : ${MAKE} -C ../src install PROGRAM=${PROGRAM} CFLAGS="${CFLAGS}" CURSES=${CURSES} LIB_CURSES=${LIB_CURSES} DEFS="${DEFS}" LIBS_EXTRA="${LIBS_EXTRA}" prefix=${prefix} MKDIR=${MKDIR} EXTRA_OBJ="${EXTRA_OBJ}" INSTALL_OBJS_DOC_INSTALL="../doc/INST_DOS.txt ../doc/INSTALL.txt" ENABLE_NLS=${ENABLE_NLS} uninstall : ${MAKE} -C ../src uninstall PROGRAM=${PROGRAM} prefix=${prefix} ENABLE_NLS=${ENABLE_NLS} dist : ${MAKE} -C ../src dist-zip ZIPOBJ_EXTRA="${ZIPOBJ_EXTRA}" PROGRAM=${PROGRAM} prefix=${prefix} VERSIONSUFFIX=${VERSIONSUFFIX} ENABLE_NLS=${ENABLE_NLS} strip: ${MAKE} -C ../src strip PROGRAM=${PROGRAM} mostlyclean : ${MAKE} -C ../src mostlyclean clean : ${MAKE} -C ../src clean wcd-5.2.5/win32zsh/vc/0000775000175000017500000000000012345660655014631 5ustar waterlanwaterlanwcd-5.2.5/win32zsh/vc/makefile0000775000175000017500000000170712317636535016340 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = cl.exe /nologo LINK = link.exe /nologo PROGRAM = wcdwin32zsh.exe DEFINES = /DWCD_WINZSH CURSES = pdcursesw !if "$(CURSES)" != "" DEFINES = $(DEFINES) /DWCD_USECURSES /DPDC_WIDE !endif CFLAGS = $(DEFINES) /I$(SRCDIR) /I$(SRCDIR)\c3po CFLAGS_VERSION = -DVERSION=\"$(VERSION)\" -DVERSION_DATE=\"$(VERSION_DATE)\" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LIBS = mpr.lib !if "$(CURSES)" != "" OBJS = $(OBJS) dirnode.obj colors.obj graphics.obj LIBS = $(LIBS) user32.lib advapi32.lib $(CURSES).lib !endif !if "$(UCS)" == "1" OBJS = $(OBJS) matchw.obj LIBS = $(LIBS) shell32.lib VERSIONSUFFIX = -win32zsh-ucs !else VERSIONSUFFIX = -win32zsh !endif HTMLEXT = htm prefix = c:\usr\local !include $(SRCDIR)\vc.mak wcd-5.2.5/win32zsh/watcom/0000775000175000017500000000000012345660655015513 5ustar waterlanwaterlanwcd-5.2.5/win32zsh/watcom/makefile0000775000175000017500000000273012317636535017217 0ustar waterlanwaterlanSRCDIR = ..\..\src !include $(SRCDIR)\version.mk CC = wcc386 PROGRAM = wcdwin32zsh.exe DEFINES = -dWCD_WINZSH CURSES = pdcursesw !ifneq CURSES DEFINES += -dWCD_USECURSES -dPDC_WIDE !endif CFLAGS = $(DEFINES) -i=$(SRCDIR) -i=$(SRCDIR)\c3po -w4 -e25 -zq -od -d2 -5r -bt=nt -mf CFLAGS_VERSION = -DVERSION="$(VERSION)" -DVERSION_DATE="$(VERSION_DATE)" OBJS = wcd.obj match.obj stack.obj nameset.obj error.obj text.obj WcdStack.obj display.obj dosdir.obj wfixpath.obj intset.obj wcddir.obj command.obj matchl.obj querycp.obj wcwidth.obj LOBJS = wcd.obj,match.obj,stack.obj,nameset.obj,error.obj,text.obj,WcdStack.obj,display.obj,dosdir.obj,wfixpath.obj,intset.obj,wcddir.obj,command.obj,matchl.obj,querycp.obj,wcwidth.obj !ifneq CURSES OBJS += dirnode.obj colors.obj graphics.obj LOBJS +=,dirnode.obj,colors.obj,graphics.obj !endif !ifeq UCS 1 OBJS += matchw.obj LOBJS +=,matchw.obj VERSIONSUFFIX = -win32zsh-ucs !else VERSIONSUFFIX = -win32zsh !endif HTMLEXT = htm DOCFILES = $(SRCDIR)\man\man1\wcd.txt $(SRCDIR)\man\man1\wcd.$(HTMLEXT) prefix = c:\usr\local TARGET = nt all: $(PROGRAM) $(DOCFILES) .SYMBOLIC $(PROGRAM): $(OBJS) @%create wcd.lnk @%append wcd.lnk FIL $(LOBJS) @%append wcd.lnk library mpr.lib !ifneq CURSES @%append wcd.lnk library $(CURSES).lib !endif wlink name wcdwin32zsh d all SYS $(TARGET) op inc op m op st=64k op maxe=25 op q op symf @wcd.lnk del wcd.lnk !include $(SRCDIR)\watcom.mif wcd-5.2.5/README.txt0000664000175000017500000000005111253401345014206 0ustar waterlanwaterlan For documentation see directory `doc'. wcd-5.2.5/misc/0000775000175000017500000000000012345660655013465 5ustar waterlanwaterlanwcd-5.2.5/misc/unix2dos.mk0000775000175000017500000000202512325233774015567 0ustar waterlanwaterlaninclude ../src/version.mk UNIXVERSION=wcd-${VERSION} DOSVERSION=wcd${VERSION_SHORT} # Keep dates so that no make target is out of date. # # This Makefile requires 'dos2unix' with --keepdate option: # http://waterlan.home.xs4all.nl/dos2unix.html # http://sourceforge.net/projects/dos2unix/ unix2dos: cd ../.. ; cp -Rp ${UNIXVERSION} ${DOSVERSION} cd ../../${DOSVERSION}/src ; unix2dos --keepdate *.h *.c *.mk cd ../../${DOSVERSION} ; unix2dos --keepdate */Makefile cd ../../${DOSVERSION}/src/c3po ; unix2dos --keepdate * cd ../../${DOSVERSION}/src/patch ; unix2dos --keepdate *.* cd ../../${DOSVERSION} ; unix2dos --keepdate *.txt cd ../../${DOSVERSION}/doc ; unix2dos --keepdate *.txt cd ../../${DOSVERSION}/doc ; unix2dos --keepdate --add-bom README.txt cd ../../${DOSVERSION} ; unix2dos --keepdate file_id.diz cd ../../${DOSVERSION}/src/man ; unix2dos --keepdate man1/*.txt cd ../../${DOSVERSION}/src/man ; unix2dos --keepdate --add-bom */man1/*.txt cd ../../${DOSVERSION}/src/man ; unix2dos --keepdate man1/*.htm */man1/*.htm wcd-5.2.5/misc/bldwin32.sh0000775000175000017500000000126212321304444015432 0ustar waterlanwaterlan#!/bin/sh set -e set -x cd ../win32 make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= make mostlyclean all strip install dist ENABLE_NLS= UNINORM=1 make mostlyclean all strip install dist ENABLE_NLS=1 UNINORM=1 cd ../win32psh make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= make mostlyclean all strip install dist ENABLE_NLS= UNINORM=1 make mostlyclean all strip install dist ENABLE_NLS=1 UNINORM=1 cd ../win32zsh make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= wcd-5.2.5/misc/bldwin64.sh0000775000175000017500000000146012341177254015450 0ustar waterlanwaterlan#!/bin/sh set -e set -x cd ../win64 make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= make mostlyclean all strip install dist ENABLE_NLS= UNINORM=1 make mostlyclean all strip install dist ENABLE_NLS=1 UNINORM=1 cd ../win64psh make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= make mostlyclean all strip install dist ENABLE_NLS= UNINORM=1 make mostlyclean all strip install dist ENABLE_NLS=1 UNINORM=1 cd ../win64zsh make mostlyclean all strip install dist ENABLE_NLS= UCS= make mostlyclean all strip install dist ENABLE_NLS=1 UCS= make mostlyclean all strip install dist ENABLE_NLS= UNINORM=1 make mostlyclean all strip install dist ENABLE_NLS=1 UNINORM=1