- This is the new version (1.42.5) of the second extended file
+ This is the new version (1.42.8) of the second extended file
system management programs.
From time to time, I release new versions of e2fsprogs, to fix
+E2fsprogs 1.42.8 (June 20, 2013)
+================================
+
+As a part of mke2fs's option parsing cleanup, the use of the -R option
+will give a warning that it is depreated (it has been so documented
+since 2005) and -E should be used instead.
+
+Mke2fs will not give warnings about the bigalloc and quota options in
+quiet mode.
+
+If an invalid journal size is given to mke2fs, it will now complain
+and exit sooner.
+
+Debugfs was erroneously giving spurious error messages for certain
+extent_inode subcommands which take arguments (split_node,
+replace_node, and insert_node). This has been fixed.
+
+Fix the parsing of the 's' (sectors) in parse_num_blocks2, which among
+other programs is used by mke2fs.
+
+Change mke2fs so that it does not set the root directory to the real
+uid/gid of the mke2fs process. Add the extended option root_owner to
+override this behavior.
+
+Fix resize2fs when shrinking file systems to make sure that bitmap
+blocks aren't left outside the bounds of the shrunken file system.
+This could happen with flex_bg file systems that were grown using
+the old online resizing algorithm.
+
+E2fsck will now detect and repair corrupted extent trees which contain
+invalid extents at the end of the extent tree leaf block.
+
+E2fsck will now longer complain about zero length extended attribute
+values.
+
+Fix a regression introduced in e2fsprogs v1.42 which caused e2image -s
+to crash.
+
+Add safety check so tune2fs will not attempt to set the inode size to
+be larger than the block size.
+
+Fix e2fsck so it can check a read-only root file system with an
+external journal. (Addresses Debian Bug: #707030
+
+Fix off-line resizing of file systems with flex_bg && !resize_inode
+(Addresses Debian Bug: #696746)
+
+Fix e2image with large (> 32-bit) file systems (Addresses Debian Bug:
+#703067)
+
+Enhance chattr to allow clearing the extent flag if the kernel allows
+migrating extent based files to use indirect blocks.
+
+Update German translation.
+
+Updated/fixed various man pages. (Addresses Debian Bugs: #712429,
+#712430, #707609)
+
+Fixed various Debian Packaging Issues (Addresses Debian Bug #708307)
+
+Programmer's Notes
+------------------
+
+Use secure_getenv() in preference to __secure_getenv().
+
+Optimize CPU utilization of ext2fs_bg_has_super().
+
+Fix ext2fs_llseek() on 32-bit i386 systems to work correctly when
+SEEK_CUR is used with large files.
+
+The ext2fs_read_inode_full() function will no longer use
+fs->read_inode() if the caller has requested more than the base 128
+byte inode structure and the inode size is greater than 128 bytes.
+
+Fix build failure with --enable-jbd-debug.
+
+Clean up filtering of outputs for the regression tests by using a
+common sed script.
+
+Fix gcc -Wall and clang nits.
+
+
+E2fsprogs 1.42.7 (January 21, 2013)
+===================================
+
+Add warnings to mke2fs, resize2fs, and tune2fs that the bigalloc and
+quota features are still under development. For more information
+please see:
+ * https://ext4.wiki.kernel.org/index.php/Bigalloc
+ * https://ext4.wiki.kernel.org/index.php/Quota
+
+Add some new options to filefrag from Lustre's patches to e2fsprogs:
+ * add -k option to print extents in kB-sized units (like df -k)
+ * add -b {blocksize} to print extents in blocksize units
+ * add -e option to print extent format, even when FIBMAP is used
+ * add -X option to print extents in hexadecimal format
+
+Fix resize2fs so that it can handle off-line resizes of file systems
+with the flex_bg feature but without a resize_inode (or if we run out
+of reserved gdt blocks). This also fixes a problem where if the user
+creates a filesystem with a restricted number of reserved gdt blocks,
+an off-line resize which grows the file system could potentially
+result in file system corruption.
+
+Fix a resize2fs bug which could cause it to corrupt bigalloc file
+systems when doing an off-line resize.
+
+Further optimize resize2fs so it doesn't use quite as much CPU when
+resizing very large file systems.
+
+Fixed 32-bit overflow bugs which could cause resize2fs to fail and
+possibly corrupt the file system while resizing 64-bit file systems.
+
+Fix a bug in mke2fs where parsing "-E resize=NNN" will result in a
+mke2fs crash due to a divide-by-zero if the 64bit file system feature
+is enabled.
+
+Add better error checking to mke2fs to check for invalid parameters
+when creating bigalloc file system.
+
+When creating bigalloc filesystems, the -g option to mke2fs will now
+specify the number of clusters per block group.
+
+Add to debugfs the functionality to corrupt a specific file system
+block via the "zap_block" command.
+
+Add to debugfs the functionality to print out a hex dump of a block in
+the file system via the "block_dump" command.
+
+Add to debugfs the functionality to manipulate the extent tree
+directly via the "extent_open" command.
+
+Fixed debugfs's mknod command so that it updates the block group
+statistics.
+
+Fix e2fsck so it can detect and fix inconsistencies in the interior
+nodes of an inode's extent tree.
+
+Fix a potential memory corruption failure in e2fsck's error path if
+the call to ext2fs_open2() fails.
+
+Fix e2fsck if its logging function is enabled in e2fsck.conf, and the
+resulting file name for the log file is longer than 100 bytes, that it
+properly handles this situation instead of crashing.
+
+E2fsck will now report the amount of memory that it attempted to
+allocate when a memory allocation request fails, to make it easier to
+track down the problem.
+
+Fix mke2fs's handling of the mmp_update_interval option. (Addresses
+Lustre Bug: LU-1888)
+
+E2image can now include all data blocks in the e2image output file
+when the user specifies the -a option.
+
+If e2fsprogs is compiled without --enable-quota, make sure that
+tune2fs can not turn on the feature for new-style quota support, since
+afterwards, none of the e2fsprogs tools will be willing to touch that
+file system.
+
+Optimize e2fsck's so that it uses much less CPU for large file
+systems. This can result in significant speedups, especially on
+CPU-constrained systems. This was primarily done by optimizing
+libext2fs's bitmap functions. (Addresses Google Bug: #7534813)
+
+Fix debugfs's htree command so that all its messages are sent through
+the pager.
+
+Fixed debugfs's "dump_file" and "cat" functions work correctly
+on file systems whose block size is greater than 8k.
+
+Fix e2freefrag so it works on 64-bit file systems, and so it uses much
+less memory. (Addresses Google Bug: 7269948)
+
+Update the spd_readdir.c file in the contrib directory to include some
+additions which were made in 2008 that didn't get folded into the
+version which we checked into the e2fsprogs source tree. These
+enhancements include thread safety, support for readdir64_r(), and
+safe_getenv() support in case spd_readdir.so is used for setuid binaries.
+
+Update Czech, Dutch, French, German, Polish, Sweedish, and Vietnamese
+translations
+
+Add a command to debugfs to create symlinks.
+
+Document the bigalloc feature in the mke2fs man page. (Addresses
+Debian Bug: #669730)
+
+
+Programmer's Notes
+------------------
+
+Fix gcc -Wall nits.
+
+Fix a spelling typo in the libext2fs texinfo documentation.
+
+Change the output from "make check" so that tools such as emacs's "M-x
+compile" does not mistake the output as containing a compiler error.
+
+Export two new functions from libext2fs: ext2fs_extent_node_split()
+and ext2fs_extent_goto2().
+
+The ext2fs_extents_fix_parents() was fixed so it does not modify the
+location of the extent handle if its current location is at an
+interior node, rather than a leaf node of an inode's extent tree.
+
+Add a regression test to assure that e2fsck can correctly fix an
+inconsistent interior node in an inode's extent tree.
+
+The ext2fs_{mark,unmark,test}_block_bitmap_range2() functions now
+correctly support bigalloc file systems which use store block usage
+information in units of clusters.
+
+Fixed the help text in the configure script for --enable-quota.
+
+The m68k-specific bitops code has been removed since they were
+incorrectly treating bit numbers with the high bit set as signed
+integers. Furthermore, modern compilers do a good enough job
+optimizing the generic code there is no point in having the m68k
+specific asm statements.
+
+Fixed how we link the test programs so they always use the static
+libraries, so that we test using the libraries which we have just
+built.
+
+Update config.guess and config.sub to the latest versions from the GNU
+project.
+
+Fixed the com_err.texinfo file so that it can produce a valid
+postscript/pdf printed output.
+
+Add a regression test which checks debugfs's ability to create
+symlinks, named FIFO's, and device nodes.
+
+Add a function ext2fs_symlink(), which creates symlinks to the
+libext2fs library.
+
+Add debugging code so we can test old kernel interfaces for online
+resize to resize2fs. This backwards compatibility checking is keyed
+off of the RESIZE2FS_KERNEL_VERSION, which is designed to allow us to
+test the functionality of the kernel's older resize ioctls without
+needing to install an old version of resize2fs, and to also test a
+modern resize2fs's ability to work with older kernels without having
+to install an older version of the kernel.
+
+
+E2fsprogs 1.42.6 (September 21, 2012)
+=====================================
+
+When mke2fs creates file systems with lazy itable initialization, the
+progress updates for writing the inode table happens so quickly that
+on a serial console, the time to write the progress updates can be the
+bottleneck. So mke2fs will now only update its progress indicators
+once a second.
+
+Resize2fs will skip initializing the inode tables if the kernel
+supports lazy_itable_init, which speeds up growing off-line growth of
+uninit_bg file systems significantly. Resize2fs will now also
+correctly set the itable_unused field in the block group descriptor to
+speed up the first e2fsck after the file system is grown.
+
+Resize2fs has been fixed so that on-line resizing of meta_bg file
+systems work correctly. This is needed to grow file system which are
+larger than 16T.
+
+Resize2fs will now correctly handle resizing file systems to 16TB on
+32-bit file systems when "16TB" is specified on the command line.
+
+Fix mke2fs so that it will be careful to set the reserved blocks ratio
+larger than 50%; this can happen when creating small file systems and
+when the last block group is dropped because there are not enough
+blocks to support the metadata blocks in the last block group.
+
+Fixed spelling mistake in debugfs's help message.
+
+Fixed a potential seg fault in e2fsck when there is an I/O error while
+reading the superblock.
+
+Fixed various Debian Packaging Issues (Addresses Debian Bug #677497)
+
+Updated/fixed various man pages. (Addresses Sourceforge Bug:
+#3559210)
+
+Programmer's Notes
+------------------
+
+The configure option --enable-relative-symlink was broken so that it
+needed to be --enable-symlink-relative-symlinks. We will support both
+for at least two years, but then the worng configure option will be
+removed.
+
+Fixed a regression introduced in 1.42.5 so the link order for
+e2fsprogs' libraries will be correct for both static and shared
+linking. (Addresses Sourceforge Bug: #3554345)
+
+Add support for e2fsprogs to be compiled using clang/LLVM.
+
+Fix portability problems on non-Linux systems: avoid compile failures
+on systems that don't have malloc.h
+
+Fix f_mmp regression test suite so that debugfs gets killed if the
+test is interrupted.
+
+
+
E2fsprogs 1.42.5 (July 29, 2012)
================================
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 2011, 2012, 2013 Free Software Foundation, Inc.
-timestamp='2012-02-10'
+timestamp='2012-12-30'
# This file 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
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner. Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# Originally written by Per Bothner.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
+2012, 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
+ NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 2011, 2012, 2013 Free Software Foundation, Inc.
-timestamp='2012-02-10'
+timestamp='2013-01-11'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file 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
+# This file 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 3 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.
+# 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 <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
+2012, 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | be32 | be64 \
+ | arc \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze*)
basic_machine=microblaze-xilinx
;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
basic_machine=i386-pc
os=-mingw32
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-uclibc* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
c4x-* | tic4x-*)
os=-coff
;;
+ hexagon-*)
+ os=-elf
+ ;;
tic54x-*)
os=-coff
;;
cat >> asm_types.c <<EOF
#include <stdio.h>
#include <stdlib.h>
-main(int argc, char **argv)
+int main(int argc, char **argv)
{
#ifdef __U8_TYPEDEF
if (sizeof(__U8_TYPEDEF) != 1) {
printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n",
- sizeof(__U8_TYPEDEF));
+ (int) sizeof(__U8_TYPEDEF));
exit(1);
}
#else
#ifdef __S8_TYPEDEF
if (sizeof(__S8_TYPEDEF) != 1) {
printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n",
- sizeof(__S8_TYPEDEF));
+ (int) sizeof(__S8_TYPEDEF));
exit(1);
}
#else
#ifdef __U16_TYPEDEF
if (sizeof(__U16_TYPEDEF) != 2) {
printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n",
- sizeof(__U16_TYPEDEF));
+ (int) sizeof(__U16_TYPEDEF));
exit(1);
}
#else
#ifdef __S16_TYPEDEF
if (sizeof(__S16_TYPEDEF) != 2) {
printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n",
- sizeof(__S16_TYPEDEF));
+ (int) sizeof(__S16_TYPEDEF));
exit(1);
}
#else
#ifdef __U32_TYPEDEF
if (sizeof(__U32_TYPEDEF) != 4) {
printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n",
- sizeof(__U32_TYPEDEF));
+ (int) sizeof(__U32_TYPEDEF));
exit(1);
}
#else
#ifdef __S32_TYPEDEF
if (sizeof(__S32_TYPEDEF) != 4) {
printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n",
- sizeof(__S32_TYPEDEF));
+ (int) sizeof(__S32_TYPEDEF));
exit(1);
}
#else
#ifdef __U64_TYPEDEF
if (sizeof(__U64_TYPEDEF) != 8) {
printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n",
- sizeof(__U64_TYPEDEF));
+ (int) sizeof(__U64_TYPEDEF));
exit(1);
}
#else
#ifdef __S64_TYPEDEF
if (sizeof(__S64_TYPEDEF) != 8) {
printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n",
- sizeof(__S64_TYPEDEF));
+ (int) sizeof(__S64_TYPEDEF));
exit(1);
}
#else
#warning __S64_TYPEDEF not defined
#endif
- exit(0);
+ return 0;
}
EOF
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65.
+# Generated by GNU Autoconf 2.69.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
fi # as_fn_arith
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
UNI_DIFF_OPTS
SEM_INIT_LIB
SOCKET_LIB
+SIZEOF_OFF_T
SIZEOF_LONG_LONG
SIZEOF_LONG
SIZEOF_INT
with_root_prefix
enable_maintainer_mode
enable_symlink_install
+enable_relative_symlinks
enable_symlink_relative_symlinks
enable_symlink_build
enable_verbose_makecmds
enable_libuuid
enable_libblkid
enable_quota
+enable_backtrace
enable_debugfs
enable_imager
enable_resizer
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--enable-maintainer-mode enable makefile rules useful for maintainers
--enable-symlink-install use symlinks when installing instead of hard links
--enable-relative-symlinks use relative symlinks when installing
+
--enable-symlink-build use symlinks while building instead of hard links
--enable-verbose-makecmds enable verbose make command output
--enable-compression enable EXPERIMENTAL compression support
--disable-testio-debug disable the use of the test I/O manager for debugging
--disable-libuuid do not build private uuid library
--disable-libblkid do not build private blkid library
- --enable-libquota enable quota support
+ --enable-quota enable quota support
+ --disable-backtrace disable use backtrace
--disable-debugfs disable support of debugfs program
--disable-imager disable support of e2image program
--disable-resizer disable support of e2resize program
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.65
+generated by GNU Autoconf 2.69
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=no"
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ if eval \${$3+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_mongrel
main ()
{
static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
main ()
{
static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
main ()
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
rm -f conftest.val
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$4+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
eval ac_res=\$$4
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
-# ac_fn_c_check_decl LINENO SYMBOL VAR
-# ------------------------------------
-# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
ac_fn_c_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
-$as_echo_n "checking whether $2 is declared... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
int
main ()
{
-#ifndef $2
- (void) $2;
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
#endif
;
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_decl
cat >config.log <<_ACEOF
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
ac_aux_dir=
for ac_dir in config "$srcdir"/config; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
DLOPEN_LIB=-ldl
$as_echo "#define HAVE_DLOPEN 1" >>confdefs.h
# Check whether --with-cc was given.
if test "${with_cc+set}" = set; then :
- withval=$with_cc; as_fn_error "--with-cc no longer supported; use CC= instead" "$LINENO" 5
+ withval=$with_cc; as_fn_error $? "--with-cc no longer supported; use CC= instead" "$LINENO" 5
fi
# Check whether --with-ccopts was given.
if test "${with_ccopts+set}" = set; then :
- withval=$with_ccopts; as_fn_error "--with-ccopts no longer supported; use CFLAGS= instead" "$LINENO" 5
+ withval=$with_ccopts; as_fn_error $? "--with-ccopts no longer supported; use CFLAGS= instead" "$LINENO" 5
fi
# Check whether --with-ldopts was given.
if test "${with_ldopts+set}" = set; then :
- withval=$with_ldopts; as_fn_error "--with-ldopts no longer supported; use LDFLAGS= instead" "$LINENO" 5
+ withval=$with_ldopts; as_fn_error $? "--with-ldopts no longer supported; use LDFLAGS= instead" "$LINENO" 5
fi
ac_ext=c
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
CPP=
fi
if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then :
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
fi
+relative_symlink_defined=
+# Check whether --enable-relative-symlinks was given.
+if test "${enable_relative_symlinks+set}" = set; then :
+ enableval=$enable_relative_symlinks; if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=
+ relative_symlink_defined=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5
+$as_echo "Disabling relative symlinks for install" >&6; }
+else
+ SYMLINK_RELATIVE=--relative
+ relative_symlink_defined=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5
+$as_echo "Enabling relative symlinks for install" >&6; }
+fi
+fi
+
# Check whether --enable-symlink-relative-symlinks was given.
if test "${enable_symlink_relative_symlinks+set}" = set; then :
enableval=$enable_symlink_relative_symlinks; if test "$enableval" = "no"
then
- SYMLINK_RELATIVE=
+ SYMLINK_RELATIVE=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install" >&5
$as_echo "Disabling relative symlinks for install" >&6; }
else
SYMLINK_RELATIVE=--relative
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling symlinks for install" >&5
-$as_echo "Enabling symlinks for install" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling relative symlinks for install" >&5
+$as_echo "Enabling relative symlinks for install" >&6; }
fi
else
- SYMLINK_RELATIVE=
+ if test -z "$relative_symlink_defined"
+then
+ SYMLINK_RELATIVE=
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling relative symlinks for install by default" >&5
$as_echo "Disabling relative symlinks for install by default" >&6; }
+fi
fi
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
enableval=$enable_libuuid; if test "$enableval" = "no"
then
if test -z "$PKG_CONFIG"; then
- as_fn_error "pkg-config not installed; please install it." "$LINENO" 5
+ as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
-if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+if ${ac_cv_lib_uuid_uuid_generate+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
-if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then :
LIBUUID=`$PKG_CONFIG --libs uuid`;
STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`
else
- as_fn_error "external uuid library not found" "$LINENO" 5
+ as_fn_error $? "external uuid library not found" "$LINENO" 5
fi
UUID_CMT=#
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
enableval=$enable_libblkid; if test "$enableval" = "no"
then
if test -z "$PKG_CONFIG"; then
- as_fn_error "pkg-config not installed; please install it." "$LINENO" 5
+ as_fn_error $? "pkg-config not installed; please install it." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5
$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; }
-if test "${ac_cv_lib_blkid_blkid_get_cache+set}" = set; then :
+if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5
$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; }
-if test "x$ac_cv_lib_blkid_blkid_get_cache" = x""yes; then :
+if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then :
LIBBLKID=`$PKG_CONFIG --libs blkid`;
STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`
else
- as_fn_error "external blkid library not found" "$LINENO" 5
+ as_fn_error $? "external blkid library not found" "$LINENO" 5
fi
BLKID_CMT=#
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $ac_pt_PKG_CONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
+
+# Check whether --enable-backtrace was given.
+if test "${enable_backtrace+set}" = set; then :
+ enableval=$enable_backtrace; if test "$enableval" = "no"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Disabling use of backtrace" >&5
+$as_echo "Disabling use of backtrace" >&6; }
+ $as_echo "#define DISABLE_BACKTRACE 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace" >&5
+$as_echo "Enabling use of backtrace" >&6; }
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Enabling use of backtrace by default" >&5
+$as_echo "Enabling use of backtrace by default" >&6; }
+
+fi
+
# Check whether --enable-debugfs was given.
if test "${enable_debugfs+set}" = set; then :
enableval=$enable_debugfs; if test "$enableval" = "no"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5
$as_echo_n "checking for thread local storage (TLS) class... " >&6; }
- if test "${ac_cv_tls+set}" = set; then :
+ if ${ac_cv_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
set dummy msgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
set dummy gmsgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy xgettext; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
set dummy msgmerge; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGMERGE" in
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5
$as_echo_n "checking for strerror in -lcposix... " >&6; }
-if test "${ac_cv_lib_cposix_strerror+set}" = set; then :
+if ${ac_cv_lib_cposix_strerror+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5
$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test "x$ac_cv_lib_cposix_strerror" = x""yes; then :
+if test "x$ac_cv_lib_cposix_strerror" = xyes; then :
LIBS="$LIBS -lcposix"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then :
+if ${ac_cv_c_const+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
int
main ()
{
-/* FIXME: Include the comments suggested by Paul. */
+
#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
+ /* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
- const charset cs;
+ const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this saying
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed" >&5
$as_echo_n "checking for signed... " >&6; }
-if test "${bh_cv_c_signed+set}" = set; then :
+if ${bh_cv_c_signed+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then :
+if ${ac_cv_c_inline+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_inline=no
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = x""yes; then :
+if test "x$ac_cv_type_off_t" = xyes; then :
else
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = x""yes; then :
+if test "x$ac_cv_type_size_t" = xyes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5
$as_echo_n "checking for long long... " >&6; }
-if test "${ac_cv_type_long_long+set}" = set; then :
+if ${ac_cv_type_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
$as_echo_n "checking for long double... " >&6; }
-if test "${gt_cv_c_long_double+set}" = set; then :
+if ${gt_cv_c_long_double+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$GCC" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then :
+if ${gt_cv_c_wchar_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then :
+if ${gt_cv_c_wint_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${jm_ac_cv_header_inttypes_h+set}" = set; then :
+if ${jm_ac_cv_header_inttypes_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
$as_echo_n "checking for stdint.h... " >&6; }
-if test "${jm_ac_cv_header_stdint_h+set}" = set; then :
+if ${jm_ac_cv_header_stdint_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
$as_echo_n "checking for intmax_t... " >&6; }
-if test "${gt_cv_c_intmax_t+set}" = set; then :
+if ${gt_cv_c_intmax_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5
$as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; }
-if test "${gt_cv_func_printf_posix+set}" = set; then :
+if ${gt_cv_func_printf_posix+:} false; then :
$as_echo_n "(cached) " >&6
else
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
$as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then :
+if ${ac_cv_working_alloca_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then :
+if ${ac_cv_func_alloca_works+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
# endif
# endif
# endif
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then :
+if ${ac_cv_os_cray+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
$as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then :
+if ${ac_cv_c_stack_direction+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
/* end confdefs.h. */
$ac_includes_default
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
for ac_func in getpagesize
do :
ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = x""yes; then :
+if test "x$ac_cv_func_getpagesize" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETPAGESIZE 1
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
$as_echo_n "checking for working mmap... " >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
+if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5
$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
-if test "${ac_cv_gnu_library_2_1+set}" = set; then :
+if ${ac_cv_gnu_library_2_1+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5
$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; }
-if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then :
+if ${gt_cv_int_divbyzero_sigfpe+:} false; then :
$as_echo_n "(cached) " >&6
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5
$as_echo_n "checking for unsigned long long... " >&6; }
-if test "${ac_cv_type_unsigned_long_long+set}" = set; then :
+if ${ac_cv_type_unsigned_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gt_cv_header_inttypes_h+set}" = set; then :
+if ${gt_cv_header_inttypes_h+:} false; then :
$as_echo_n "(cached) " >&6
else
if test $gt_cv_header_inttypes_h = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if test "${gt_cv_inttypes_pri_broken+set}" = set; then :
+if ${gt_cv_inttypes_pri_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
for ac_header in stdint.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
+if test "x$ac_cv_header_stdint_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDINT_H 1
_ACEOF
for ac_header in stdint.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
+if test "x$ac_cv_header_stdint_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDINT_H 1
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
$as_echo_n "checking for non-GNU ld... " >&6; }
fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$LD"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
$as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
else
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snprintf is declared" >&5
$as_echo_n "checking whether _snprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snprintf+set}" = set; then :
+if ${ac_cv_have_decl__snprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snwprintf is declared" >&5
$as_echo_n "checking whether _snwprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snwprintf+set}" = set; then :
+if ${ac_cv_have_decl__snwprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether feof_unlocked is declared" >&5
$as_echo_n "checking whether feof_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_feof_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fgets_unlocked is declared" >&5
$as_echo_n "checking whether fgets_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_fgets_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getc_unlocked is declared" >&5
$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then :
+if ${ac_cv_have_decl_getc_unlocked+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$am_cv_func_iconv" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
$as_echo_n "checking for iconv declaration... " >&6; }
- if test "${am_cv_proto_iconv+set}" = set; then :
+ if ${am_cv_proto_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then :
+if ${am_cv_langinfo_codeset+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then :
+if ${am_cv_val_LC_MESSAGES+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_INTLBISON+set}" = set; then :
+if ${ac_cv_prog_INTLBISON+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$INTLBISON"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_INTLBISON="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libintl+:} false; then :
$as_echo_n "(cached) " >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
$as_echo_n "checking for GNU make... " >&6; }
-if test "${_cv_gnu_make_command+set}" = set; then :
+if ${_cv_gnu_make_command+:} false; then :
$as_echo_n "(cached) " >&6
else
_cv_gnu_make_command='' ;
set dummy ln; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_LN+set}" = set; then :
+if ${ac_cv_path_LN+:} false; then :
$as_echo_n "(cached) " >&6
else
case $LN in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy mv; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MV+set}" = set; then :
+if ${ac_cv_path_MV+:} false; then :
$as_echo_n "(cached) " >&6
else
case $MV in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy cp; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_CP+set}" = set; then :
+if ${ac_cv_path_CP+:} false; then :
$as_echo_n "(cached) " >&6
else
case $CP in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy rm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RM+set}" = set; then :
+if ${ac_cv_path_RM+:} false; then :
$as_echo_n "(cached) " >&6
else
case $RM in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy chmod; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_CHMOD+set}" = set; then :
+if ${ac_cv_path_CHMOD+:} false; then :
$as_echo_n "(cached) " >&6
else
case $CHMOD in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
set dummy sed; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
$as_echo_n "(cached) " >&6
else
case $SED in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy perl; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then :
+if ${ac_cv_path_PERL+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PERL in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ldconfig; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_LDCONFIG+set}" = set; then :
+if ${ac_cv_path_LDCONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $LDCONFIG in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ${ac_tool_prefix}ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AR"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy makeinfo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_MAKEINFO+set}" = set; then :
+if ${ac_cv_prog_MAKEINFO+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$MAKEINFO"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_MAKEINFO="makeinfo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then :
+if ${ac_cv_prog_BUILD_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$BUILD_CC"; then
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_BUILD_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
#endif
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
#endif
"
-if test "x$ac_cv_header_net_if_h" = x""yes; then :
+if test "x$ac_cv_header_net_if_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NET_IF_H 1
_ACEOF
for ac_func in vprintf
do :
ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
-if test "x$ac_cv_func_vprintf" = x""yes; then :
+if test "x$ac_cv_func_vprintf" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_VPRINTF 1
_ACEOF
ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
-if test "x$ac_cv_func__doprnt" = x""yes; then :
+if test "x$ac_cv_func__doprnt" = xyes; then :
$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
ac_fn_c_check_member "$LINENO" "struct dirent" "d_reclen" "ac_cv_member_struct_dirent_d_reclen" "#include <dirent.h>
"
-if test "x$ac_cv_member_struct_dirent_d_reclen" = x""yes; then :
+if test "x$ac_cv_member_struct_dirent_d_reclen" = xyes; then :
$as_echo "#define HAVE_RECLEN_DIRENT 1" >>confdefs.h
ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "#include <sys/types.h>
"
-if test "x$ac_cv_type_ssize_t" = x""yes; then :
+if test "x$ac_cv_type_ssize_t" = xyes; then :
$as_echo "#define HAVE_TYPE_SSIZE_T 1" >>confdefs.h
ac_fn_c_check_decl "$LINENO" "llseek" "ac_cv_have_decl_llseek" "#include <unistd.h>
"
-if test "x$ac_cv_have_decl_llseek" = x""yes; then :
+if test "x$ac_cv_have_decl_llseek" = xyes; then :
$as_echo "#define HAVE_LLSEEK_PROTOTYPE 1" >>confdefs.h
#define _LARGEFILE64_SOURCE
#include <unistd.h>
"
-if test "x$ac_cv_have_decl_lseek64" = x""yes; then :
+if test "x$ac_cv_have_decl_lseek64" = xyes; then :
$as_echo "#define HAVE_LSEEK64_PROTOTYPE 1" >>confdefs.h
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
$as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then :
+if ${ac_cv_sizeof_short+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
if test "$ac_cv_type_short" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (short)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (short)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
$as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then :
+if ${ac_cv_sizeof_int+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
if test "$ac_cv_type_int" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (int)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
$as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then :
+if ${ac_cv_sizeof_long+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
if test "$ac_cv_type_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
$as_echo_n "checking size of long long... " >&6; }
-if test "${ac_cv_sizeof_long_long+set}" = set; then :
+if ${ac_cv_sizeof_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then :
if test "$ac_cv_type_long_long" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "cannot compute sizeof (long long)
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "cannot compute sizeof (long long)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long_long=0
fi
_ACEOF
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
+$as_echo_n "checking size of off_t... " >&6; }
+if ${ac_cv_sizeof_off_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_off_t" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (off_t)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_off_t=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
+$as_echo "$ac_cv_sizeof_off_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+_ACEOF
+
+
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
+SIZEOF_OFF_T=$ac_cv_sizeof_off_t
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_bigendian=unknown
;; #(
*)
- as_fn_error "unknown endianness
+ as_fn_error $? "unknown endianness
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
for ac_header in inttypes.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = x""yes; then :
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_INTTYPES_H 1
_ACEOF
done
ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_intptr_t" = x""yes; then :
+if test "x$ac_cv_type_intptr_t" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_INTPTR_T 1
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat has a st_flags field" >&5
$as_echo_n "checking whether struct stat has a st_flags field... " >&6; }
-if test "${e2fsprogs_cv_struct_st_flags+set}" = set; then :
+if ${e2fsprogs_cv_struct_st_flags+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
if test "$e2fsprogs_cv_struct_st_flags" = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether st_flags field is useful" >&5
$as_echo_n "checking whether st_flags field is useful... " >&6; }
- if test "${e2fsprogs_cv_struct_st_flags_immut+set}" = set; then :
+ if ${e2fsprogs_cv_struct_st_flags_immut+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "#include <sys/types.h>
#include <sys/socket.h>
"
-if test "x$ac_cv_member_struct_sockaddr_sa_len" = x""yes; then :
+if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SA_LEN 1
if test -n "$BLKID_CMT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing blkid_probe_all" >&5
$as_echo_n "checking for library containing blkid_probe_all... " >&6; }
-if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+if ${ac_cv_search_blkid_probe_all+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+ if ${ac_cv_search_blkid_probe_all+:} false; then :
break
fi
done
-if test "${ac_cv_search_blkid_probe_all+set}" = set; then :
+if ${ac_cv_search_blkid_probe_all+:} false; then :
else
ac_cv_search_blkid_probe_all=no
fi
fi
-for ac_func in __secure_getenv backtrace blkid_probe_get_topology chflags fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 getdtablesize getmntinfo getpwuid_r getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mmap msync nanosleep open64 pathconf posix_fadvise posix_memalign prctl setmntent setresgid setresuid srandom strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc
+for ac_func in __secure_getenv backtrace blkid_probe_get_topology chflags fallocate fallocate64 fchown fdatasync fstat64 ftruncate64 getdtablesize getmntinfo getpwuid_r getrlimit getrusage jrand48 llseek lseek64 mallinfo mbstowcs memalign mmap msync nanosleep open64 pathconf posix_fadvise posix_memalign prctl secure_getenv setmntent setresgid setresuid srandom strcasecmp strdup strnlen strptime strtoull sync_file_range sysconf usleep utime valloc
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
SOCKET_LIB=''
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then :
+if ${ac_cv_lib_socket_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+if test "x$ac_cv_lib_socket_socket" = xyes; then :
SOCKET_LIB=-lsocket
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for optreset" >&5
$as_echo_n "checking for optreset... " >&6; }
-if test "${ac_cv_have_optreset+set}" = set; then :
+if ${ac_cv_have_optreset+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
SEM_INIT_LIB=''
ac_fn_c_check_func "$LINENO" "sem_init" "ac_cv_func_sem_init"
-if test "x$ac_cv_func_sem_init" = x""yes; then :
+if test "x$ac_cv_func_sem_init" = xyes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lpthread" >&5
$as_echo_n "checking for sem_init in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_sem_init+set}" = set; then :
+if ${ac_cv_lib_pthread_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_sem_init" >&5
$as_echo "$ac_cv_lib_pthread_sem_init" >&6; }
-if test "x$ac_cv_lib_pthread_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_pthread_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lpthread
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lrt" >&5
$as_echo_n "checking for sem_init in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_sem_init+set}" = set; then :
+if ${ac_cv_lib_rt_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sem_init" >&5
$as_echo "$ac_cv_lib_rt_sem_init" >&6; }
-if test "x$ac_cv_lib_rt_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_rt_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lrt
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sem_init in -lposix4" >&5
$as_echo_n "checking for sem_init in -lposix4... " >&6; }
-if test "${ac_cv_lib_posix4_sem_init+set}" = set; then :
+if ${ac_cv_lib_posix4_sem_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sem_init" >&5
$as_echo "$ac_cv_lib_posix4_sem_init" >&6; }
-if test "x$ac_cv_lib_posix4_sem_init" = x""yes; then :
+if test "x$ac_cv_lib_posix4_sem_init" = xyes; then :
$as_echo "#define HAVE_SEM_INIT 1" >>confdefs.h
SEM_INIT_LIB=-lposix4
root_libdir=$root_libdir/$withval
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker accepts -static" >&5
-$as_echo_n "checking whether linker accepts -static... " >&6; }
-if test "${ac_cv_e2fsprogs_use_static+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can link with -static" >&5
+$as_echo_n "checking whether we can link with -static... " >&6; }
+if ${ac_cv_e2fsprogs_use_static+:} false; then :
$as_echo_n "(cached) " >&6
else
SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
+ if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.65,
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error "ambiguous option: \`$1'
+ as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
+ -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"$outlist") CONFIG_FILES="$CONFIG_FILES $outlist" ;;
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
+ ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
- echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
+ echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh
{
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = "\a"
\$ac_cs_awk_pipe_init
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
- ac_t=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_t"; then
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
esac
case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
- $AWK -f "$tmp/subs.awk"
+ $AWK -f "$ac_tmp/subs.awk"
else
- $AWK -f "$tmp/subs.awk" | $SHELL
-fi >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ $AWK -f "$ac_tmp/subs.awk" | $SHELL
+fi \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error "could not create -" "$LINENO" 5
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
AC_INIT(version.h)
-AC_PREREQ(2.50)
+AC_PREREQ(2.54)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_HEADERS([lib/config.h])
AH_BOTTOM([#include "dirpaths.h"])
dnl
dnl handle --enable-relative-symlinks
dnl
-AC_ARG_ENABLE([symlink-relative-symlinks],
+relative_symlink_defined=
+AC_ARG_ENABLE([relative-symlinks],
[ --enable-relative-symlinks use relative symlinks when installing],
if test "$enableval" = "no"
then
SYMLINK_RELATIVE=
+ relative_symlink_defined=yes
AC_MSG_RESULT([Disabling relative symlinks for install])
else
SYMLINK_RELATIVE=--relative
- AC_MSG_RESULT([Enabling symlinks for install])
+ relative_symlink_defined=yes
+ AC_MSG_RESULT([Enabling relative symlinks for install])
+fi)
+AC_ARG_ENABLE([symlink-relative-symlinks],,
+if test "$enableval" = "no"
+then
+ SYMLINK_RELATIVE=yes
+ AC_MSG_RESULT([Disabling relative symlinks for install])
+else
+ SYMLINK_RELATIVE=--relative
+ AC_MSG_RESULT([Enabling relative symlinks for install])
fi
,
+if test -z "$relative_symlink_defined"
+then
SYMLINK_RELATIVE=
AC_MSG_RESULT([Disabling relative symlinks for install by default])
+fi
)
AC_SUBST(SYMLINK_RELATIVE)
dnl
PKG_PROG_PKG_CONFIG
AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
AC_ARG_ENABLE([quota],
-[ --enable-libquota enable quota support],
+[ --enable-quota enable quota support],
if test "$enableval" = "no"
then
AC_MSG_RESULT([Disabling quota support])
AC_SUBST(DEPPROFILED_LIBQUOTA)
AC_SUBST(QUOTA_CMT)
dnl
+dnl handle --disable-backtrace
+dnl
+AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
+AC_ARG_ENABLE([backtrace],
+[ --disable-backtrace disable use backtrace],
+if test "$enableval" = "no"
+then
+ AC_MSG_RESULT([Disabling use of backtrace])
+ AC_DEFINE(DISABLE_BACKTRACE, 1)
+else
+ AC_MSG_RESULT([Enabling use of backtrace])
+fi
+,
+AC_MSG_RESULT([Enabling use of backtrace by default])
+)
+dnl
dnl handle --enable-debugfs
dnl
AC_ARG_ENABLE([debugfs],
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
+AC_CHECK_SIZEOF(off_t)
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
+SIZEOF_OFF_T=$ac_cv_sizeof_off_t
AC_SUBST(SIZEOF_SHORT)
AC_SUBST(SIZEOF_INT)
AC_SUBST(SIZEOF_LONG)
AC_SUBST(SIZEOF_LONG_LONG)
+AC_SUBST(SIZEOF_OFF_T)
AC_C_BIGENDIAN
BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
ASM_TYPES_HEADER=./asm_types.h
posix_fadvise
posix_memalign
prctl
+ secure_getenv
setmntent
setresgid
setresuid
root_libdir=$root_libdir/$withval
)dnl
dnl
-dnl See if -static works.
+dnl See if -static works. This could fail if the linker does not
+dnl support -static, or if required external libraries are not available
+dnl in static form.
dnl
-AC_MSG_CHECKING([whether linker accepts -static])
+AC_MSG_CHECKING([whether we can link with -static])
AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
// #include <linux/falloc.h>
#define FALLOC_FL_KEEP_SIZE 0x01
+#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */
void usage(void)
{
- printf("Usage: fallocate [-nt] [-o offset] -l length filename\n");
+ printf("Usage: fallocate [-npt] [-o offset] -l length filename\n");
exit(EXIT_FAILURE);
}
int error;
int tflag = 0;
- while ((opt = getopt(argc, argv, "nl:ot")) != -1) {
+ while ((opt = getopt(argc, argv, "npl:o:t")) != -1) {
switch(opt) {
case 'n':
/* do not change filesize */
falloc_mode = FALLOC_FL_KEEP_SIZE;
break;
+ case 'p':
+ /* punch mode */
+ falloc_mode = (FALLOC_FL_PUNCH_HOLE |
+ FALLOC_FL_KEEP_SIZE);
+ break;
case 'l':
length = cvtnum(optarg);
break;
/*
* readdir accelerator
*
- * (C) Copyright 2003, 2004 by Theodore Ts'o.
+ * (C) Copyright 2003, 2004, 2008 by Theodore Ts'o.
+ *
+ * 2008-06-08 Modified by Ross Boylan <RossBoylan stanfordalumni org>
+ * Added support for readdir_r and readdir64_r calls. Note
+ * this has not been tested on anything other than GNU/Linux i386,
+ * and that the regular readdir wrapper will take slightly more
+ * space than Ted's original since it now includes a lock.
*
* Compile using the command:
*
- * gcc -o spd_readdir.so -fPIC -shared spd_readdir.c -ldl
+ * gcc -o spd_readdir.so -shared -fpic spd_readdir.c -ldl
*
* Use it by setting the LD_PRELOAD environment variable:
*
* export LD_PRELOAD=/usr/local/sbin/spd_readdir.so
*
- * Note that this preload is not going to work for all programs. In
- * particular, although it does supply readdir_r(), it is *not* thread
- * safe. So I can't recommend this as something to be dropped in
- * /etc/ld.so.preload.
- *
* %Begin-Header%
* This file may be redistributed under the terms of the GNU Public
* License.
#define MAX_DIRSIZE 0
#define DEBUG
+/* Util we autoconfiscate spd_readdir... */
+#define HAVE___SECURE_GETENV 1
+#define HAVE_PRCTL 1
+#define HAVE_SYS_PRCTL_H 1
#ifdef DEBUG
#define DEBUG_DIR(x) {if (do_debug) { x; }}
#include <dirent.h>
#include <errno.h>
#include <dlfcn.h>
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#else
+#define PR_GET_DUMPABLE 3
+#endif
+#include <pthread.h>
struct dirent_s {
unsigned long long d_ino;
struct dir_s {
DIR *dir;
+ pthread_mutex_t lock; /* Mutex lock for this structure. */
int num;
int max;
struct dirent_s *dp;
static int (*real_readdir_r)(DIR *dir, struct dirent *entry,
struct dirent **result) = 0;
static struct dirent64 *(*real_readdir64)(DIR *dir) = 0;
+static int (*real_readdir64_r)(DIR *dir, struct dirent64 *entry,
+ struct dirent64 **result) = 0;
static off_t (*real_telldir)(DIR *dir) = 0;
static void (*real_seekdir)(DIR *dir, off_t offset) = 0;
static int (*real_dirfd)(DIR *dir) = 0;
static int do_debug = 0;
#endif
+static char *safe_getenv(const char *arg)
+{
+ if ((getuid() != geteuid()) || (getgid() != getegid()))
+ return NULL;
+#if HAVE_PRCTL
+ if (prctl(PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
+ return NULL;
+#else
+#if (defined(linux) && defined(SYS_prctl))
+ if (syscall(SYS_prctl, PR_GET_DUMPABLE, 0, 0, 0, 0) == 0)
+ return NULL;
+#endif
+#endif
+
+#if HAVE___SECURE_GETENV
+ return __secure_getenv(arg);
+#else
+ return getenv(arg);
+#endif
+}
+
static void setup_ptr()
{
char *cp;
real_readdir = dlsym(RTLD_NEXT, "readdir");
real_readdir_r = dlsym(RTLD_NEXT, "readdir_r");
real_readdir64 = dlsym(RTLD_NEXT, "readdir64");
+ real_readdir64_r = dlsym(RTLD_NEXT, "readdir64_r");
real_telldir = dlsym(RTLD_NEXT, "telldir");
real_seekdir = dlsym(RTLD_NEXT, "seekdir");
real_dirfd = dlsym(RTLD_NEXT, "dirfd");
- if ((cp = getenv("SPD_READDIR_MAX_SIZE")) != NULL) {
+ if ((cp = safe_getenv("SPD_READDIR_MAX_SIZE")) != NULL) {
max_dirsize = atol(cp);
}
#ifdef DEBUG
- if (getenv("SPD_READDIR_DEBUG")) {
+ if (safe_getenv("SPD_READDIR_DEBUG")) {
printf("initialized!\n");
do_debug++;
}
{
int i;
+ pthread_mutex_destroy(&(dirstruct->lock));
+
if (!dirstruct->dp)
return;
return (i_a - i_b);
}
-struct dir_s *alloc_dirstruct(DIR *dir)
+static struct dir_s *alloc_dirstruct(DIR *dir)
{
struct dir_s *dirstruct;
+ static pthread_mutexattr_t mutexattr;
+ mutexattr.__align = PTHREAD_MUTEX_RECURSIVE;
dirstruct = malloc(sizeof(struct dir_s));
if (dirstruct)
memset(dirstruct, 0, sizeof(struct dir_s));
dirstruct->dir = dir;
+ pthread_mutex_init(&(dirstruct->lock), &mutexattr);
return dirstruct;
}
-void cache_dirstruct(struct dir_s *dirstruct)
+static void cache_dirstruct(struct dir_s *dirstruct)
{
struct dirent_s *ds, *dnew;
struct dirent64 *d;
if (!real_fdopendir)
setup_ptr();
- DEBUG_DIR(printf("fdpendir(%d) (%d open)\n", fd, num_open++));
+ DEBUG_DIR(printf("fdopendir(%d) (%d open)\n", fd, num_open++));
dir = (*real_fdopendir)(fd);
if (!dir)
return NULL;
if (dirstruct->direct)
return (*real_readdir_r)(dirstruct->dir, entry, result);
+ pthread_mutex_lock(&(dirstruct->lock));
if (dirstruct->pos >= dirstruct->num) {
*result = NULL;
- return 0;
+ } else {
+ ds = &dirstruct->dp[dirstruct->pos++];
+ entry->d_ino = ds->d_ino;
+ entry->d_off = ds->d_off;
+ entry->d_reclen = ds->d_reclen;
+ entry->d_type = ds->d_type;
+ strncpy(entry->d_name, ds->d_name, sizeof(entry->d_name));
+ *result = entry;
}
-
- ds = &dirstruct->dp[dirstruct->pos++];
- entry->d_ino = ds->d_ino;
- entry->d_off = ds->d_off;
- entry->d_reclen = ds->d_reclen;
- entry->d_type = ds->d_type;
- strncpy(entry->d_name, ds->d_name, sizeof(entry->d_name));
- *result = entry;
-
+ pthread_mutex_unlock(&(dirstruct->lock));
return 0;
}
return (&dirstruct->ret_dir64);
}
+int readdir64_r (DIR *__restrict dir,
+ struct dirent64 *__restrict entry,
+ struct dirent64 **__restrict result)
+{
+ struct dir_s *dirstruct = (struct dir_s *) dir;
+ struct dirent_s *ds;
+
+ if (dirstruct->direct)
+ return (*real_readdir64_r)(dir, entry, result);
+ pthread_mutex_lock(&(dirstruct->lock));
+ if (dirstruct->pos >= dirstruct->num) {
+ *result = NULL;
+ } else {
+ ds = &dirstruct->dp[dirstruct->pos++];
+ entry->d_ino = ds->d_ino;
+ entry->d_off = ds->d_off;
+ entry->d_reclen = ds->d_reclen;
+ entry->d_type = ds->d_type;
+ strncpy(entry->d_name, ds->d_name,
+ sizeof(entry->d_name));
+ *result = entry;
+ }
+ pthread_mutex_unlock(&(dirstruct->lock));
+ return 0;
+}
+
off_t telldir(DIR *dir)
{
struct dir_s *dirstruct = (struct dir_s *) dir;
if (dirstruct->direct)
return;
+ pthread_mutex_lock(&(dirstruct->lock));
dirstruct->pos = 0;
free_cached_dir(dirstruct);
cache_dirstruct(dirstruct);
+ pthread_mutex_unlock(&(dirstruct->lock));
}
int dirfd(DIR *dir)
+e2fsprogs (1.42.8-1) unstable; urgency=low
+
+ * New upstream version
+ * Work around Debian Bug #712530 (Closes: #708307)
+ * Fix e2fsck so it can check a read-only root file system with an
+ external journal. (Closes: #707030)
+ * Fix off-line resizing of file systems with flex_bg && !resize_inode
+ (Closes: #696746)
+ * Change mke2fs so that it does not set the root directory to the real
+ uid/gid of the mke2fs process. Add the extended option root_owner to
+ override this behavior.
+ * If an invalid journal size is given to mke2fs, it will now complain
+ and exit sooner.
+ * Fix resize2fs when shrinking file systems to make sure that bitmap
+ blocks aren't left outside the bounds of the shrunken file system.
+ This could happen with flex_bg file systems that were grown using
+ the old online resizing algorithm.
+ * E2fsck will now detect and repair corrupted extent trees which contain
+ invalid extents at the end of the extent tree leaf block.
+ * E2fsck will now longer complain about zero length extended attribute values.
+ * Fix a regression introduced in e2fsprogs v1.42 which caused e2image -s
+ to crash.
+ * Add safety check so tune2fs will not attempt to set the inode size to
+ be larger than the block size.
+ * Enhance chattr to allow clearing the extent flag if the kernel allows it
+ * Fix e2image with large (> 32-bit) file systems (Closes: #703067)
+ * Mke2fs will not give warnings about the bigalloc and quota options in
+ quiet mode.
+ * Debugfs was erroneously giving spurious error messages for certain
+ extent_inode subcommands which take arguments (split_node,
+ replace_node, and insert_node). This has been fixed.
+ * Fix the parsing of the 's' (sectors) in parse_num_blocks2, which among
+ other programs is used by mke2fs.
+ * Fix texinfo incompatibilities (Closes: #712365)
+ * Updated/fixed various man pages (Closes: #712429, #712430, #707609)
+ * Update German translation
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Thu, 20 Jun 2013 23:09:25 -0500
+
+e2fsprogs (1.42.7-1) unstable; urgency=low
+
+ * New upstream version
+ * Add warning indicating that the quota and bigalloc features are
+ still under development.
+ * Added new options to filefrag to be consistent with the version from
+ Lustre
+ * Optimized e2fsck's CPU utilization
+ * Fixed e2fsck so it detects and fixes inconsistencies in the interior
+ nodes of an inode's extent tree
+ * Fixed a potential memory corruption failure in e2fsck's error path if
+ the call to ext2fs_open2() fails.
+ * Fixed e2fsck if its logging function is enabled in e2fsck.conf, and
+ the resulting file name for the log file is longer than 100 bytes,
+ that it properly handles this situation instead of crashing.
+ * E2fsck will now report the amount of memory that it attempted to
+ allocate when a memory allocation request fails, to make it easier to
+ track down the problem.
+ * Fixed a bug in resize2fs which could cause severe file system
+ corruption when growing an ext4 file system which was formatted with
+ fewer-than-normal reserved gdt blocks
+ * Fixed resize2fs to be able to handle off-line resizes of file
+ systems with the flex_bg feature and without any reserved gdt
+ blocks or if the file system did not have the resize_inode feature
+ * Further optimize resize2fs so it doesn't use quite as much CPU when
+ resizing very large file systems.
+ * Fixed 32-bit overflow bugs which could cause resize2fs to fail and
+ possibly corrupt the file system while resizing 64-bit file systems.
+ * Fixed a big which could cause resize2fs to corrupt bigalloc file systems.
+ * Fix a crash while mke2fs is parsing "-E resize=NNN" with the 64bit
+ file system feature enabled
+ * Added better error checking to mke2fs to check for invalid
+ parameters when creating bigalloc file system.
+ * When creating bigalloc filesystems, the -g option to mke2fs will now
+ specify the number of clusters per block group.
+ * Added the "symlink", "zap_block", "block_dump", and "extent_open"
+ commands to debugfs
+ * Fixed debugfs's htree command so that all its messages are sent
+ through the pager.
+ * Fixed debugfs's dump_file and cat functions so they work correctly
+ on file systems with a block size greater than 8k.
+ * Fixed mke2fs's handling of the mmp_update_interval option
+ * Fixed e2freefrag so it works on 64-bit file systems, and so it uses
+ much less memory.
+ * E2image can now include all data blocks in the e2image output
+ file when the user specifies the -a option.
+ * Fixed debugfs's mknod command so that it updates the block group
+ statistics
+ * Document the bigalloc feature in the mke2fs man page.
+ (Closes: #669730)
+ * Update Czech, Dutch, French, German, Polish, Sweedish, and
+ Vietnamese translations
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Tue, 21 Jan 2013 21:52:58 -0500
+
+e2fsprogs (1.42.6-1) unstable; urgency=low
+
+ * New upstream version
+ * Fix build dependencies to avoid requiring dc, and to allow
+ cross-building to work (Closes: #677497)
+ * Updated/fixed various man pages
+ * Mke2fs will now update its progress indicators at most once a second
+ to avoid overwhelming serial consoles.
+ * Resize2fs will support lazy_itable_init, speeding up off-line growth
+ of uninit_bg file systems.
+ * Resize2fs now supports on-line resizing 64-bit file systems beyond
+ 16TB. A number of bugs in resize2fs which prevented this have been
+ fixed.
+ * Resize2fs now correctly handles resizing 32-bit file systems to 16TB.
+ * Fixed a potential segfault in e2fsck when there is an I/O error
+ while reading the superblock.
+
+ -- Theodore Y. Ts'o <tytso@mit.edu> Fri, 21 Sep 2012 12:14:41 -0400
+
e2fsprogs (1.42.5-1.1) unstable; urgency=low
* Non-maintainer upload.
Section: admin
Priority: required
Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
-Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, DIETLIBC_DEFINES gcc-multilib [mips mipsel], debhelper (>= 7.0), UTIL_LINUX_NG_DEFINES m4
-Standards-Version: 3.9.3
+Build-Depends: texi2html (>= 1.76), gettext, texinfo, pkg-config, DIETLIBC_DEFINES gcc-multilib [mips mipsel], debhelper (>= 7.0), UTIL_LINUX_NG_DEFINES m4
+Standards-Version: 3.9.4
Homepage: http://e2fsprogs.sourceforge.net
+ifdef(`E2FSCK_STATIC',``
Package: e2fsck-static
Priority: optional
Depends: ${shlibs:Depends}, ${misc:Depends}
.
You may want to install a statically-linked shell as well, to be able
to run this program if something like your C library gets corrupted.
+'')dnl
Package: libcomerr2
Section: libs
-usr/lib/*/*.so
-usr/lib/*/*.a
+usr/lib/*/libext2fs*.so
+usr/lib/*/libext2fs*.a
+usr/lib/*/libe2p*.so
+usr/lib/*/libe2p*.a
usr/include/ext2fs
usr/include/e2p
usr/share/info/libext2fs.info*
-lib/*/libext2fs*
-lib/*/libe2p*
+lib/*/libext2fs*.so.*
+lib/*/libe2p*.so.*
ext2fs_bg_itable_unused_set@Base 1.42
ext2fs_bg_used_dirs_count@Base 1.42
ext2fs_bg_used_dirs_count_set@Base 1.42
+ ext2fs_bitcount@Base 1.42.7
ext2fs_blkmap64_bitarray@Base 1.42
ext2fs_blkmap64_rbtree@Base 1.42.1
ext2fs_block_alloc_stats2@Base 1.42
ext2fs_expand_dir@Base 1.37
ext2fs_ext_attr_hash_entry@Base 1.41.0
ext2fs_extent_delete@Base 1.41.0
+ ext2fs_extent_fix_parents@Base 1.42.7
ext2fs_extent_free@Base 1.41.0
ext2fs_extent_get@Base 1.41.0
ext2fs_extent_get_info@Base 1.41.0
ext2fs_extent_goto@Base 1.41.0
+ ext2fs_extent_goto2@Base 1.42.7
ext2fs_extent_header_verify@Base 1.41.0
ext2fs_extent_insert@Base 1.41.0
+ ext2fs_extent_node_split@Base 1.42.7
ext2fs_extent_open2@Base 1.41.6
ext2fs_extent_open@Base 1.41.0
ext2fs_extent_replace@Base 1.41.0
ext2fs_open_file@Base 1.42
ext2fs_open_inode_scan@Base 1.37
ext2fs_parse_version_string@Base 1.37
- ext2fs_print_bmap_statistics@Base 1.42.1
ext2fs_process_dir_block@Base 1.37
ext2fs_punch@Base 1.42
ext2fs_r_blocks_count@Base 1.42
ext2fs_swab16@Base 1.37
ext2fs_swab32@Base 1.37
ext2fs_swab64@Base 1.40
+ ext2fs_symlink@Base 1.42.7
ext2fs_sync_device@Base 1.37
ext2fs_tdb_append@Base 1.40
ext2fs_tdb_chainlock@Base 1.40
-usr/lib/*/libblkid*
+usr/lib/*/libblkid*.so.*
usr/include/blkid
usr/share/man/man3/libblkid.3
usr/lib/*/pkgconfig/blkid.pc
-lib/*/libblkid*
+lib/*/libblkid*.so.*
-lib/*/libcom_err*
+lib/*/libcom_err*.so.*
-lib/*/libss*
+lib/*/libss*.so.*
-lib/*/libuuid*
+lib/*/libuuid*.so.*
USRLIB ?= /usr/lib
endif
-STD_CONF_FLAGS ?= --enable-symlink-install $(MULTIARCH_CONF)
+BACKTRACE_CONF_FLAGS ?= $(shell if ${debdir}/scripts/test-backtrace ; then echo --disable-backtrace ; fi)
+
+STD_CONF_FLAGS ?= --enable-symlink-install $(MULTIARCH_CONF) $(BACKTRACE_CONF_FLAGS)
BF_CONF_FLAGS ?= --disable-nls --disable-imager --disable-testio-debug \
--disable-uuidd --disable-tls --disable-debugfs
WITH_DIET_LIBC = --with-diet-libc
endif
+ifneq ($(BUILD_E2FSCK_STATIC),no)
+M4_ARGS+=-DE2FSCK_STATIC
+else
+M4_ARGS+=-UE2FSCK_STATIC
+endif
+
FILES_FIXUP= libcomerr2.files comerr-dev.files libss2.files ss-dev.files \
libuuid1.files uuid-dev.files libblkid1.files libblkid-dev.files \
e2fslibs.files e2fslibs-dev.files
mkdir -p ${stdbuilddir}
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
cd ${stdbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
else
cd ${stdbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
- ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${STD_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
mkdir -p ${bfbuilddir}
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
cd ${bfbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
CFLAGS="${CFLAGS} ${BF_CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
else
cd ${bfbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
- ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${BF_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
if type diet > /dev/null 2>&1 ; then \
cd ${staticbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${STATIC_CONF_FLAGS} \
+ ${topdir}/configure ${STATIC_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
${WITH_DIET_LIBC} CFLAGS="${CFLAGS}" \
CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"; \
else \
cd ${staticbuilddir} && AWK=/usr/bin/awk \
- ${topdir}/configure ${STATIC_CONF_FLAGS} \
+ ${topdir}/configure ${STATIC_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" \
LDFLAGS="$(LDFLAGS)"; \
fi
else
cd ${staticbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \
- ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \
+ ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} ${EXTRA_CONF_FLAGS} \
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
CFLAGS="${CFLAGS}" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"
endif
${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
dh_testdir
$(MAKE) -C ${stdbuilddir} V=1 all
+ifneq ($(BUILD_E2FSCK_STATIC),no)
$(MAKE) -C ${stdbuilddir}/e2fsck V=1 e2fsck.static
+endif
$(MAKE) -C ${stdbuilddir}/po V=1 update-gmo
( cd ${stdbuilddir}/doc && $(MAKE) V=1 libext2fs_abt.html )
${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP}
dh_testdir
$(MAKE) -C ${staticbuilddir} V=1 libs
+ifneq ($(BUILD_E2FSCK_STATIC),no)
$(MAKE) -C ${staticbuilddir}/e2fsck V=1 all e2fsck.static
+endif
touch ${BUILDSTATICSTAMP}
clean:
# static libs and .h files
$(MAKE) -C ${stdbuilddir} V=1 install-libs DESTDIR=${tmpdir} LDCONFIG=true
+ifneq ($(BUILD_E2FSCK_STATIC),no)
# statically-linked fsck
${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin
cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8
+endif
+
# remove static quota library for now
rm ${tmpdir}/usr/include/quota/mkquota.h
- find ${tmpdir}/usr/lib -name quota.pc -o -name libquota.a | xargs rm
+ find ${tmpdir} -name quota.pc -o -name libquota.a | xargs rm
ifeq ($(DEB_BUILD_GNU_SYSTEM), gnu)
${INSTALL} -m 0644 misc/mke2fs-hurd.conf ${tmpdir}/etc/mke2fs.conf
DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
-plibcomerr${COMERR_SOVERSION} \
-plibss${SS_SOVERSION} \
- -pe2fslibs -pe2fsck-static \
+ -pe2fslibs \
-pe2fsprogs-dbg -pe2fslibs-dbg \
-plibcomerr2-dbg -plibss2-dbg
+ifneq ($(BUILD_E2FSCK_STATIC),no)
+ DH_OPTIONS= dh_installchangelogs -pe2fsck-static
+endif
ifneq ($(UTIL_LINUX_NG),yes)
DH_OPTIONS= dh_installchangelogs -plibuuid${UUID_SOVERSION} \
-puuid-dev -puuid-runtime -puuid-runtime-dbg -plibuuid1-dbg \
mkdir -p ${debugdir}/$(USRLIB)
mv ${maindir}/usr/lib/debug ${debugdir}/$(USRLIB)
rm -rf ${maindir}/usr/lib/debug
+
+ifneq ($(BUILD_E2FSCK_STATIC),no)
mv ${e2fsckstaticdir}/usr/lib/debug/sbin/* \
${debugdir}/$(USRLIB)/debug
rm -rf ${e2fsckstaticdir}/usr/lib
+endif
ifneq ($(UTIL_LINUX_NG),yes)
mkdir -p ${uuidruntimedbgdir}/$(USRLIB)
--- /dev/null
+#!/bin/sh
+#
+# Test to see if backtrace requires a library in /usr/lib
+# Returns true if the backtrace command works and requires a library in /usr/lib
+# This is a nasty workaround for Debian bug #708307, which is really a glibc bug
+#
+
+cat > /tmp/backtrace$$.c << EOF
+
+#include <execinfo.h>
+
+int main(int argc, char **argv)
+{
+ void *stack_syms[32];
+ int frames;
+
+ frames = backtrace(stack_syms, 32);
+ backtrace_symbols_fd(stack_syms, frames, 0);
+}
+EOF
+
+if ! cc -o /tmp/backtrace$$ /tmp/backtrace$$.c; then
+ exit 1
+fi
+
+if ! ldd /tmp/backtrace$$ > /tmp/backtrace$$.ldd 2>&1 ; then
+ exit 1
+fi
+
+grep -q /usr/lib /tmp/backtrace$$.ldd
+ret=$?
+
+/bin/rm -f /tmp/backtrace$$*
+exit $ret
DEBUG_OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \
lsdel.o dump.o set_fields.o logdump.o htree.o unused.o e2freefrag.o \
- filefrag.o
+ filefrag.o extent_cmds.o extent_inode.o zap.o
RO_DEBUG_OBJS= ro_debug_cmds.o ro_debugfs.o util.o ncheck.o icheck.o ls.o \
- lsdel.o logdump.o htree.o e2freefrag.o filefrag.o
+ lsdel.o logdump.o htree.o e2freefrag.o filefrag.o extent_cmds.o \
+ extent_inode.o
SRCS= debug_cmds.c $(srcdir)/debugfs.c $(srcdir)/util.c $(srcdir)/ls.c \
$(srcdir)/ncheck.c $(srcdir)/icheck.c $(srcdir)/lsdel.c \
$(srcdir)/dump.c $(srcdir)/set_fields.c ${srcdir}/logdump.c \
$(srcdir)/htree.c $(srcdir)/unused.c ${srcdir}/../misc/e2freefrag.c \
- $(srcdir)/filefrag.c
+ $(srcdir)/filefrag.c $(srcdir)/extent_inode.c $(srcdir)/zap.c
LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \
$(LIBUUID)
DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(DEPLIBSS) $(DEPLIBCOM_ERR) \
$(DEPLIBBLKID) $(DEPLIBUUID)
+STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) $(STATIC_LIBCOM_ERR) \
+ $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(STATIC_LIBE2P)
+STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBSS) \
+ $(DEPSTATIC_LIBCOM_ERR) $(DEPSTATIC_LIBUUID) \
+ $(DEPSTATIC_LIBE2P)
+
.c.o:
$(E) " CC $<"
$(Q) $(CC) -c $(ALL_CFLAGS) $< -o $@
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o debugfs $(DEBUG_OBJS) $(LIBS)
+debugfs.static: $(DEBUG_OBJS) $(STATIC_DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(CC) $(LDFLAGS_STATIC) -o debugfs.static $(DEBUG_OBJS) \
+ $(STATIC_LIBS) $(READLINE_LIB)
+
rdebugfs: $(RO_DEBUG_OBJS) $(DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o rdebugfs $(RO_DEBUG_OBJS) $(LIBS)
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/debug_cmds.ct
+extent_cmds.c extent_cmds.h: extent_cmds.ct
+ $(E) " MK_CMDS $@"
+ $(Q) $(MK_CMDS) $(srcdir)/extent_cmds.ct
+
ro_debug_cmds.c ro_debug_cmds.h: ro_debug_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/ro_debug_cmds.ct
clean:
$(RM) -f $(PROGS) debugfs.8 \#* *.s *.o *.a *~ debug_cmds.c \
- ro_debug_cmds.c core rdebugfs
+ extent_cmds.c ro_debug_cmds.c core rdebugfs debugfs.static
mostlyclean: clean
distclean: clean
request do_punch, "Punch (or truncate) blocks from an inode by deallocating them",
punch, truncate;
+request do_symlink, "Create a symbolic link",
+ symlink;
+
request do_imap, "Calculate the location of an inode",
imap;
request do_dump_unused, "Dump unused blocks",
dump_unused;
-request do_set_current_time, "Set current time to use when setting filesystme fields",
+request do_set_current_time, "Set current time to use when setting filesystem fields",
set_current_time;
request do_supported_features, "Print features supported by this version of e2fsprogs",
request do_set_mmp_value, "Set MMP value",
set_mmp_value, smmp;
+request do_extent_open, "Open inode for extent manipulation",
+ extent_open, eo;
+
+request do_zap_block, "Zap block: fill with 0, pattern, flip bits etc.",
+ zap_block, zap;
+
+request do_block_dump, "Dump contents of a block",
+ block_dump, bd;
+
end;
in the inode
.IR filespec .
.TP
+.I block_dump [-f out_file] block_num
+Dump the contents of a block, optionally to
+.IR out_file .
+.TP
.I cat filespec
Dump the contents of the inode
.I filespec
.I start_blk
through to the end of the file will be deallocated.
.TP
+.I symlink filespec target
+Make a symbolic link.
+.TP
.I pwd
Print the current working directory.
.TP
and copy the contents of
.I source_file
into the destination file.
+.TP
+.I zap_block [-f file] [-o offset] [-l length] [-p pattern] block_num
+Zero, or pattern-fill, portions of a block within a file or
+within the filesystem.
+.TP
+.I zap_block [-f file] [-b bit] block_num
+Bit-flip portions of a block within a file or
+within the filesystem.
.SH ENVIRONMENT VARIABLES
.TP
.B DEBUGFS_PAGER, PAGER
#include <sys/types.h>
#include <sys/stat.h>
-#include "et/com_err.h"
-#include "ss/ss.h"
#include "debugfs.h"
#include "uuid/uuid.h"
#include "e2p/e2p.h"
#include "../version.h"
#include "jfs_user.h"
-extern ss_request_table debug_cmds;
ss_request_table *extra_cmds;
const char *debug_prog_name;
+int sci_idx;
ext2_filsys current_fs = NULL;
ext2_ino_t root, cwd;
inode.i_links_count = 1;
inode.i_size = statbuf.st_size;
if (current_fs->super->s_feature_incompat &
- EXT3_FEATURE_INCOMPAT_EXTENTS)
+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ int i;
+ struct ext3_extent_header *eh;
+
+ eh = (struct ext3_extent_header *) &inode.i_block[0];
+ eh->eh_depth = 0;
+ eh->eh_entries = 0;
+ eh->eh_magic = EXT3_EXT_MAGIC;
+ i = (sizeof(inode.i_block) - sizeof(*eh)) /
+ sizeof(struct ext3_extent);
+ eh->eh_max = ext2fs_cpu_to_le16(i);
inode.i_flags |= EXT4_EXTENTS_FL;
+ }
if (debugfs_write_new_inode(newfile, &inode, argv[0])) {
close(fd);
return;
}
if (ext2fs_test_inode_bitmap2(current_fs->inode_map,newfile))
com_err(argv[0], 0, "Warning: inode already set");
- ext2fs_mark_inode_bitmap2(current_fs->inode_map, newfile);
- ext2fs_mark_ib_dirty(current_fs);
+ ext2fs_inode_alloc_stats2(current_fs, newfile, +1, 0);
memset(&inode, 0, sizeof(inode));
inode.i_mode = mode;
inode.i_atime = inode.i_ctime = inode.i_mtime =
}
#endif /* READ_ONLY */
+void do_symlink(int argc, char *argv[])
+{
+ char *cp;
+ ext2_ino_t parent;
+ char *name, *target;
+ errcode_t retval;
+
+ if (common_args_process(argc, argv, 3, 3, "symlink",
+ "<filename> <target>", CHECK_FS_RW))
+ return;
+
+ cp = strrchr(argv[1], '/');
+ if (cp) {
+ *cp = 0;
+ parent = string_to_inode(argv[1]);
+ if (!parent) {
+ com_err(argv[1], ENOENT, 0);
+ return;
+ }
+ name = cp+1;
+ } else {
+ parent = cwd;
+ name = argv[1];
+ }
+ target = argv[2];
+
+try_again:
+ retval = ext2fs_symlink(current_fs, parent, 0, name, target);
+ if (retval == EXT2_ET_DIR_NO_SPACE) {
+ retval = ext2fs_expand_dir(current_fs, parent);
+ if (retval) {
+ com_err(argv[0], retval, "while expanding directory");
+ return;
+ }
+ goto try_again;
+ }
+ if (retval) {
+ com_err("ext2fs_symlink", retval, 0);
+ return;
+ }
+
+}
+
void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[])
{
struct ext2_super_block *sb;
fprintf(stdout, "magic: 0x%x\n", mmp_s->mmp_magic);
}
-static int source_file(const char *cmd_file, int sci_idx)
+static int source_file(const char *cmd_file, int ss_idx)
{
FILE *f;
char buf[256];
if (cp)
*cp = 0;
printf("debugfs: %s\n", buf);
- retval = ss_execute_line(sci_idx, buf);
+ retval = ss_execute_line(ss_idx, buf);
if (retval) {
- ss_perror(sci_idx, retval, buf);
+ ss_perror(ss_idx, retval, buf);
exit_status++;
}
}
int main(int argc, char **argv)
{
int retval;
- int sci_idx;
const char *usage =
"Usage: %s [-b blocksize] [-s superblock] [-f cmd_file] "
"[-R request] [-V] ["
* debugfs.h --- header file for the debugfs program
*/
+#include "ss/ss.h"
#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
extern ext2_filsys current_fs;
extern ext2_ino_t root, cwd;
+extern int sci_idx;
+extern ss_request_table debug_cmds, extent_cmds;
extern void reset_getopt(void);
extern FILE *open_pager(void);
extern void do_cat(int argc, char **argv);
extern void do_rdump(int argc, char **argv);
+/* extent_inode.c */
+extern void do_extent_open(int argc, char **argv);
+extern void do_extent_close(int argc, char **argv);
+extern void do_current_node(int argc, char **argv);
+extern void do_root_node(int argc, char **argv);
+extern void do_last_leaf(int argc, char **argv);
+extern void do_first_sib(int argc, char **argv);
+extern void do_last_sib(int argc, char **argv);
+extern void do_next_sib(int argc, char **argv);
+extern void do_prev_sib(int argc, char **argv);
+extern void do_next_leaf(int argc, char **argv);
+extern void do_prev_leaf(int argc, char **argv);
+extern void do_next(int argc, char **argv);
+extern void do_prev(int argc, char **argv);
+extern void do_up(int argc, char **argv);
+extern void do_down(int argc, char **argv);
+extern void do_delete_node(int argc, char **argv);
+extern void do_replace_node(int argc, char **argv);
+extern void do_split_node(int argc, char **argv);
+extern void do_insert_node(int argc, char **argv);
+extern void do_set_bmap(int argc, char **argv);
+extern void do_print_all(int argc, char **argv);
+extern void do_fix_parents(int argc, char **argv);
+extern void do_info(int argc, char **argv);
+extern void do_goto_block(int argc, char **argv);
+
/* htree.c */
extern void do_htree_dump(int argc, char **argv);
extern void do_dx_hash(int argc, char **argv);
extern void do_set_current_time(int argc, char **argv);
extern void do_supported_features(int argc, char **argv);
extern void do_punch(int argc, char **argv);
+extern void do_symlink(int argc, char **argv);
extern void do_dump_mmp(int argc, char **argv);
extern void do_set_mmp_value(int argc, char **argv);
extern void do_freefrag(int argc, char **argv);
extern void do_filefrag(int argc, char *argv[]);
+
+/* zap.c */
+extern void do_zap_block(int argc, char **argv);
+extern void do_block_dump(int argc, char **argv);
{
errcode_t retval;
struct ext2_inode inode;
- char buf[8192];
+ char *buf = 0;
ext2_file_t e2_file;
int nbytes;
- unsigned int got;
+ unsigned int got, blocksize = current_fs->blocksize;
if (debugfs_read_inode(ino, &inode, cmdname))
return;
com_err(cmdname, retval, "while opening ext2 file");
return;
}
+ retval = ext2fs_get_mem(blocksize, &buf);
+ if (retval) {
+ com_err(cmdname, retval, "while allocating memory");
+ return;
+ }
while (1) {
- retval = ext2fs_file_read(e2_file, buf, sizeof(buf), &got);
+ retval = ext2fs_file_read(e2_file, buf, blocksize, &got);
if (retval)
com_err(cmdname, retval, "while reading ext2 file");
if (got == 0)
if ((unsigned) nbytes != got)
com_err(cmdname, errno, "while writing file");
}
+ if (buf)
+ ext2fs_free_mem(&buf);
retval = ext2fs_file_close(e2_file);
if (retval) {
com_err(cmdname, retval, "while closing ext2 file");
#
command_table extent_cmds;
-request do_inode, "Open an inode",
- inode;
-
request do_current_node, "Current extent node",
current_node, current;
request do_split_node, "Split node",
split_node, split;
+request do_fix_parents, "Fix parents",
+ fix_parents, fixp;
+
request do_set_bmap, "Set block mapping",
set_bmap;
request do_info, "Print extent info",
info;
+request do_extent_close, "Close extent handle",
+ extent_close, ec;
+
end;
--- /dev/null
+/*
+ * extent_inode.c --- direct extent tree manipulation
+ *
+ * Copyright (C) 2012 Theodore Ts'o. This file may be redistributed
+ * under the terms of the GNU Public License.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern int optind;
+extern char *optarg;
+#endif
+
+#include "debugfs.h"
+
+ext2_ino_t current_ino;
+ext2_extent_handle_t current_handle;
+
+static void dbg_print_extent(char *desc, struct ext2fs_extent *extent)
+{
+ if (desc)
+ printf("%s: ", desc);
+ printf("extent: lblk %llu--%llu, len %u, pblk %llu, flags: ",
+ extent->e_lblk, extent->e_lblk + extent->e_len - 1,
+ extent->e_len, extent->e_pblk);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_LEAF)
+ fputs("LEAF ", stdout);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_UNINIT)
+ fputs("UNINIT ", stdout);
+ if (extent->e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT)
+ fputs("2ND_VISIT ", stdout);
+ if (!extent->e_flags)
+ fputs("(none)", stdout);
+ fputc('\n', stdout);
+
+}
+
+static int common_extent_args_process(int argc, char *argv[], int min_argc,
+ int max_argc, const char *cmd,
+ const char *usage, int flags)
+{
+ if (common_args_process(argc, argv, min_argc, max_argc, cmd,
+ usage, flags))
+ return 1;
+
+ if (!current_handle) {
+ com_err(cmd, 0, "Extent handle not open");
+ return 1;
+ }
+ return 0;
+}
+
+static char *orig_prompt, *extent_prompt;
+
+void do_extent_open(int argc, char *argv[])
+{
+ ext2_ino_t inode;
+ int ret;
+ errcode_t retval;
+ char *cp;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ if (argc == 1) {
+ if (current_ino)
+ printf("Current inode is %d\n", current_ino);
+ else
+ printf("No current inode\n");
+ return;
+ }
+
+ if (common_inode_args_process(argc, argv, &inode, 0))
+ return;
+
+ current_ino = 0;
+
+ retval = ext2fs_extent_open(current_fs, inode, ¤t_handle);
+ if (retval) {
+ com_err(argv[1], retval, "while opening extent handle");
+ return;
+ }
+
+ current_ino = inode;
+
+ orig_prompt = ss_get_prompt(sci_idx);
+ extent_prompt = malloc(strlen(orig_prompt) + 32);
+ strcpy(extent_prompt, orig_prompt);
+ cp = strchr(extent_prompt, ':');
+ if (cp)
+ *cp = 0;
+ sprintf(extent_prompt + strlen(extent_prompt), " (extent ino %d): ",
+ current_ino);
+ ss_add_request_table(sci_idx, &extent_cmds, 1, &ret);
+ ss_set_prompt(sci_idx, extent_prompt);
+ return;
+}
+
+void do_extent_close(int argc, char *argv[])
+{
+ int ret;
+
+ if (common_args_process(argc, argv, 1, 1,
+ "extent_close", "", 0))
+ return;
+
+ if (!current_handle) {
+ com_err(argv[0], 0, "Extent handle not open");
+ return;
+ }
+
+ ext2fs_extent_free(current_handle);
+ current_handle = NULL;
+ current_ino = 0;
+ ss_delete_request_table(sci_idx, &extent_cmds, &ret);
+ ss_set_prompt(sci_idx, orig_prompt);
+ free(extent_prompt);
+ extent_prompt = NULL;
+}
+
+static void generic_goto_node(const char *my_name, int argc,
+ char **argv, int op)
+{
+ struct ext2fs_extent extent;
+ errcode_t retval;
+
+ if (my_name && common_args_process(argc, argv, 1, 1,
+ my_name, "", 0))
+ return;
+
+ if (!current_handle) {
+ com_err(argv[0], 0, "Extent handle not open");
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, op, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+}
+
+void do_current_node(int argc, char *argv[])
+{
+ generic_goto_node("current_node", argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_root_node(int argc, char *argv[])
+{
+ generic_goto_node("root_node", argc, argv, EXT2_EXTENT_ROOT);
+}
+
+void do_last_leaf(int argc, char *argv[])
+{
+ generic_goto_node("last_leaf", argc, argv, EXT2_EXTENT_LAST_LEAF);
+}
+
+void do_first_sib(int argc, char *argv[])
+{
+ generic_goto_node("first_sib", argc, argv, EXT2_EXTENT_FIRST_SIB);
+}
+
+void do_last_sib(int argc, char *argv[])
+{
+ generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_LAST_SIB);
+}
+
+void do_next_sib(int argc, char *argv[])
+{
+ generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_NEXT_SIB);
+}
+
+void do_prev_sib(int argc, char *argv[])
+{
+ generic_goto_node("prev_sib", argc, argv, EXT2_EXTENT_PREV_SIB);
+}
+
+void do_next_leaf(int argc, char *argv[])
+{
+ generic_goto_node("next_leaf", argc, argv, EXT2_EXTENT_NEXT_LEAF);
+}
+
+void do_prev_leaf(int argc, char *argv[])
+{
+ generic_goto_node("prev_leaf", argc, argv, EXT2_EXTENT_PREV_LEAF);
+}
+
+void do_next(int argc, char *argv[])
+{
+ generic_goto_node("next", argc, argv, EXT2_EXTENT_NEXT);
+}
+
+void do_prev(int argc, char *argv[])
+{
+ generic_goto_node("prev", argc, argv, EXT2_EXTENT_PREV);
+}
+
+void do_up(int argc, char *argv[])
+{
+ generic_goto_node("up", argc, argv, EXT2_EXTENT_UP);
+}
+
+void do_down(int argc, char *argv[])
+{
+ generic_goto_node("down", argc, argv, EXT2_EXTENT_DOWN);
+}
+
+void do_delete_node(int argc, char *argv[])
+{
+ struct ext2fs_extent extent;
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "delete_node",
+ "", CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ retval = ext2fs_extent_delete(current_handle, 0);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, EXT2_EXTENT_CURRENT,
+ &extent);
+ if (retval)
+ return;
+ dbg_print_extent(0, &extent);
+}
+
+void do_replace_node(int argc, char *argv[])
+{
+ const char *usage = "[--uninit] <lblk> <len> <pblk>";
+ errcode_t retval;
+ struct ext2fs_extent extent;
+ int err;
+
+ if (common_extent_args_process(argc, argv, 3, 5, "replace_node",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ extent.e_flags = 0;
+
+ if (!strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
+ }
+
+ if (argc != 4) {
+ fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
+ return;
+ }
+
+ extent.e_lblk = parse_ulong(argv[1], argv[0], "logical block", &err);
+ if (err)
+ return;
+
+ extent.e_len = parse_ulong(argv[2], argv[0], "logical block", &err);
+ if (err)
+ return;
+
+ extent.e_pblk = parse_ulong(argv[3], argv[0], "logical block", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_replace(current_handle, 0, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_split_node(int argc, char *argv[])
+{
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "split_node",
+ "", CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ retval = ext2fs_extent_node_split(current_handle);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_insert_node(int argc, char *argv[])
+{
+ const char *usage = "[--after] [--uninit] <lblk> <len> <pblk>";
+ errcode_t retval;
+ struct ext2fs_extent extent;
+ char *cmd;
+ int err;
+ int flags = 0;
+
+ if (common_extent_args_process(argc, argv, 3, 6, "insert_node",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ cmd = argv[0];
+
+ extent.e_flags = 0;
+
+ while (argc > 2) {
+ if (!strcmp(argv[1], "--after")) {
+ argc--;
+ argv++;
+ flags |= EXT2_EXTENT_INSERT_AFTER;
+ continue;
+ }
+ if (!strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
+ continue;
+ }
+ break;
+ }
+
+ if (argc != 4) {
+ fprintf(stderr, "usage: %s %s\n", cmd, usage);
+ return;
+ }
+
+ extent.e_lblk = parse_ulong(argv[1], cmd,
+ "logical block", &err);
+ if (err)
+ return;
+
+ extent.e_len = parse_ulong(argv[2], cmd,
+ "length", &err);
+ if (err)
+ return;
+
+ extent.e_pblk = parse_ulong(argv[3], cmd,
+ "pysical block", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_insert(current_handle, flags, &extent);
+ if (retval) {
+ com_err(cmd, retval, 0);
+ return;
+ }
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
+
+void do_set_bmap(int argc, char **argv)
+{
+ const char *usage = "[--uninit] <lblk> <pblk>";
+ struct ext2fs_extent extent;
+ errcode_t retval;
+ blk_t logical;
+ blk_t physical;
+ char *cmd = argv[0];
+ int flags = 0;
+ int err;
+
+ if (common_extent_args_process(argc, argv, 3, 5, "set_bmap",
+ usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
+ return;
+
+ if (argc > 2 && !strcmp(argv[1], "--uninit")) {
+ argc--;
+ argv++;
+ flags |= EXT2_EXTENT_SET_BMAP_UNINIT;
+ }
+
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s %s\n", cmd, usage);
+ return;
+ }
+
+ logical = parse_ulong(argv[1], cmd,
+ "logical block", &err);
+ if (err)
+ return;
+
+ physical = parse_ulong(argv[2], cmd,
+ "physical block", &err);
+ if (err)
+ return;
+
+ retval = ext2fs_extent_set_bmap(current_handle, logical,
+ (blk64_t) physical, flags);
+ if (retval) {
+ com_err(cmd, retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle, EXT2_EXTENT_CURRENT,
+ &extent);
+ if (retval)
+ return;
+ dbg_print_extent(0, &extent);
+}
+
+void do_print_all(int argc, char **argv)
+{
+ const char *usage = "[--leaf-only|--reverse|--reverse-leaf]";
+ struct ext2fs_extent extent;
+ errcode_t retval;
+ errcode_t end_err = EXT2_ET_EXTENT_NO_NEXT;
+ int op = EXT2_EXTENT_NEXT;
+ int first_op = EXT2_EXTENT_ROOT;
+
+
+ if (common_extent_args_process(argc, argv, 1, 2, "print_all",
+ usage, 0))
+ return;
+
+ if (argc == 2) {
+ if (!strcmp(argv[1], "--leaf-only"))
+ op = EXT2_EXTENT_NEXT_LEAF;
+ else if (!strcmp(argv[1], "--reverse")) {
+ op = EXT2_EXTENT_PREV;
+ first_op = EXT2_EXTENT_LAST_LEAF;
+ end_err = EXT2_ET_EXTENT_NO_PREV;
+ } else if (!strcmp(argv[1], "--reverse-leaf")) {
+ op = EXT2_EXTENT_PREV_LEAF;
+ first_op = EXT2_EXTENT_LAST_LEAF;
+ end_err = EXT2_ET_EXTENT_NO_PREV;
+ } else {
+ fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
+ return;
+ }
+ }
+
+ retval = ext2fs_extent_get(current_handle, first_op, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+
+ while (1) {
+ retval = ext2fs_extent_get(current_handle, op, &extent);
+ if (retval == end_err)
+ break;
+
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+ dbg_print_extent(0, &extent);
+ }
+}
+
+void do_fix_parents(int argc, char **argv)
+{
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "fix_parents", "",
+ CHECK_FS_RW))
+ return;
+
+ retval = ext2fs_extent_fix_parents(current_handle);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+}
+
+void do_info(int argc, char **argv)
+{
+ struct ext2fs_extent extent;
+ struct ext2_extent_info info;
+ errcode_t retval;
+
+ if (common_extent_args_process(argc, argv, 1, 1, "info", "", 0))
+ return;
+
+ retval = ext2fs_extent_get_info(current_handle, &info);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ retval = ext2fs_extent_get(current_handle,
+ EXT2_EXTENT_CURRENT, &extent);
+ if (retval) {
+ com_err(argv[0], retval, 0);
+ return;
+ }
+
+ dbg_print_extent(0, &extent);
+
+ printf("Current handle location: %d/%d (max: %d, bytes %d), level %d/%d\n",
+ info.curr_entry, info.num_entries, info.max_entries,
+ info.bytes_avail, info.curr_level, info.max_depth);
+ printf("\tmax lblk: %llu, max pblk: %llu\n", info.max_lblk,
+ info.max_pblk);
+ printf("\tmax_len: %u, max_uninit_len: %u\n", info.max_len,
+ info.max_uninit_len);
+}
+
+void do_goto_block(int argc, char **argv)
+{
+ errcode_t retval;
+ blk64_t blk;
+ int level = 0, err;
+
+ if (common_extent_args_process(argc, argv, 2, 3, "goto_block",
+ "block [level]", 0))
+ return;
+
+ if (strtoblk(argv[0], argv[1], &blk))
+ return;
+
+ if (argc == 3) {
+ level = parse_ulong(argv[2], argv[0], "level", &err);
+ if (err)
+ return;
+ }
+
+ retval = ext2fs_extent_goto2(current_handle, level, (blk64_t) blk);
+
+ if (retval) {
+ com_err(argv[0], retval,
+ "while trying to go to block %llu, level %d",
+ (unsigned long long) blk, level);
+ return;
+ }
+
+ generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
+}
return;
}
- printf("Reading directory block %llu, phys %llu\n", blk, pblk);
+ fprintf(pager, "Reading directory block %llu, phys %llu\n", blk, pblk);
errcode = ext2fs_read_dir_block2(current_fs, pblk, buf, 0);
if (errcode) {
com_err("htree_dump_leaf_node", errcode,
char *buf = NULL;
struct ext2_dx_root_info *rootnode;
struct ext2_dx_entry *ent;
- struct ext2_dx_countlimit *limit;
errcode_t errcode;
if (check_fs_open(argv[0]))
fprintf(pager, "\t Flags: %d\n", rootnode->unused_flags);
ent = (struct ext2_dx_entry *) (buf + 24 + rootnode->info_length);
- limit = (struct ext2_dx_countlimit *) ent;
htree_dump_int_node(current_fs, ino, &inode, rootnode, ent,
buf + current_fs->blocksize,
request do_dump_mmp, "Dump MMP information",
dump_mmp;
+request do_extent_open, "Open inode for extent manipulation",
+ extent_open, eo;
+
end;
n = num & mask;
switch (size) {
case 8:
- *u.ptr64 = n;
+ /* Should never get here */
+ fprintf(stderr, "64-bit field %s has a second 64-bit field\n"
+ "defined; BUG?!?\n", info->name);
+ *u.ptr64 = 0;
break;
case 4:
*u.ptr32 = n;
--- /dev/null
+/*
+ * zap.c --- zap block
+ *
+ * Copyright (C) 2012 Theodore Ts'o. This file may be redistributed
+ * under the terms of the GNU Public License.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#else
+extern int optind;
+extern char *optarg;
+#endif
+
+#include "debugfs.h"
+
+void do_zap_block(int argc, char *argv[])
+{
+ unsigned long pattern = 0;
+ unsigned char *buf;
+ ext2_ino_t inode;
+ errcode_t errcode;
+ blk64_t block;
+ char *file = NULL;
+ int c, err;
+ int offset = -1;
+ int length = -1;
+ int bit = -1;
+
+ if (check_fs_open(argv[0]))
+ return;
+ if (check_fs_read_write(argv[0]))
+ return;
+
+ reset_getopt();
+ while ((c = getopt (argc, argv, "b:f:l:o:p:")) != EOF) {
+ switch (c) {
+ case 'f':
+ file = optarg;
+ break;
+ case 'b':
+ bit = parse_ulong(optarg, argv[0],
+ "bit", &err);
+ if (err)
+ return;
+ if (bit >= (int) current_fs->blocksize * 8) {
+ com_err(argv[0], 0, "The bit to flip "
+ "must be within a %d block\n",
+ current_fs->blocksize);
+ return;
+ }
+ break;
+ case 'p':
+ pattern = parse_ulong(optarg, argv[0],
+ "pattern", &err);
+ if (err)
+ return;
+ if (pattern >= 256) {
+ com_err(argv[0], 0, "The fill pattern must "
+ "be an 8-bit value\n");
+ return;
+ }
+ break;
+ case 'o':
+ offset = parse_ulong(optarg, argv[0],
+ "offset", &err);
+ if (err)
+ return;
+ if (offset >= (int) current_fs->blocksize) {
+ com_err(argv[0], 0, "The offset must be "
+ "within a %d block\n",
+ current_fs->blocksize);
+ return;
+ }
+ break;
+
+ break;
+ case 'l':
+ length = parse_ulong(optarg, argv[0],
+ "length", &err);
+ if (err)
+ return;
+ break;
+ default:
+ goto print_usage;
+ }
+ }
+
+ if (bit > 0 && offset > 0) {
+ com_err(argv[0], 0, "The -o and -b options can not be mixed.");
+ return;
+ }
+
+ if (offset < 0)
+ offset = 0;
+ if (length < 0)
+ length = current_fs->blocksize - offset;
+ if ((offset + length) > (int) current_fs->blocksize) {
+ com_err(argv[0], 0, "The specified length is too bug\n");
+ return;
+ }
+
+ if (argc != optind+1) {
+ print_usage:
+ com_err(0, 0, "Usage:\tzap_block [-f file] [-o offset] "
+ "[-l length] [-p pattern] block_num");
+ com_err(0, 0, "\tzap_block [-f file] [-b bit] "
+ "block_num");
+ return;
+ }
+
+ block = parse_ulonglong(argv[optind], argv[0], "block", &err);
+ if (err)
+ return;
+
+ if (file) {
+ inode = string_to_inode(file);
+ if (!inode)
+ return;
+ errcode = ext2fs_bmap2(current_fs, inode, 0, 0, 0,
+ block, 0, &block);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while mapping logical block %llu\n", block);
+ return;
+ }
+ }
+
+ buf = malloc(current_fs->blocksize);
+ if (!buf) {
+ com_err(argv[0], 0, "Couldn't allocate block buffer");
+ return;
+ }
+
+ errcode = io_channel_read_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while reading block %llu\n", block);
+ goto errout;
+ }
+
+ if (bit >= 0)
+ buf[bit >> 3] ^= 1 << (bit & 7);
+ else
+ memset(buf+offset, pattern, length);
+
+ errcode = io_channel_write_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while write block %llu\n", block);
+ goto errout;
+ }
+
+errout:
+ free(buf);
+ return;
+}
+
+void do_block_dump(int argc, char *argv[])
+{
+ unsigned char *buf;
+ ext2_ino_t inode;
+ errcode_t errcode;
+ blk64_t block;
+ char *file = NULL;
+ unsigned int i, j;
+ int c, err;
+ int suppress = -1;
+
+ if (check_fs_open(argv[0]))
+ return;
+
+ reset_getopt();
+ while ((c = getopt (argc, argv, "f:")) != EOF) {
+ switch (c) {
+ case 'f':
+ file = optarg;
+ break;
+
+ default:
+ goto print_usage;
+ }
+ }
+
+ if (argc != optind+1) {
+ print_usage:
+ com_err(0, 0, "Usage: dump_block [-f file] "
+ " block_num");
+ return;
+ }
+
+ block = parse_ulonglong(argv[optind], argv[0], "block", &err);
+ if (err)
+ return;
+
+ if (file) {
+ inode = string_to_inode(file);
+ if (!inode)
+ return;
+ errcode = ext2fs_bmap2(current_fs, inode, 0, 0, 0,
+ block, 0, &block);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while mapping logical block %llu\n", block);
+ return;
+ }
+ }
+
+ buf = malloc(current_fs->blocksize);
+ if (!buf) {
+ com_err(argv[0], 0, "Couldn't allocate block buffer");
+ return;
+ }
+
+ errcode = io_channel_read_blk64(current_fs->io, block, 1, buf);
+ if (errcode) {
+ com_err(argv[0], errcode,
+ "while reading block %llu\n", block);
+ goto errout;
+ }
+
+ for (i=0; i < current_fs->blocksize; i += 16) {
+ if (suppress < 0) {
+ if (i && memcmp(buf + i, buf + i - 16, 16) == 0) {
+ suppress = i;
+ printf("*\n");
+ continue;
+ }
+ } else {
+ if (memcmp(buf + i, buf + suppress, 16) == 0)
+ continue;
+ suppress = -1;
+ }
+ printf("%04o ", i);
+ for (j = 0; j < 16; j++) {
+ printf("%02x", buf[i+j]);
+ if ((j % 2) == 1)
+ putchar(' ');
+ }
+ putchar(' ');
+ for (j = 0; j < 16; j++)
+ printf("%c", isprint(buf[i+j]) ? buf[i+j] : '.');
+ putchar('\n');
+ }
+ putchar('\n');
+
+errout:
+ free(buf);
+ return;
+}
DVIPS=dvips -o "$@"
INFO=@MAKEINFO@
HTML=texi2html -split_chapter
+PS2PDF=ps2pdf
all:: libext2fs.info libext2fs.dvi
$(E) " TEXI2DVI $@"
-$(Q) $(DVI) $(srcdir)/libext2fs.texinfo
+libext2fs.ps: libext2fs.dvi
+ $(E) " DVIPS $@"
+ -$(Q) $(DVIPS) libext2fs.dvi
+
+libext2fs.pdf: libext2fs.ps
+ $(E) " PS2PDF $@"
+ -$(Q) $(PS2PDF) libext2fs.ps
+
libext2fs_abt.html: $(srcdir)/libext2fs.texinfo
$(E) " TEXI2HTML $@"
-$(Q) $(HTML) $(srcdir)/libext2fs.texinfo
.PHONY: clean-final
clean-final::
- $(RM) -f *.ps *.info *.info-? *.html
+ $(RM) -f *.ps *.info *.info-? *.html *.pdf
.PHONY: clean-tex
clean-tex::
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename libext2fs.info
-@settitle The EXT2FS Library (version 1.42.5)
+@settitle The EXT2FS Library (version 1.42.8)
@synindex tp fn
@comment %**end of header
ext2 filesystem.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010, 2011, 2012 by Theodore Ts'o
+2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 by Theodore Ts'o
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@title The EXT2FS Library
@subtitle The EXT2FS Library
-@subtitle Version 1.42.5
-@subtitle July 2012
+@subtitle Version 1.42.8
+@subtitle June 2013
@author by Theodore Ts'o
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Theodore Ts'o
+2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Theodore Ts'o
@sp 2
@top The EXT2FS Library
-This manual documents the EXT2FS Library, version 1.42.5.
-
-@end ifinfo
+This manual documents the EXT2FS Library, version 1.42.8.
@menu
* Introduction to the EXT2FS Library::
* Function Index::
@end menu
+@end ifinfo
+
@c ----------------------------------------------------------------------
@node Introduction to the EXT2FS Library, EXT2FS Library Functions, Top, Top
@deftypefun errcode_t ext2fs_dir_iterate (ext2_filsys @var{fs}, ext2_ino_t @var{dir}, int @var{flags}, char *@var{block_buf}, int (*@var{func})(struct ext2_dir_entry *@var{dirent}, int @var{offset}, int @var{blocksize}, char *@var{buf}, void *@var{private}), void *@var{private})
-This function interates over all of the directory entries in the
+This function iterates over all of the directory entries in the
directory @var{dir}, calling the callback function @var{func} for each
directory entry in the directory. The @var{block_buf} parameter should
either be NULL, or if the @code{ext2fs_dir_iterate} function is
PROFILED_LIBS= $(PROFILED_LIBQUOTA) $(PROFILED_LIBEXT2FS) \
$(PROFILED_LIBCOM_ERR) $(PROFILED_LIBBLKID) $(PROFILED_LIBUUID) \
- $(PROFILED_LIBE2P) $(LIBINTL) \
+ $(PROFILED_LIBE2P) $(LIBINTL)
PROFILED_DEPLIBS= $(DEPPROFILED_LIBQUOTA) $(PROFILED_LIBEXT2FS) \
$(DEPPROFILED_LIBCOM_ERR) $(DEPPROFILED_LIBBLKID) \
$(DEPPROFILED_LIBUUID) $(DEPPROFILED_LIBE2P)
$(E) " LD $@"
$(Q) $(LD) $(LDFLAGS_STATIC) -o e2fsck.static $(OBJS) $(STATIC_LIBS)
-e2fsck.profiled: $(PROFILED_OBJS) $(PROFILED_DEPLIBS)
+e2fsck.profiled: $(OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(LD) $(ALL_LDFLAGS) -g -pg -o e2fsck.profiled $(PROFILED_OBJS) \
$(PROFILED_LIBS)
$(E) " GEN32TABLE $@"
$(Q) ./gen_crc32table > crc32table.h
-tst_sigcatcher: $(srcdir)/sigcatcher.c
+tst_sigcatcher: $(srcdir)/sigcatcher.c sigcatcher.o
+ $(E) " CC $@"
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) $(RDYNAMIC) \
$(srcdir)/sigcatcher.c -DDEBUG -o tst_sigcatcher
preenhalt(ctx);
if (ask(ctx, _("Ignore error"), 1)) {
if (ask(ctx, _("Force rewrite"), 1))
- io_channel_write_blk64(channel, block, 1, data);
+ io_channel_write_blk64(channel, block, count, data);
return 0;
}
* We use the standard libext2fs portability tricks for inline
* functions.
*/
+#ifdef NO_INLINE_FUNCS
extern lkmem_cache_t * do_cache_create(int len);
extern void do_cache_destroy(lkmem_cache_t *cache);
extern size_t journal_tag_bytes(journal_t *journal);
+#endif
#if (defined(E2FSCK_INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
#ifdef E2FSCK_INCLUDE_INLINE_FUNCS
-#define _INLINE_ extern
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ extern inline
#else
+#define _INLINE_ inline
+#endif
+#else /* !E2FSCK_INCLUDE_INLINE FUNCS */
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else /* not C99 */
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
+#endif /* E2FSCK_INCLUDE_INLINE_FUNCS */
+
_INLINE_ lkmem_cache_t * do_cache_create(int len)
{
BLOCK_FLAG_HOLE, 0,
process_journal_block, &pb);
if ((pb.last_block + 1) * ctx->fs->blocksize <
- EXT2_I_SIZE(&j_inode->i_ext2)) {
+ (int) EXT2_I_SIZE(&j_inode->i_ext2)) {
retval = EXT2_ET_JOURNAL_TOO_SMALL;
goto try_backup_journal;
}
#ifndef USE_INODE_IO
if (ext_journal)
#endif
- retval = io_ptr->open(journal_name,
- IO_FLAG_RW | IO_FLAG_EXCLUSIVE,
+ {
+ int flags = IO_FLAG_RW;
+ if (!(ctx->mount_flags & EXT2_MF_ISROOT &&
+ ctx->mount_flags & EXT2_MF_READONLY))
+ flags |= IO_FLAG_EXCLUSIVE;
+ if ((ctx->mount_flags & EXT2_MF_READONLY) &&
+ (ctx->options & E2F_OPT_FORCE))
+ flags &= ~IO_FLAG_EXCLUSIVE;
+
+
+ retval = io_ptr->open(journal_name, flags,
&ctx->journal_io);
+ }
if (retval)
goto errout;
static void append_string(struct string *s, const char *a, int len)
{
+ int needlen;
+
if (!len)
len = strlen(a);
- if (s->end + len >= s->len) {
- char *n = realloc(s, s->len * 2);
+ needlen = s->end + len + 1;
+ if (needlen > s->len) {
+ char *n;
+
+ if (s->len * 2 > needlen)
+ needlen = s->len * 2;
+ n = realloc(s->s, needlen);
if (n) {
s->s = n;
- s->len = s->len * 2;
+ s->len = needlen;
} else {
- len = s->len - s->end - 1;
- if (len <= 0)
- return;
+ /* Don't append if we ran out of memory */
+ return;
}
}
memcpy(s->s + s->end, a, len);
static void print_pathname(FILE *f, ext2_filsys fs, ext2_ino_t dir,
ext2_ino_t ino)
{
- errcode_t retval;
+ errcode_t retval = 0;
char *path;
if (!dir && (ino < num_special_inodes)) {
struct problem_context *ctx)
{
struct ext2_dir_entry *dirent;
- unsigned int rec_len;
- int len;
+ unsigned int rec_len, len;
if (!ctx || !ctx->dirent)
goto no_dirent;
struct ext2_super_block *sb = ctx->fs->super;
struct ext2_inode_large *inode;
struct ext2_ext_attr_entry *entry;
- char *start, *end;
+ char *start;
unsigned int storage_size, remain;
int problem = 0;
inode->i_extra_isize;
start = ((char *) inode) + EXT2_GOOD_OLD_INODE_SIZE +
inode->i_extra_isize + sizeof(__u32);
- end = (char *) inode + EXT2_INODE_SIZE(ctx->fs->super);
entry = (struct ext2_ext_attr_entry *) start;
/* scan all entry's headers first */
remain -= EXT2_EXT_ATTR_SIZE(entry->e_name_len);
/* check value size */
- if (entry->e_value_size == 0 || entry->e_value_size > remain) {
+ if (entry->e_value_size > remain) {
pctx->num = entry->e_value_size;
problem = PR_1_ATTR_VALUE_SIZE;
goto fix;
}
}
+static _INLINE_ void mark_blocks_used(e2fsck_t ctx, blk64_t block,
+ unsigned int num)
+{
+ if (ext2fs_test_block_bitmap_range2(ctx->block_found_map, block, num))
+ ext2fs_mark_block_bitmap_range2(ctx->block_found_map, block, num);
+ else
+ while (num--)
+ mark_block_used(ctx, block++);
+}
+
/*
* Adjust the extended attribute block's reference counts at the end
* of pass 1, either by subtracting out references for EA blocks that
static void scan_extent_node(e2fsck_t ctx, struct problem_context *pctx,
struct process_block_struct *pb,
- blk64_t start_block,
+ blk64_t start_block, blk64_t end_block,
ext2_extent_handle_t ehandle)
{
struct ext2fs_extent extent;
- blk64_t blk;
+ blk64_t blk, last_lblk;
e2_blkcnt_t blockcnt;
unsigned int i;
int is_dir, is_leaf;
while (!pctx->errcode && info.num_entries-- > 0) {
is_leaf = extent.e_flags & EXT2_EXTENT_FLAGS_LEAF;
is_dir = LINUX_S_ISDIR(pctx->inode->i_mode);
+ last_lblk = extent.e_lblk + extent.e_len - 1;
problem = 0;
if (extent.e_pblk == 0 ||
problem = PR_1_EXTENT_BAD_START_BLK;
else if (extent.e_lblk < start_block)
problem = PR_1_OUT_OF_ORDER_EXTENTS;
+ else if (end_block && last_lblk > end_block)
+ problem = PR_1_EXTENT_END_OUT_OF_BOUNDS;
else if (is_leaf && extent.e_len == 0)
problem = PR_1_EXTENT_LENGTH_ZERO;
else if (is_leaf &&
(extent.e_pblk + extent.e_len) >
ext2fs_blocks_count(ctx->fs->super))
problem = PR_1_EXTENT_ENDS_BEYOND;
+ else if (is_leaf && is_dir &&
+ ((extent.e_lblk + extent.e_len) >
+ (1 << (21 - ctx->fs->super->s_log_block_size))))
+ problem = PR_1_TOOBIG_DIR;
if (problem) {
- report_problem:
+report_problem:
pctx->blk = extent.e_pblk;
pctx->blk2 = extent.e_lblk;
pctx->num = extent.e_len;
+ pctx->blkcount = extent.e_lblk + extent.e_len;
if (fix_problem(ctx, problem, pctx)) {
e2fsck_read_bitmaps(ctx);
pctx->errcode =
pctx->str = "ext2fs_extent_delete";
return;
}
+ ext2fs_extent_fix_parents(ehandle);
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_CURRENT,
&extent);
}
if (!is_leaf) {
+ blk64_t lblk = extent.e_lblk;
+
blk = extent.e_pblk;
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_DOWN, &extent);
goto report_problem;
return;
}
- scan_extent_node(ctx, pctx, pb, extent.e_lblk, ehandle);
+ /* The next extent should match this index's logical start */
+ if (extent.e_lblk != lblk) {
+ struct ext2_extent_info e_info;
+
+ ext2fs_extent_get_info(ehandle, &e_info);
+ pctx->blk = lblk;
+ pctx->blk2 = extent.e_lblk;
+ pctx->num = e_info.curr_level - 1;
+ problem = PR_1_EXTENT_INDEX_START_INVALID;
+ if (fix_problem(ctx, problem, pctx))
+ ext2fs_extent_fix_parents(ehandle);
+ }
+ scan_extent_node(ctx, pctx, pb, extent.e_lblk,
+ last_lblk, ehandle);
if (pctx->errcode)
return;
pctx->errcode = ext2fs_extent_get(ehandle,
}
pb->fragmented = 1;
}
- while (is_dir && ++pb->last_db_block < extent.e_lblk) {
+ while (is_dir && (++pb->last_db_block <
+ (e2_blkcnt_t) extent.e_lblk)) {
pctx->errcode = ext2fs_add_dir_block2(ctx->fs->dblist,
pb->ino, 0,
pb->last_db_block);
goto failed_add_dir_block;
}
}
+ if (!ctx->fs->cluster_ratio_bits) {
+ mark_blocks_used(ctx, extent.e_pblk, extent.e_len);
+ pb->num_blocks += extent.e_len;
+ }
for (blk = extent.e_pblk, blockcnt = extent.e_lblk, i = 0;
i < extent.e_len;
blk++, blockcnt++, i++) {
- if (!(ctx->fs->cluster_ratio_bits &&
- pb->previous_block &&
+ if (ctx->fs->cluster_ratio_bits &&
+ !(pb->previous_block &&
(EXT2FS_B2C(ctx->fs, blk) ==
EXT2FS_B2C(ctx->fs, pb->previous_block)) &&
(blk & EXT2FS_CLUSTER_MASK(ctx->fs)) ==
- (blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
+ ((unsigned) blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
mark_block_used(ctx, blk);
pb->num_blocks++;
}
if (is_dir && extent.e_len > 0)
pb->last_db_block = blockcnt - 1;
pb->previous_block = extent.e_pblk + extent.e_len - 1;
- start_block = pb->last_block = extent.e_lblk + extent.e_len - 1;
+ start_block = pb->last_block = last_lblk;
if (is_leaf && !is_dir &&
!(extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT))
- pb->last_init_lblock = extent.e_lblk + extent.e_len - 1;
+ pb->last_init_lblock = last_lblk;
next:
pctx->errcode = ext2fs_extent_get(ehandle,
EXT2_EXTENT_NEXT_SIB,
ctx->extent_depth_count[info.max_depth]++;
}
- scan_extent_node(ctx, pctx, pb, 0, ehandle);
+ scan_extent_node(ctx, pctx, pb, 0, 0, ehandle);
if (pctx->errcode &&
fix_problem(ctx, PR_1_EXTENT_ITERATE_FAILURE, pctx)) {
pb->num_blocks = 0;
(EXT2FS_B2C(ctx->fs, blk) ==
EXT2FS_B2C(ctx->fs, p->previous_block)) &&
(blk & EXT2FS_CLUSTER_MASK(ctx->fs)) ==
- (blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
+ ((unsigned) blockcnt & EXT2FS_CLUSTER_MASK(ctx->fs)))) {
mark_block_used(ctx, blk);
p->num_blocks++;
}
ext2_filsys fs = ctx->fs;
blk64_t b;
dgrp_t i;
- int j;
+ unsigned int j;
struct problem_context pctx;
clear_problem_context(&pctx);
{
ext2_filsys fs = ctx->fs;
struct process_block_struct pb;
- struct ext2_inode inode;
struct problem_context pctx;
unsigned int count;
pctx.str = "delete_file";
pb.cur_cluster = ~0;
- e2fsck_read_inode(ctx, ino, &inode, "delete_file");
- if (ext2fs_inode_has_valid_blocks2(fs, &inode))
- pctx.errcode = ext2fs_block_iterate3(fs, ino, BLOCK_FLAG_READ_ONLY,
- block_buf, delete_file_block, &pb);
+ if (ext2fs_inode_has_valid_blocks2(fs, &dp->inode))
+ pctx.errcode = ext2fs_block_iterate3(fs, ino,
+ BLOCK_FLAG_READ_ONLY,
+ block_buf,
+ delete_file_block, &pb);
if (pctx.errcode)
fix_problem(ctx, PR_1B_BLOCK_ITERATE, &pctx);
if (ctx->inode_bad_map)
ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino);
- ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(inode.i_mode));
- quota_data_sub(ctx->qctx, &inode, ino, pb.dup_blocks * fs->blocksize);
- quota_data_inodes(ctx->qctx, &inode, ino, -1);
+ ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(dp->inode.i_mode));
+ quota_data_sub(ctx->qctx, &dp->inode, ino,
+ pb.dup_blocks * fs->blocksize);
+ quota_data_inodes(ctx->qctx, &dp->inode, ino, -1);
/* Inode may have changed by block_iterate, so reread it */
- e2fsck_read_inode(ctx, ino, &inode, "delete_file");
- e2fsck_clear_inode(ctx, ino, &inode, 0, "delete_file");
- if (ext2fs_file_acl_block(fs, &inode) &&
+ e2fsck_read_inode(ctx, ino, &dp->inode, "delete_file");
+ e2fsck_clear_inode(ctx, ino, &dp->inode, 0, "delete_file");
+ if (ext2fs_file_acl_block(fs, &dp->inode) &&
(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_EXT_ATTR)) {
count = 1;
pctx.errcode = ext2fs_adjust_ea_refcount2(fs,
- ext2fs_file_acl_block(fs, &inode),
+ ext2fs_file_acl_block(fs, &dp->inode),
block_buf, -1, &count);
if (pctx.errcode == EXT2_ET_BAD_EA_BLOCK_NUM) {
pctx.errcode = 0;
count = 1;
}
if (pctx.errcode) {
- pctx.blk = ext2fs_file_acl_block(fs, &inode);
+ pctx.blk = ext2fs_file_acl_block(fs, &dp->inode);
fix_problem(ctx, PR_1B_ADJ_EA_REFCOUNT, &pctx);
}
/*
*/
if ((count == 0) ||
ext2fs_test_block_bitmap2(ctx->block_dup_map,
- ext2fs_file_acl_block(fs, &inode))) {
- blk64_t blk = ext2fs_file_acl_block(fs, &inode);
+ ext2fs_file_acl_block(fs, &dp->inode))) {
+ blk64_t blk = ext2fs_file_acl_block(fs, &dp->inode);
delete_file_block(fs, &blk,
BLOCK_COUNT_EXTATTR, 0, 0, &pb);
- ext2fs_file_acl_block_set(fs, &inode, blk);
- quota_data_sub(ctx->qctx, &inode, ino, fs->blocksize);
+ ext2fs_file_acl_block_set(fs, &dp->inode, blk);
+ quota_data_sub(ctx->qctx, &dp->inode, ino, fs->blocksize);
}
}
}
*/
if ((left < 0) &&
((int) rec_len + left > 8) &&
- (name_len + 8 <= (int) rec_len + left) &&
+ ((int) name_len + 8 <= (int) rec_len + left) &&
dirent->inode <= fs->super->s_inodes_count &&
strnlen(dirent->name, name_len) == name_len) {
(void) ext2fs_set_rec_len(fs, (int) rec_len + left, dirent);
struct del_block del_block;
e2fsck_read_inode(ctx, ino, &inode, "deallocate_inode");
- e2fsck_clear_inode(ctx, ino, &inode, 0, "deallocate_inode");
clear_problem_context(&pctx);
pctx.ino = ino;
}
if (!ext2fs_inode_has_valid_blocks2(fs, &inode))
- return;
+ goto clear_inode;
if (LINUX_S_ISREG(inode.i_mode) && EXT2_I_SIZE(&inode) >= 0x80000000UL)
ctx->large_files--;
ctx->flags |= E2F_FLAG_ABORT;
return;
}
+clear_inode:
+ /* Inode may have changed by block_iterate, so reread it */
+ e2fsck_read_inode(ctx, ino, &inode, "deallocate_inode");
+ e2fsck_clear_inode(ctx, ino, &inode, 0, "deallocate_inode");
}
/*
/* Protect loop from wrap-around if s_inodes_count maxed */
for (i=1; i <= fs->super->s_inodes_count && i > 0; i++) {
- int isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
+ int isdir;
if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
goto errout;
ext2fs_icount_fetch(ctx->inode_count, i,
&link_counted);
}
+ isdir = ext2fs_test_inode_bitmap2(ctx->inode_dir_map, i);
if (isdir && (link_counted > EXT2_LINK_MAX))
link_counted = 1;
if (link_counted != link_count) {
int cmp_block = 0;
int redo_flag = 0;
blk64_t super_blk, old_desc_blk, new_desc_blk;
+ char *actual_buf, *bitmap_buf;
+
+ actual_buf = (char *) e2fsck_allocate_memory(ctx, fs->blocksize,
+ "actual bitmap buffer");
+ bitmap_buf = (char *) e2fsck_allocate_memory(ctx, fs->blocksize,
+ "bitmap block buffer");
clear_problem_context(&pctx);
free_array = (unsigned int *) e2fsck_allocate_memory(ctx,
for (i = B2C(fs->super->s_first_data_block);
i < ext2fs_blocks_count(fs->super);
i += EXT2FS_CLUSTER_RATIO(fs)) {
+ int first_block_in_bg = (B2C(i) -
+ B2C(fs->super->s_first_data_block)) %
+ fs->super->s_clusters_per_group == 0;
+ int n, nbytes = fs->super->s_clusters_per_group / 8;
+
actual = ext2fs_fast_test_block_bitmap2(ctx->block_found_map, i);
+ /*
+ * Try to optimize pass5 by extracting a bitmap block
+ * as expected from what we have on disk, and then
+ * comparing the two. If they are identical, then
+ * update the free block counts and go on to the next
+ * block group. This is much faster than doing the
+ * individual bit-by-bit comparison. The one downside
+ * is that this doesn't work if we are asking e2fsck
+ * to do a discard operation.
+ */
+ if (!first_block_in_bg ||
+ (group == (int)fs->group_desc_count - 1) ||
+ (ctx->options & E2F_OPT_DISCARD))
+ goto no_optimize;
+
+ retval = ext2fs_get_block_bitmap_range2(ctx->block_found_map,
+ B2C(i), fs->super->s_clusters_per_group,
+ actual_buf);
+ if (retval)
+ goto no_optimize;
+ if (ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT))
+ memset(bitmap_buf, 0, nbytes);
+ else {
+ retval = ext2fs_get_block_bitmap_range2(fs->block_map,
+ B2C(i), fs->super->s_clusters_per_group,
+ bitmap_buf);
+ if (retval)
+ goto no_optimize;
+ }
+ if (memcmp(actual_buf, bitmap_buf, nbytes) != 0)
+ goto no_optimize;
+ n = ext2fs_bitcount(actual_buf, nbytes);
+ group_free = fs->super->s_clusters_per_group - n;
+ free_blocks += group_free;
+ i += EXT2FS_C2B(fs, fs->super->s_clusters_per_group - 1);
+ goto next_group;
+ no_optimize:
+
if (skip_group) {
- if ((B2C(i) - B2C(fs->super->s_first_data_block)) %
- fs->super->s_clusters_per_group == 0) {
+ if (first_block_in_bg) {
super_blk = 0;
old_desc_blk = 0;
new_desc_blk = 0;
if (!bitmap && i >= first_free)
e2fsck_discard_blocks(ctx, first_free,
(i - first_free) + 1);
+ next_group:
first_free = ext2fs_blocks_count(fs->super);
free_array[group] = group_free;
}
errout:
ext2fs_free_mem(&free_array);
+ ext2fs_free_mem(&actual_buf);
+ ext2fs_free_mem(&bitmap_buf);
}
static void check_inode_bitmaps(e2fsck_t ctx)
N_("@i %i has zero length extent\n\t(@n logical @b %c, physical @b %b)\n"),
PROMPT_CLEAR, 0 },
+ /*
+ * Interior extent node logical offset doesn't match first node below it
+ */
+ { PR_1_EXTENT_INDEX_START_INVALID,
+ N_("Interior @x node level %N of @i %i:\n"
+ "Logical start %b does not match logical start %c at next level. "),
+ PROMPT_FIX, 0 },
+
+ /* Extent end is out of bounds for the tree */
+ { PR_1_EXTENT_END_OUT_OF_BOUNDS,
+ N_("@i %i, end of extent exceeds allowed value\n\t(logical @b %c, physical @b %b, len %N)\n"),
+ PROMPT_CLEAR, 0 },
+
+
/* Pass 1b errors */
/* Pass 1B: Rescan for duplicate/bad blocks */
return 0;
}
if (!(ptr->flags & PR_CONFIG)) {
- char key[9], *new_desc;
+ char key[9], *new_desc = NULL;
sprintf(key, "0x%06x", code);
/* Extent has zero length */
#define PR_1_EXTENT_LENGTH_ZERO 0x010066
+/* Index start doesn't match start of next extent down */
+#define PR_1_EXTENT_INDEX_START_INVALID 0x01006D
+
+#define PR_1_EXTENT_END_OUT_OF_BOUNDS 0x01006E
/*
* Pass 1b errors
*/
/* Error adjusting EA refcount */
#define PR_1B_ADJ_EA_REFCOUNT 0x011007
-
/* Pass 1C: Scan directories for inodes with dup blocks. */
#define PR_1C_PASS_HEADER 0x012000
int journal_skip_recovery(journal_t *journal)
{
int err;
- journal_superblock_t * sb;
-
struct recovery_info info;
memset (&info, 0, sizeof(info));
- sb = journal->j_superblock;
err = do_one_pass(journal, &info, PASS_SCAN);
++journal->j_transaction_sequence;
} else {
#ifdef CONFIG_JBD_DEBUG
+ journal_superblock_t *sb = journal->j_superblock;
+
int dropped = info.end_transaction - be32_to_cpu(sb->s_sequence);
#endif
jbd_debug(1,
int tag_bytes = journal_tag_bytes(journal);
__u32 crc32_sum = ~0; /* Transactional Checksums */
- /* Precompute the maximum metadata descriptors in a descriptor block */
- int MAX_BLOCKS_PER_DESC;
- MAX_BLOCKS_PER_DESC = ((journal->j_blocksize-sizeof(journal_header_t))
- / tag_bytes);
-
/*
* First thing is to establish what we expect to find in the log
* (in terms of transaction IDs), and where (in terms of log
if (tid_geq(next_commit_ID, info->end_transaction))
break;
- jbd_debug(2, "Scanning for sequence ID %u at %lu/%lu\n",
+ jbd_debug(2, "Scanning for sequence ID %u at %llu/%lu\n",
next_commit_ID, next_log_block, journal->j_last);
/* Skip over each chunk of the transaction looking
* either the next descriptor block or the final commit
* record. */
- jbd_debug(3, "JBD: checking block %ld\n", next_log_block);
+ jbd_debug(3, "JBD: checking block %llu\n", next_log_block);
err = jread(&bh, journal, next_log_block);
if (err)
goto failed;
unsigned long long blocknr;
int err;
- if (record_len == 4)
- blocknr = ext2fs_be32_to_cpu(*((__be32 *)(bh->b_data +
- offset)));
- else
- blocknr = ext2fs_be64_to_cpu(*((__be64 *)(bh->b_data +
- offset)));
+ if (record_len == 4) {
+ __be32 b;
+ memcpy(&b, bh->b_data + offset, sizeof(__be32));
+ blocknr = ext2fs_be32_to_cpu(b);
+ } else {
+ __be64 b;
+ memcpy(&b, bh->b_data + offset, sizeof(__be64));
+ blocknr = ext2fs_be64_to_cpu(b);
+ }
+
offset += record_len;
err = journal_set_revoke(journal, blocknr, sequence);
if (err)
int main(int argc, char **argv)
{
- region_t r;
+ region_t r = NULL;
int pc = 0, ret;
region_addr_t start, end;
e2fsck_t ctx;
struct hash_entry *harray;
int max_array, num_array;
- int dir_size;
+ unsigned int dir_size;
int compress;
ino_t parent;
};
if (((dir_offset + rec_len) > fs->blocksize) ||
(rec_len < 8) ||
((rec_len % 4) != 0) ||
- (((dirent->name_len & 0xFF)+8) > rec_len)) {
+ (((dirent->name_len & 0xFF)+8U) > rec_len)) {
fd->err = EXT2_ET_DIR_CORRUPTED;
return BLOCK_ABORT;
}
char *block_start;
struct hash_entry *ent;
struct ext2_dir_entry *dirent;
- unsigned int rec_len, prev_rec_len;
- int i, left;
+ unsigned int rec_len, prev_rec_len, left, slack, offset;
+ int i;
ext2_dirhash_t prev_hash;
- int offset, slack;
if (ctx->htree_slack_percentage == 255) {
profile_get_uint(ctx->profile, "options",
struct dir_info_iter * dirinfo_iter = 0;
ext2_ino_t ino;
errcode_t retval;
- int cur, max, all_dirs, dir_index, first = 1;
+ int cur, max, all_dirs, first = 1;
init_resource_track(&rtrack, ctx->fs->io);
all_dirs = ctx->options & E2F_OPT_COMPRESS_DIRS;
clear_problem_context(&pctx);
- dir_index = ctx->fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX;
cur = 0;
if (all_dirs) {
dirinfo_iter = e2fsck_dir_info_iter_begin(ctx);
END_TABLE
};
+#if 0 /* should this be hooked in somewhere? */
static struct str_table sigstrap_code_table[] = {
#ifdef TRAP_BRKPT
DEFINE_ENTRY(TRAP_BRKPT)
#endif
END_TABLE
};
+#endif
static struct str_table sigcld_code_table[] = {
#ifdef CLD_EXITED
END_TABLE
};
+#if 0 /* should this be hooked in somewhere? */
static struct str_table sigpoll_code_table[] = {
#ifdef POLL_IN
DEFINE_ENTRY(POLL_IN)
#endif
END_TABLE
};
+#endif
static const char *lookup_table(int num, struct str_table *table)
{
return buf;
}
-static void die_signal_handler(int signum, siginfo_t *siginfo, void *context)
+static void die_signal_handler(int signum, siginfo_t *siginfo,
+ void *context EXT2FS_ATTR((unused)))
{
void *stack_syms[32];
int frames;
fprintf(stderr, "fault addr=%p", siginfo->si_addr);
fprintf(stderr, "\n");
-#ifdef HAVE_BACKTRACE
+#if defined(HAVE_BACKTRACE) && !defined(DISABLE_BACKTRACE)
frames = backtrace(stack_syms, 32);
backtrace_symbols_fd(stack_syms, frames, 2);
#endif
struct problem_context pctx;
int i, gdt_off, ind_off;
dgrp_t j;
- blk64_t blk, pblk, expect;
+ blk64_t blk, pblk;
+ blk_t expect; /* for resize inode, which is 32-bit only */
__u32 *dind_buf = 0, *ind_buf;
errcode_t retval;
ext2_filsys fs = ctx->fs;
blk64_t first_block, last_block;
struct ext2_super_block *sb = fs->super;
+ unsigned int ipg_max;
problem_t problem;
blk64_t blocks_per_group = fs->super->s_blocks_per_group;
__u32 bpg_max, cpg_max;
int inodes_per_block;
- int ipg_max;
int inode_size;
int accept_time_fudge;
int broken_system_clock;
if (!ext2fs_bg_has_super(fs, g))
continue;
- sb = fs->super->s_first_data_block +
- (g * fs->super->s_blocks_per_group);
+ sb = ext2fs_group_first_block2(fs, g);
retval = io_channel_read_blk(fs->io, sb, -SUPERBLOCK_SIZE,
buf);
ctx->fs_blockdev_count), ctx->fs_blockdev_count);
log_out(ctx, P_("%12u fifo\n", "%12u fifos\n", ctx->fs_fifo_count),
ctx->fs_fifo_count);
- log_out(ctx, P_("%12u link\n", "%12u links\n",
- ctx->fs_links_count - dir_links),
+ log_out(ctx, P_("%12u link\n", "%12u links\n", num_links),
ctx->fs_links_count - dir_links);
log_out(ctx, P_("%12u symbolic link", "%12u symbolic links",
ctx->fs_symlinks_count), ctx->fs_symlinks_count);
ctx->fs_sockets_count),
ctx->fs_sockets_count);
log_out(ctx, "------------\n");
- log_out(ctx, P_("%12u file\n", "%12u files\n",
- ctx->fs_total_count - dir_links),
- ctx->fs_total_count - dir_links);
+ log_out(ctx, P_("%12u file\n", "%12u files\n", num_files),
+ num_files);
}
static void check_mount(e2fsck_t ctx)
retval = ext2fs_open2(ctx->filesystem_name, ctx->io_options,
flags, 0, 0, io_ptr, ret_fs);
- if (ret_fs)
+ if (retval == 0)
e2fsck_set_bitmap_type(*ret_fs, EXT2FS_BMAP64_RBTREE,
"default", NULL);
return retval;
int old_bitmaps;
__u32 features[3];
char *cp;
- int qtype; /* quota type */
+ int qtype = -99; /* quota type */
clear_problem_context(&pctx);
sigcatcher_setup();
#endif
ret = malloc(size);
if (!ret) {
- sprintf(buf, "Can't allocate %s\n", description);
+ sprintf(buf, "Can't allocate %u bytes for %s\n",
+ size, description);
fatal_error(ctx, buf);
}
memset(ret, 0, size);
errcode_t e2fsck_zero_blocks(ext2_filsys fs, blk_t blk, int num,
blk_t *ret_blk, int *ret_count)
{
- int j, count, next_update, next_update_incr;
+ int j, count;
static char *buf;
errcode_t retval;
memset(buf, 0, fs->blocksize * STRIDE_LENGTH);
}
/* OK, do the write loop */
- next_update = 0;
- next_update_incr = num / 100;
- if (next_update_incr < 1)
- next_update_incr = 1;
for (j = 0; j < num; j += STRIDE_LENGTH, blk += STRIDE_LENGTH) {
count = num - j;
if (count > STRIDE_LENGTH)
const char *profile_name, unsigned int *old_type)
{
unsigned type;
- errcode_t retval;
if (old_type)
*old_type = fs->default_bitmap_type;
Begin3
Title: EXT2 Filesystem utilities
-Version: 1.42.5
-Entered-date: 29July2012
+Version: 1.42.8
+Entered-date: 20Jun2013
Description: The filesystem utilities for the EXT2, EXT3, and EXT4
filesystems, including e2fsck, mke2fs, dumpe2fs, and others.
Keywords: utilities, filesystem, Ext2fs, ext3, ext4
Author: tytso@mit.edu (Theodore Tso)
Maintained-by: tytso@mit.edu (Theodore Tso)
Primary-site: download.sourceforge.net /pub/sourceforge/e2fsprogs
- 5784kB e2fsprogs-1.42.5.tar.gz
- 504kB e2fsprogs-libs-1.42.5.tar.gz
- 1kB e2fsprogs-1.42.5.lsm
+ 5852kB e2fsprogs-1.42.8.tar.gz
+ 564kB e2fsprogs-libs-1.42.8.tar.gz
+ 1kB e2fsprogs-1.42.8.lsm
Alternate-site:
Platforms: linux 1.2.x/1.3.x/2.0.x/2.1.x/2.2.x/2.3.x/2.4.x/2.5.x/2.6.x/3.x
Copying-policy: GPL-2/LGPL-2
$(ELF_LIB): $(OBJS)
$(E) " GEN_ELF_SOLIB $(ELF_LIB)"
- $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) $(ELF_OTHER_LIBS) \
- $(LDFLAGS) -Wl,-soname,$(ELF_SONAME) $(OBJS))
+ $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
+ -L$(top_builddir)/../lib $(LDFLAGS) \
+ -Wl,-soname,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
$(Q) $(MV) elfshared/$(ELF_LIB) .
$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \
$(ELF_LIB): $(OBJS)
$(E) " GEN_ELF_SOLIB $(ELF_LIB)"
- $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) $(ELF_OTHER_LIBS) \
- $(LDFLAGS) -Wl,-h,$(ELF_SONAME) $(OBJS))
+ $(Q) (cd elfshared; $(CC) --shared -o $(ELF_LIB) \
+ -L$(top_builddir)/../lib $(LDFLAGS) \
+ -Wl,-h,$(ELF_SONAME) $(OBJS) $(ELF_OTHER_LIBS))
$(Q) $(MV) elfshared/$(ELF_LIB) .
$(Q) $(RM) -f ../$(ELF_LIB) ../$(ELF_IMAGE).so ../$(ELF_SONAME)
$(Q) (cd ..; $(LN) $(LINK_BUILD_FLAGS) \
ELF_IMAGE = libblkid
ELF_MYDIR = blkid
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -luuid
+ELF_OTHER_LIBS = -luuid
BSDLIB_VERSION = 2.0
BSDLIB_IMAGE = libblkid
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
*/
blkid_loff_t blkid_get_dev_size(int fd)
{
- int valid_blkgetsize64 = 1;
-#ifdef __linux__
- struct utsname ut;
-#endif
unsigned long long size64;
- unsigned long size;
blkid_loff_t high, low;
-#ifdef FDGETPRM
- struct floppy_struct this_floppy;
-#endif
-#ifdef HAVE_SYS_DISKLABEL_H
- int part = -1;
- struct disklabel lab;
- struct partition *pp;
- char ch;
- struct stat st;
-#endif /* HAVE_SYS_DISKLABEL_H */
#ifdef DKIOCGETBLOCKCOUNT /* For Apple Darwin */
if (ioctl(fd, DKIOCGETBLOCKCOUNT, &size64) >= 0) {
- if ((sizeof(blkid_loff_t) < sizeof(unsigned long long))
- && (size64 << 9 > 0xFFFFFFFF))
+ if (sizeof(blkid_loff_t) < sizeof(unsigned long long) &&
+ (size64 << 9) > 0xFFFFFFFF)
return 0; /* EFBIG */
- return (blkid_loff_t) size64 << 9;
+ return (blkid_loff_t)size64 << 9;
}
#endif
#ifdef BLKGETSIZE64
+ {
+ int valid_blkgetsize64 = 1;
#ifdef __linux__
- if ((uname(&ut) == 0) &&
- ((ut.release[0] == '2') && (ut.release[1] == '.') &&
- (ut.release[2] < '6') && (ut.release[3] == '.')))
- valid_blkgetsize64 = 0;
-#endif
- if (valid_blkgetsize64 &&
- ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
- if ((sizeof(blkid_loff_t) < sizeof(unsigned long long))
- && ((size64) > 0xFFFFFFFF))
- return 0; /* EFBIG */
- return size64;
+ struct utsname ut;
+
+ if ((uname(&ut) == 0) &&
+ ((ut.release[0] == '2') && (ut.release[1] == '.') &&
+ (ut.release[2] < '6') && (ut.release[3] == '.')))
+ valid_blkgetsize64 = 0;
+#endif
+ if (valid_blkgetsize64 &&
+ ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
+ if (sizeof(blkid_loff_t) < sizeof(unsigned long long) &&
+ (size64 > 0xFFFFFFFF))
+ return 0; /* EFBIG */
+ return size64;
+ }
}
#endif /* BLKGETSIZE64 */
#ifdef BLKGETSIZE
- if (ioctl(fd, BLKGETSIZE, &size) >= 0)
- return (blkid_loff_t)size << 9;
+ {
+ unsigned long size;
+
+ if (ioctl(fd, BLKGETSIZE, &size) >= 0)
+ return (blkid_loff_t)size << 9;
+ }
#endif
/* tested on FreeBSD 6.1-RELEASE i386 */
#endif /* DIOCGMEDIASIZE */
#ifdef FDGETPRM
- if (ioctl(fd, FDGETPRM, &this_floppy) >= 0)
- return (blkid_loff_t)this_floppy.size << 9;
+ {
+ struct floppy_struct this_floppy;
+
+ if (ioctl(fd, FDGETPRM, &this_floppy) >= 0)
+ return (blkid_loff_t)this_floppy.size << 9;
+ }
#endif
#ifdef HAVE_SYS_DISKLABEL_H
- /*
- * This code works for FreeBSD 4.11 i386, except for the full device
- * (such as /dev/ad0). It doesn't work properly for newer FreeBSD
- * though. FreeBSD >= 5.0 should be covered by the DIOCGMEDIASIZE
- * above however.
- *
- * Note that FreeBSD >= 4.0 has disk devices as unbuffered (raw,
- * character) devices, so we need to check for S_ISCHR, too.
- */
- if (fstat(fd, &st) >= 0 && (S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode)))
- part = st.st_rdev & 7;
-
- if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
- pp = &lab.d_partitions[part];
- if (pp->p_size)
- return pp->p_size << 9;
+ {
+ int part = -1;
+ struct disklabel lab;
+ struct partition *pp;
+ char ch;
+ struct stat st;
+
+ /*
+ * This code works for FreeBSD 4.11 i386, except for the full
+ * device (such as /dev/ad0). It doesn't work properly for
+ * newer FreeBSD though. FreeBSD >= 5.0 should be covered by
+ * the DIOCGMEDIASIZE above however.
+ *
+ * Note that FreeBSD >= 4.0 has disk devices as unbuffered (raw,
+ * character) devices, so we need to check for S_ISCHR, too.
+ */
+ if (fstat(fd, &st) >= 0 &&
+ (S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode)))
+ part = st.st_rdev & 7;
+
+ if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
+ pp = &lab.d_partitions[part];
+ if (pp->p_size)
+ return pp->p_size << 9;
+ }
}
#endif /* HAVE_SYS_DISKLABEL_H */
{
while ((*end == ' ' || *end == 0) && end >= label)
--end;
- if (end >= label) {
- label = label;
+ if (end >= label)
return end - label + 1;
- }
return 0;
}
struct blkid_magic *id __BLKID_ATTR((unused)),
unsigned char *buf)
{
- struct hfs_mdb *hfs = (struct hfs_mdb *) buf;
+ struct hfs_mdb *hfs = (struct hfs_mdb *)buf;
+ unsigned long long *uuid_ptr;
char uuid_str[17];
__u64 uuid;
(memcmp(hfs->embed_sig, "HX", 2) == 0))
return 1; /* Not hfs, but an embedded HFS+ */
- uuid = blkid_le64(*((unsigned long long *) hfs->finder_info.id));
+ uuid_ptr = (unsigned long long *)hfs->finder_info.id;
+ uuid = blkid_le64(*uuid_ptr);
if (uuid) {
sprintf(uuid_str, "%016llX", uuid);
blkid_set_tag(probe->dev, "UUID", uuid_str, 0);
unsigned int leaf_node_size;
unsigned int leaf_block;
unsigned int label_len;
- int ext;
+ unsigned long long *uuid_ptr;
__u64 leaf_off, uuid;
char uuid_str[17], label[512];
+ int ext;
/* Check for a HFS+ volume embedded in a HFS volume */
if (memcmp(sbd->signature, "BD", 2) == 0) {
(memcmp(hfsplus->signature, "HX", 2) != 0))
return 1;
- uuid = blkid_le64(*((unsigned long long *) hfsplus->finder_info.id));
+ uuid_ptr = (unsigned long long *)hfsplus->finder_info.id;
+ uuid = blkid_le64(*uuid_ptr);
if (uuid) {
sprintf(uuid_str, "%016llX", uuid);
blkid_set_tag(probe->dev, "UUID", uuid_str, 0);
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
+/* Define to 1 to disable use of backtrace */
+#undef DISABLE_BACKTRACE
+
/* Define to 1 if ext2 compression enabled */
#undef ENABLE_COMPRESSION
/* Define to 1 if if struct sockaddr contains sa_len */
#undef HAVE_SA_LEN
+/* Define to 1 if you have the `secure_getenv' function. */
+#undef HAVE_SECURE_GETENV
+
/* Define to 1 if you have the <semaphore.h> header file. */
#undef HAVE_SEMAPHORE_H
/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG
+/* The size of `off_t', as computed by sizeof. */
+#undef SIZEOF_OFF_T
+
/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT
r = ioctl (fd, EXT2_IOC_GETVERSION, &ver);
*version = ver;
- return 0;
+ return r;
#else /* ! HAVE_EXT2_IOCTLS */
extern int errno;
errno = EOPNOTSUPP;
num <<= 10;
/* fallthrough */
case 'K': case 'k':
- num >>= log_block_size;
+ if (log_block_size < 0)
+ num <<= 10;
+ else
+ num >>= log_block_size;
break;
case 's':
- num >>= (1+log_block_size);
+ if (log_block_size < 0)
+ num <<= 9;
+ else
+ num >>= (1+log_block_size);
break;
case '\0':
break;
unsigned long num;
int log_block_size = 0;
- if (argc != 2) {
- fprintf(stderr, "Usage: %s arg\n", argv[0]);
+ if (argc != 2 && argc != 3) {
+ fprintf(stderr, "Usage: %s arg [log_block_size]\n", argv[0]);
exit(1);
}
+ if (argc == 3) {
+ char *p;
+
+ log_block_size = strtol(argv[2], &p, 0);
+ if (*p) {
+ fprintf(stderr, "Bad log_block_size: %s\n", argv[2]);
+ exit(1);
+ }
+ }
+
num = parse_num_blocks(argv[1], log_block_size);
printf("Parsed number: %lu\n", num);
$(Q) $(SUBSTITUTE) $(srcdir)/compile_et.sh.in compile_et
$(Q) $(CHMOD) +x compile_et
+DVI=texi2dvi
+DVIPS=dvips -o "$@"
+INFO=@MAKEINFO@
+HTML=texi2html -split_chapter
+PS2PDF=ps2pdf
+
com_err.ps : com_err.dvi
com_err.dvi: com_err.texinfo
+com_err.info: $(srcdir)/com_err.texinfo
+ $(E) " MAKEINFO $@"
+ -$(Q) $(INFO) $(srcdir)/com_err.texinfo
+
+com_err.dvi: $(srcdir)/com_err.texinfo
+ $(E) " TEXI2DVI $@"
+ -$(Q) $(DVI) $(srcdir)/com_err.texinfo
+
+com_err.ps: com_err.dvi
+ $(E) " DVIPS $@"
+ -$(Q) $(DVIPS) com_err.dvi
+
+com_err.pdf: com_err.ps
+ $(E) " PS2PDF $@"
+ -$(Q) $(PS2PDF) com_err.ps
+
com_err_abt.html: $(srcdir)/com_err.texinfo
$(E) " TEXI2HTML $@"
- -$(Q) texi2html -split_chapter $(srcdir)/com_err.texinfo
+ -$(Q) $(HTML) $(srcdir)/com_err.texinfo
-$(Q) if test -d com_err ; then \
mv com_err/* . ; rmdir com_err ; \
fi
clean::
$(RM) -f compile_et libcom_err.a libcom_err_p.a com_err.info
$(RM) -f $(OBJS) profiled/*
- $(RM) -f *~ \#* *.bak *.otl *.aux *.toc *.PS *.dvi *.ps TAGS *.ln *.html
+ $(RM) -f *~ \#* *.bak *.otl *.aux *.toc *.PS *.dvi *.ps TAGS *.ln \
+ *.html *.cp *.fn *.fns *.ky *.log *.pc *.pg *.toc *.tp *.vr \
+ *.pdf
$(RM) -f ../libcom_err.a ../libcom_err_p.a
mostlyclean:: clean
@c Software Foundation, and is under different copyright restrictions
@c from the rest of this package.)
-@setfilename com_err
+@setfilename com_err.info
@settitle A Common Error Description Library for UNIX
@ifinfo
@end direntry
@end ifinfo
-@iftex
-@tolerance 10000
+@c smallbook
-@c Mutate section headers...
-@begingroup
- @catcode\11#=6
- @gdef@secheading#1#2#3{@secheadingi {#3@enspace #1}}
-@endgroup
+@iftex
+@finalout
@end iftex
@ifinfo
(this paragraph not being relevant to the printed manual).
@end ignore
+@end ifinfo
@setchapternewpage odd
@end titlepage
-
+@ifinfo
@node Top, Why com_err?, (dir), (dir)
@top A Common Error Description Library for UNIX
* Acknowledgements::
@end menu
-@end ifinfo
-
@page
+@end ifinfo
@node Why com_err?, Error codes, Top, Top
-@section Why com_err?
+@chapter Why com_err?
In building application software packages, a programmer often has to
deal with a number of libraries, each of which can use a different
of the table.
@node Error codes, Error table source file, Why com_err?, Top
-@section Error codes
+@chapter Error codes
Error codes themselves are 32 bit (signed) integers, of which the high
order 24 bits are an identifier of which error table the error code is
significant effort.
@node Error table source file, The error-table compiler, Error codes, Top
-@section Error table source file
+@chapter Error table source file
The error table source file begins with the declaration of the table name,
as
@end example
@node The error-table compiler, Run-time support routines, Error table source file, Top
-@section The error-table compiler
+@chapter The error-table compiler
The error table compiler is named @code{compile_et}. It takes one
argument, the pathname of a file (ending in @samp{.et}, e.g.,
to a program which wishes to use the printed forms of the error codes.
@node Run-time support routines, Coding Conventions, The error-table compiler, Top
-@section Run-time support routines
+@chapter Run-time support routines
Any source file which uses the routines supplied with or produced by the
com_err package should include the header file @file{<com_err.h>}. It
@end deftypefun
-@deftypefun
-void com_err (const char *@var{whoami}, long @var{error_code},
- const char *@var{format}, ...);
+@deftypefun void com_err (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, ...);
This routine provides an alternate way to print error messages to
standard error; it allows the error message to be passed in as a
@end deftypefun
-@deftypefun
-void com_err_va (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, va_list @var{args});
+@deftypefun void com_err_va (const char *@var{whoami}, long @var{error_code}, const char *@var{format}, va_list @var{args});
This routine provides an interface, equivalent to @code{com_err} above,
which may be used by higher-level variadic functions (functions which
@end deftypefun
-@deftypefun void (*set_com_err_hook (void (*@var{proc}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}))) (const char *@var{whoami}, long @var{error_code}, va_list @var{args});
+@deftypefun void *set_com_err_hook (void (*@var{proc}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}) (const char *@var{whoami}, long @var{error_code}, va_list @var{args}));
@deftypefunx void reset_com_err_hook ();
@end deftypefun
@node Coding Conventions, Building and Installation, Run-time support routines, Top
-@section Coding Conventions
+@chapter Coding Conventions
The following conventions are just some general stylistic conventions
to follow when writing robust libraries and programs. Conventions
@end example
@node Building and Installation, Bug Reports, Coding Conventions, Top
-@section Building and Installation
+@chapter Building and Installation
The distribution of this package will probably be done as a compressed
``tar''-format file available via anonymous FTP from SIPB.MIT.EDU.
installed as manual pages.
@node Bug Reports, Acknowledgements, Building and Installation, Top
-@section Bug Reports
+@chapter Bug Reports
The principal author of this library is: Ken
Raeburn, @t{raeburn@@MIT.EDU}.
@node Acknowledgements, , Bug Reports, Top
-@section Acknowledgements
+@chapter Acknowledgements
I would like to thank: Bill Sommerfeld, for his help with some of this
documentation, and catching some of the bugs the first time around;
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
-%% TeX macros to handle texinfo files
-
-% Copyright (C) 1985, 1986, 1988 Richard M. Stallman
-
-% NO WARRANTY
-
-% BECAUSE THIS PROGRAM IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
-%NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT
-%WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC,
-%RICHARD M. STALLMAN AND/OR OTHER PARTIES PROVIDE THIS 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.
-
-% IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M.
-%STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., AND/OR ANY OTHER PARTY
-%WHO MAY MODIFY AND REDISTRIBUTE THIS PROGRAM AS PERMITTED BELOW, BE
-%LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR
-%OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-%USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
-%DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR
-%A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) THIS
-%PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
-%DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
-
-% GENERAL PUBLIC LICENSE TO COPY
-
-% 1. You may copy and distribute verbatim copies of this source file
-%as you receive it, in any medium, provided that you conspicuously
-%and appropriately publish on each copy a valid copyright notice
-%"Copyright (C) 1986 Richard M. Stallman"; and include
-%following the copyright notice a verbatim copy of the above disclaimer
-%of warranty and of this License.
-
-% 2. You may modify your copy or copies of this source file or
-%any portion of it, and copy and distribute such modifications under
-%the terms of Paragraph 1 above, provided that you also do the following:
-
-% a) cause the modified files to carry prominent notices stating
-% that you changed the files and the date of any change; and
-
-% b) cause the whole of any work that you distribute or publish,
-% that in whole or in part contains or is a derivative of this
-% program or any part thereof, to be licensed at no charge to all
-% third parties on terms identical to those contained in this
-% License Agreement (except that you may choose to grant more extensive
-% warranty protection to some or all third parties, at your option).
-
-% c) You may charge a distribution fee for the physical act of
-% transferring a copy, and you may at your option offer warranty
-% protection in exchange for a fee.
-
-%Mere aggregation of another unrelated program with this program (or its
-%derivative) on a volume of a storage or distribution medium does not bring
-%the other program under the scope of these terms.
-
-% 3. You may copy and distribute this program (or a portion or derivative
-%of it, under Paragraph 2) in object code or executable form under the terms
-%of Paragraphs 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
-% Paragraphs 1 and 2 above; or,
-
-% b) accompany it with a written offer, valid for at least three
-% years, to give any third party free (except for a nominal
-% shipping charge) a complete machine-readable copy of the
-% corresponding source code, to be distributed under the terms of
-% Paragraphs 1 and 2 above; or,
-
-% c) accompany it with the information you received as to where the
-% corresponding source code may be obtained. (This alternative is
-% allowed only for noncommercial distribution and only if you
-% received the program in object code or executable form alone.)
-
-%For an executable file, complete source code means all the source code for
-%all modules it contains; but, as a special exception, it need not include
-%source code for modules which are standard libraries that accompany the
-%operating system on which the executable file runs.
-
-% 4. You may not copy, sublicense, distribute or transfer this program
-%except as expressly provided under this License Agreement. Any attempt
-%otherwise to copy, sublicense, distribute or transfer this program is void and
-%your rights to use the program under this License agreement shall be
-%automatically terminated. However, parties who have received computer
-%software programs from you with this License Agreement will not have
-%their licenses terminated so long as such parties remain in full compliance.
-
-% 5. If you wish to incorporate parts of this program into other free
-%programs whose distribution conditions are different, write to the Free
-%Software Foundation at 675 Mass Ave, Cambridge, MA 02139. We have not yet
-%worked out a simple rule that can be stated here, but we will often permit
-%this. We 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.
-
-%In other words, you are welcome to use, share and improve this program.
-%You are forbidden to forbid anyone else to use, share and improve
-%what you give them. Help stamp out software-hoarding!
-
-\def\texinfoversion{1.18}
-\message{Loading texinfo package [Version \texinfoversion]:}
-\message{}
-
-% Save some parts of plain tex whose names we will redefine.
+% texinfo.tex -- TeX macros to handle Texinfo files.
+%
+% Load plain if necessary, i.e., if running under initex.
+\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+%
+\def\texinfoversion{2006-02-13.16}
+%
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
+% Software Foundation, Inc.
+%
+% This texinfo.tex file 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, or (at
+% your option) any later version.
+%
+% This texinfo.tex file 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 texinfo.tex file; see the file COPYING. If not, write
+% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+% Boston, MA 02110-1301, USA.
+%
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction. (This has been our intent since Texinfo was invented.)
+%
+% Please try the latest version of texinfo.tex before submitting bug
+% reports; you can get the latest version from:
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+% ftp://tug.org/tex/texinfo.tex
+% (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
+% of date, so if that's what you're using, please check.
+%
+% Send bug reports to bug-texinfo@gnu.org. Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem. Patches are, of course, greatly appreciated.
+%
+% To process a Texinfo manual with TeX, it's most reliable to use the
+% texi2dvi shell script that comes with the distribution. For a simple
+% manual foo.texi, however, you can get away with this:
+% tex foo.texi
+% texindex foo.??
+% tex foo.texi
+% tex foo.texi
+% dvips foo.dvi -o # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
+% Sometimes one run after texindex suffices, and sometimes you need more
+% than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent. You can get the existing language-specific files from the
+% full Texinfo distribution.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexdot=\.
-\let\ptexstar=\*
-\let\ptexend=\end
-\let\ptexbullet=\bullet
+
+\message{Loading texinfo [version \texinfoversion]:}
+
+% If in a .fmt file, print the version number
+% and turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+\everyjob{\message{[Texinfo version \texinfoversion]}%
+ \catcode`+=\active \catcode`\_=\active}
+
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
\let\ptexb=\b
+\let\ptexbullet=\bullet
\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv=\equiv
+\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
+\let\ptexgtr=>
+\let\ptexhat=^
\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexinsert=\insert
+\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexnewwrite\newwrite
+\let\ptexnoindent=\noindent
+\let\ptexplus=+
+\let\ptexrbrace=\}
+\let\ptexslash=\/
+\let\ptexstar=\*
\let\ptext=\t
-\let\ptexl=\l
-\let\ptexL=\L
-\def\tie{\penalty 10000\ } % Save plain tex definition of ~.
+% If this character appears in an error message or help string, it
+% starts a new line in the output.
+\newlinechar = `^^J
-\message{Basics,}
-\chardef\other=12
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+ \let\linenumber = \empty % Pre-3.0.
+\else
+ \def\linenumber{l.\the\inputlineno:\space}
+\fi
+
+% Set up fixed words for English if not already set.
+\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
+\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
+\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
+% Since the category of space is not known, we have to be careful.
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode`\ =\spacecat}
+
+% Ignore a token.
+%
+\def\gobble#1{}
+
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+
+% Hyphenation fixes.
+\hyphenation{
+ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+ ap-pen-dix bit-map bit-maps
+ data-base data-bases eshell fall-ing half-way long-est man-u-script
+ man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+ par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+ spell-ing spell-ings
+ stand-alone strong-est time-stamp time-stamps which-ever white-space
+ wide-spread wrap-around
+}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset \bindingoffset=0pt
-\newdimen \normaloffset \normaloffset=\hoffset
+\newdimen\bindingoffset
+\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
-\pagewidth=\hsize \pageheight=\vsize
-%---------------------Begin change-----------------------
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt}
+
+% @| inserts a changebar to the left of the current line. It should
+% surround any changed text. This approach does *not* work if the
+% change spans more than two lines of output. To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change).
+%
+\def\|{%
+ % \vadjust can only be used in horizontal mode.
+ \leavevmode
+ %
+ % Append this vertical mode material after the current line in the output.
+ \vadjust{%
+ % We want to insert a rule with the height and depth of the current
+ % leading; that is exactly what \strutbox is supposed to record.
+ \vskip-\baselineskip
+ %
+ % \vadjust-items are inserted at the left edge of the type. So
+ % the \llap here moves out into the left-hand margin.
+ \llap{%
+ %
+ % For a thicker or thinner bar, change the `1pt'.
+ \vrule height\baselineskip width1pt
+ %
+ % This is the space between the bar and the text.
+ \hskip 12pt
+ }%
+ }%
+}
+
+% Sometimes it is convenient to have everything in the transcript file
+% and nothing on the terminal. We don't just call \tracingall here,
+% since that produces some useless output on the terminal. We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
+%
+\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+\def\loggingall{%
+ \tracingstats2
+ \tracingpages1
+ \tracinglostchars2 % 2 gives us more in etex
+ \tracingparagraphs1
+ \tracingoutput1
+ \tracingmacros2
+ \tracingrestores1
+ \showboxbreadth\maxdimen \showboxdepth\maxdimen
+ \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \tracingscantokens1
+ \tracingifs1
+ \tracinggroups1
+ \tracingnesting2
+ \tracingassigns1
+ \fi
+ \tracingcommands3 % 3 gives us more in etex
+ \errorcontextlines16
+}%
+
+% add check for \lastpenalty to plain's definitions. If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi\fi}
+
+% For @cropmarks command.
+% Do @cropmarks to get crop marks.
%
-% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
%
-\newdimen\cornerlong \newdimen\cornerthick
-\newdimen \topandbottommargin
-\newdimen \outerhsize \newdimen \outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
-\outerhsize=7in
-\outervsize=9.5in
-\topandbottommargin=.75in
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
%
-%---------------------End change-----------------------
+\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+\newdimen\cornerlong \cornerlong=1pc
+\newdimen\cornerthick \cornerthick=.3pt
+\newdimen\topandbottommargin \topandbottommargin=.75in
+
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox
+\newbox\footlinebox
% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions itself, but you have to call it yourself.
-\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}}
-\def\onepageout#1{\hoffset=\normaloffset
-\ifodd\pageno \advance\hoffset by \bindingoffset
-\else \advance\hoffset by -\bindingoffset\fi
-\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}%
- {\let\hsize=\pagewidth \makefootline}}
-\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
-
-
-% Here is a modification of the main output routine for Near East Publications
-% This provides right-angle cropmarks at all four corners.
-% The contents of the page are centerlined into the cropmarks,
-% and any desired binding offset is added as an \hskip on either
-% site of the centerlined box. (P. A. MacKay, 12 November, 1986)
-%
-\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up
- \shipout
- \vbox to \outervsize{\hsize=\outerhsize
- \vbox{\line{\ewtop\hfill\ewtop}}
- \nointerlineskip
- \line{\vbox{\moveleft\cornerthick\nstop}
- \hfill
- \vbox{\moveright\cornerthick\nstop}}
- \vskip \topandbottommargin
- \centerline{\ifodd\pageno\hskip\bindingoffset\fi
- \vbox{
- {\let\hsize=\pagewidth \makeheadline}
- \pagebody{#1}
- {\let\hsize=\pagewidth \makefootline}}
- \ifodd\pageno\else\hskip\bindingoffset\fi}
- \vskip \topandbottommargin plus1fill minus1fill
- \boxmaxdepth\cornerthick
- \line{\vbox{\moveleft\cornerthick\nsbot}
- \hfill
- \vbox{\moveright\cornerthick\nsbot}}
- \nointerlineskip
- \vbox{\line{\ewbot\hfill\ewbot}}
- }
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
-%
-% Do @cropmarks to get crop marks
-\def\cropmarks{\let\onepageout=\croppageout }
+% does insertions, but you have to call it yourself.
+\def\onepageout#1{%
+ \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+ %
+ \ifodd\pageno \advance\hoffset by \bindingoffset
+ \else \advance\hoffset by -\bindingoffset\fi
+ %
+ % Do this outside of the \shipout so @code etc. will be expanded in
+ % the headline as they should be, not taken literally (outputting ''code).
+ \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+ \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+ %
+ {%
+ % Have to do this stuff outside the \shipout because we want it to
+ % take effect in \write's, yet the group defined by the \vbox ends
+ % before the \shipout runs.
+ %
+ \indexdummies % don't expand commands in the output.
+ \normalturnoffactive % \ in index entries must not stay \, e.g., if
+ % the page break happens to be in the middle of an example.
+ % We don't want .vr (or whatever) entries like this:
+ % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+ % "\acronym" won't work when it's read back in;
+ % it needs to be
+ % {\code {{\tt \backslashcurfont }acronym}
+ \shipout\vbox{%
+ % Do this early so pdf references go to the beginning of the page.
+ \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+ %
+ \ifcropmarks \vbox to \outervsize\bgroup
+ \hsize = \outerhsize
+ \vskip-\topandbottommargin
+ \vtop to0pt{%
+ \line{\ewtop\hfil\ewtop}%
+ \nointerlineskip
+ \line{%
+ \vbox{\moveleft\cornerthick\nstop}%
+ \hfill
+ \vbox{\moveright\cornerthick\nstop}%
+ }%
+ \vss}%
+ \vskip\topandbottommargin
+ \line\bgroup
+ \hfil % center the page within the outer (page) hsize.
+ \ifodd\pageno\hskip\bindingoffset\fi
+ \vbox\bgroup
+ \fi
+ %
+ \unvbox\headlinebox
+ \pagebody{#1}%
+ \ifdim\ht\footlinebox > 0pt
+ % Only leave this space if the footline is nonempty.
+ % (We lessened \vsize for it in \oddfootingxxx.)
+ % The \baselineskip=24pt in plain's \makefootline has no effect.
+ \vskip 2\baselineskip
+ \unvbox\footlinebox
+ \fi
+ %
+ \ifcropmarks
+ \egroup % end of \vbox\bgroup
+ \hfil\egroup % end of (centering) \line\bgroup
+ \vskip\topandbottommargin plus1fill minus1fill
+ \boxmaxdepth = \cornerthick
+ \vbox to0pt{\vss
+ \line{%
+ \vbox{\moveleft\cornerthick\nsbot}%
+ \hfill
+ \vbox{\moveright\cornerthick\nsbot}%
+ }%
+ \nointerlineskip
+ \line{\ewbot\hfil\ewbot}%
+ }%
+ \egroup % \vbox from first cropmarks clause
+ \fi
+ }% end of \shipout\vbox
+ }% end of group with \indexdummies
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+
+\newinsert\margin \dimen\margin=\maxdimen
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
{\catcode`\@ =11
\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+% marginal hacks, juha@viisa.uucp (Juha Takala)
+\ifvoid\margin\else % marginal info is present
+ \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
\dimen@=\dp#1 \unvbox#1
\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
}
-%
% Here are the rules for the cropmarks. Note that they are
% offset so that the space between them is truly \outerhsize or \outervsize
% (P. A. MacKay, 12 November, 1986)
\def\nsbot{\vbox
{\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-% Parse an argument, then pass it to #1.
-% The argument can be delimited with [...] or with "..." or braces
-% or it can be a whole line.
-% #1 should be a macro which expects
-% an ordinary undelimited TeX argument.
-
-\def\parsearg #1{\let\next=#1\begingroup\obeylines\futurelet\temp\parseargx}
+% Parse an argument, then pass it to #1. The argument is the rest of
+% the input line (except we remove a trailing comment). #1 should be a
+% macro which expects an ordinary undelimited TeX argument.
+%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+ \def\next{#2}%
+ \begingroup
+ \obeylines
+ \spaceisspace
+ #1%
+ \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
-\def\parseargx{%
-\ifx \obeyedspace\temp \aftergroup\parseargdiscardspace \else%
-\aftergroup \parseargline %
-\fi \endgroup}
+{\obeylines %
+ \gdef\parseargline#1^^M{%
+ \endgroup % End of the group started in \parsearg.
+ \argremovecomment #1\comment\ArgTerm%
+ }%
+}
-{\obeyspaces %
-\gdef\parseargdiscardspace {\begingroup\obeylines\futurelet\temp\parseargx}}
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-\gdef\obeyedspace{\ }
+% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
+% @end itemize @c foo
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+ \def\temp{#3}%
+ \ifx\temp\empty
+ % We cannot use \next here, as it holds the macro to run;
+ % thus we reuse \temp.
+ \let\temp\finishparsearg
+ \else
+ \let\temp\argcheckspaces
+ \fi
+ % Put the space token in:
+ \temp#1 #3\ArgTerm
+}
-\def\parseargline{\begingroup \obeylines \parsearglinex}
-{\obeylines %
-\gdef\parsearglinex #1^^M{\endgroup \next {#1}}}
+% If a _delimited_ argument is enclosed in braces, they get stripped; so
+% to get _exactly_ the rest of the line, we had to prevent such situation.
+% We prepended an \empty token at the very beginning and we expand it now,
+% just before passing the control to \next.
+% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% either the null string, or it ends with \^^M---thus there is no danger
+% that a pair of braces would be stripped.
+%
+% But first, we have to remove the trailing space token.
+%
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+% \parseargdef\foo{...}
+% is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick. --kasal, 16nov03
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment. Type Return to continue.}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
+\def\parseargdef#1{%
+ \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+ \def#2{\parsearg#1}%
+ \def#1##1%
+}
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Type <Return> to continue}
+% Several utility definitions with active space:
+{
+ \obeyspaces
+ \gdef\obeyedspace{ }
+
+ % Make each space character in the input produce a normal interword
+ % space in the output. Don't allow a line break at this space, as this
+ % is used only in environments like @example, where each line of input
+ % should produce a line of output anyway.
+ %
+ \gdef\sepspaces{\obeyspaces\let =\tie}
+
+ % If an index command is used in an @example environment, any spaces
+ % therein should become regular spaces in the raw index file, not the
+ % expansion of \tie (\leavevmode \penalty \@M \ ).
+ \gdef\unsepspaces{\let =\space}
+}
-\outer\def\begin{\parsearg\beginxxx}
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-%% @end foo executes the definition of \Efoo.
-%% foo can be delimited by doublequotes or brackets.
+% Define the framework for environments in texinfo.tex. It's used like this:
+%
+% \envdef\foo{...}
+% \def\Efoo{...}
+%
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo. \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches. The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+%
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as enviroments; they don't open a group. (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
+
+
+% At runtime, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
+
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+ \def\temp{#1}%
+ \ifx\thisenv\temp
+ \else
+ \badenverr
+ \fi
+}
-\def\end{\parsearg\endxxx}
+% Evironment mismatch, #1 expected:
+\def\badenverr{%
+ \errhelp = \EMsimple
+ \errmessage{This command can appear only \inenvironment\temp,
+ not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+ \ifx#1\empty
+ out of any environment%
+ \else
+ in environment \expandafter\string#1%
+ \fi
+}
-\def\endxxx #1{%
-\expandafter\ifx\csname E#1\endcsname\relax
-\expandafter\ifx\csname #1\endcsname\relax
-\errmessage{Undefined command @end #1}\else
-\errorE{#1}\fi\fi
-\csname E#1\endcsname}
-\def\errorE#1{
-{\errhelp=\EMsimple \errmessage{@end #1 not within #1 environment}}}
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
+%
+\parseargdef\end{%
+ \if 1\csname iscond.#1\endcsname
+ \else
+ % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ \expandafter\checkenv\csname#1\endcsname
+ \csname E#1\endcsname
+ \endgroup
+ \fi
+}
-% Single-spacing is done by various environments.
+\newhelp\EMsimple{Press RETURN to continue.}
-\newskip\singlespaceskip \singlespaceskip = \baselineskip
-\def\singlespace{%
-{\advance \baselineskip by -\singlespaceskip
-\kern \baselineskip}%
-\baselineskip=\singlespaceskip
-}
%% Simple single-character @ commands
% @@ prints an @
% Kludge this until the fonts are right (grr).
-\def\@{{\sf \char '100}}
+\def\@{{\tt\char64}}
-% Define @` and @' to be the same as ` and '
-% but suppressing ligatures.
-\def\`{{`}}
-\def\'{{'}}
+% This is turned off because it was never documented
+% and you can use @w{...} around a quote to suppress ligatures.
+%% Define @` and @' to be the same as ` and '
+%% but suppressing ligatures.
+%\def\`{{`}}
+%\def\'{{'}}
% Used to generate quoted braces.
-
-\def\mylbrace {{\tt \char '173}}
-\def\myrbrace {{\tt \char '175}}
+\def\mylbrace {{\tt\char123}}
+\def\myrbrace {{\tt\char125}}
\let\{=\mylbrace
\let\}=\myrbrace
+\begingroup
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux/toc files.
+ \catcode`\{ = \other \catcode`\} = \other
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \c
+\let\dotaccent = \.
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \t
+\let\ubaraccent = \b
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ptexi
+ \else\ifx\temp\jmacro \j
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence. (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo. Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+ L\kern-.36em
+ {\setbox0=\hbox{T}%
+ \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+ \kern-.15em
+ \TeX
+}
+
+% Be sure we're in horizontal mode when doing a tie, since we make space
+% equivalent to this in @example-like environments. Otherwise, a space
+% at the beginning of a line will start with \penalty -- and
+% since \penalty is valid in vertical mode, we'd end up putting the
+% penalty on the vertical list instead of in the new paragraph.
+{\catcode`@ = 11
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+}
% @: forces normal size whitespace following.
\def\:{\spacefactor=1000 }
% @* forces a line break.
-\def\*{\hfil\break}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
+\def\*{\hfil\break\hbox{}\ignorespaces}
-% @w prevents a word break
-\def\w #1{\hbox{#1}}
+% @/ allows a line break.
+\let\/=\allowbreak
-% @group ... @end group forces ... to be all on one page.
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=\endofsentencespacefactor\space}
-\def\group{\begingroup% \inENV ???
-\def \Egroup{\egroup\endgroup}
-\vbox\bgroup}
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=\endofsentencespacefactor\space}
-% @br forces paragraph break
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=\endofsentencespacefactor\space}
-\let\br = \par
+% @frenchspacing on|off says whether to put extra space after punctuation.
+%
+\def\onword{on}
+\def\offword{off}
+%
+\parseargdef\frenchspacing{%
+ \def\temp{#1}%
+ \ifx\temp\onword \plainfrenchspacing
+ \else\ifx\temp\offword \plainnonfrenchspacing
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \fi\fi
+}
-% @dots{} output some dots
+% @w prevents a word break. Without the \leavevmode, @w at the
+% beginning of a paragraph, when TeX is still in vertical mode, would
+% produce a whole line of output instead of starting the paragraph.
+\def\w#1{\leavevmode\hbox{#1}}
+
+% @group ... @end group forces ... to be all on one page, by enclosing
+% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
+% to keep its height that of a normal line. According to the rules for
+% \topskip (p.114 of the TeXbook), the glue inserted is
+% max (\topskip - \ht (first item), 0). If that height is large,
+% therefore, no glue is inserted, and the space between the headline and
+% the text is small, which looks bad.
+%
+% Another complication is that the group might be very large. This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material. In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom. The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
+\envdef\group{%
+ \ifnum\catcode`\^^M=\active \else
+ \errhelp = \groupinvalidhelp
+ \errmessage{@group invalid in context where filling is enabled}%
+ \fi
+ \startsavinginserts
+ %
+ \setbox\groupbox = \vtop\bgroup
+ % Do @comment since we are called inside an environment such as
+ % @example, where each end-of-line in the input causes an
+ % end-of-line in the output. We don't want the end-of-line after
+ % the `@group' to put extra space in the output. Since @group
+ % should appear on a line by itself (according to the Texinfo
+ % manual), we don't worry about eating any user text.
+ \comment
+}
+%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it. Thus, space below is not quite equal to space
+% above. But it's pretty close.
+\def\Egroup{%
+ % To get correct interline space between the last line of the group
+ % and the first line afterwards, we have to propagate \prevdepth.
+ \endgraf % Not \par, as it may have been set to \lisppar.
+ \global\dimen1 = \prevdepth
+ \egroup % End the \vtop.
+ % \dimen0 is the vertical size of the group's box.
+ \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
+ % \dimen2 is how much space is left on the page (more or less).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \box\groupbox
+ \prevdepth = \dimen1
+ \checkinserts
+}
+%
+% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+% message, so this ends up printing `@group can only ...'.
+%
+\newhelp\groupinvalidhelp{%
+group can only be used in environments such as @example,^^J%
+where each line of input produces a line of output.}
+
+% @need space-in-mils
+% forces a page break if there is not space-in-mils remaining.
+
+\newdimen\mil \mil=0.001in
+
+% Old definition--didn't work.
+%\parseargdef\need{\par %
+%% This method tries to make TeX break the page naturally
+%% if the depth of the box does not fit.
+%{\baselineskip=0pt%
+%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
+%\prevdepth=-1000pt
+%}}
+
+\parseargdef\need{%
+ % Ensure vertical mode, so we don't make a big box in the middle of a
+ % paragraph.
+ \par
+ %
+ % If the @need value is less than one line space, it's useless.
+ \dimen0 = #1\mil
+ \dimen2 = \ht\strutbox
+ \advance\dimen2 by \dp\strutbox
+ \ifdim\dimen0 > \dimen2
+ %
+ % Do a \strut just to make the height of this box be normal, so the
+ % normal leading is inserted relative to the preceding line.
+ % And a page break here is fine.
+ \vtop to #1\mil{\strut\vfil}%
+ %
+ % TeX does not even consider page breaks if a penalty added to the
+ % main vertical list is 10000 or more. But in order to see if the
+ % empty box we just added fits on the page, we must make it consider
+ % page breaks. On the other hand, we don't want to actually break the
+ % page after the empty box. So we use a penalty of 9999.
+ %
+ % There is an extremely small chance that TeX will actually break the
+ % page at this \penalty, if there are no other feasible breakpoints in
+ % sight. (If the user is using lots of big @group commands, which
+ % almost-but-not-quite fill up a page, TeX will have a hard time doing
+ % good page breaking, for example.) However, I could not construct an
+ % example where a page broke at this \penalty; if it happens in a real
+ % document, then we can reconsider our strategy.
+ \penalty9999
+ %
+ % Back up by the size of the box, whether we did a page break or not.
+ \kern -#1\mil
+ %
+ % Do not allow a page break right after this kern.
+ \nobreak
+ \fi
+}
-\def\dots{$\ldots$}
+% @br forces paragraph break (and is undocumented).
-% @page forces the start of a new page
+\let\br = \par
+% @page forces the start of a new page.
+%
\def\page{\par\vfill\supereject}
% @exdent text....
% outputs text on separate line in roman font, starting at standard page margin
-\def\exdent{\errmessage{@exdent in filled text}}
- % @lisp, etc, define \exdent locally from \internalexdent
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
-{\obeyspaces
-\gdef\internalexdent{\parsearg\exdentzzz}}
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
-\def\exdentzzz #1{{\advance \leftskip by -\lispnarrowing
-\advance \hsize by -\leftskip
-\advance \hsize by -\rightskip
-\leftline{{\rm#1}}}}
+% This defn is used inside nofill environments such as @example.
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+ \leftline{\hskip\leftskip{\rm#1}}}}
+
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph. For more general purposes, use the \margin insertion
+% class. WHICH is `l' or `r'.
+%
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+ \nobreak
+ \kern-\strutdepth
+ \vtop to \strutdepth{%
+ \baselineskip=\strutdepth
+ \vss
+ % if you have multiple lines of stuff to put here, you'll need to
+ % make the vbox yourself of the appropriate size.
+ \ifx#1l%
+ \llap{\ignorespaces #2\hskip\inmarginspacing}%
+ \else
+ \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+ \fi
+ \null
+ }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \def\lefttext{#1}% have both texts
+ \def\righttext{#2}%
+ \else
+ \def\lefttext{#1}% have only one text
+ \def\righttext{#1}%
+ \fi
+ %
+ \ifodd\pageno
+ \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+ \else
+ \def\temp{\inleftmargin\lefttext}%
+ \fi
+ \temp
+}
% @include file insert text of that file as input.
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+ \pushthisfilestack
+ \def\thisfile{#1}%
+ {%
+ \makevalueexpandable
+ \def\temp{\input #1 }%
+ \expandafter
+ }\temp
+ \popthisfilestack
+}
+\def\filenamecatcodes{%
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
+ \catcode`-=\other
+}
-\def\include{\parsearg\includezzz}
-\def\includezzz #1{{\def\thisfile{#1}\input #1
-}}
+\def\pushthisfilestack{%
+ \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+ \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+ \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
-\def\thisfile{}
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+ the stack of filenames is empty.}}
-% @center line outputs that line, centered
+\def\thisfile{}
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
+% @center line
+% outputs that line, centered.
+%
+\parseargdef\center{%
+ \ifhmode
+ \let\next\centerH
+ \else
+ \let\next\centerV
+ \fi
+ \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+ {%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+ }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\par \vskip #1\baselineskip}
+\parseargdef\sp{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
-\def\comment{\parsearg \commentxxx}
-
-\def\commentxxx #1{}
+\def\comment{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
\let\c=\comment
-\long\def\ignore #1\end ignore{}
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
+%
+\parseargdef\paragraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \defaultparindent = 0pt
+ \else
+ \defaultparindent = #1em
+ \fi
+ \fi
+ \parindent = \defaultparindent
+}
-\outer\def\ifset{\parsearg\ifsetxxx}
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\parseargdef\exampleindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \lispnarrowing = 0pt
+ \else
+ \lispnarrowing = #1em
+ \fi
+ \fi
+}
-\def\ifsetxxx #1#2\end ifset{%
-\expandafter\ifx\csname IF#1\endcsname\relax \else #2\fi}
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading. If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\noneword
+ \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+ \else\ifx\temp\insertword
+ \let\suppressfirstparagraphindent = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @firstparagraphindent option `\temp'}%
+ \fi\fi
+}
-\outer\def\ifclear{\parsearg\ifclearxxx}
+% Here is how we actually suppress indentation. Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+ \gdef\indent{%
+ \restorefirstparagraphindent
+ \indent
+ }%
+ \gdef\noindent{%
+ \restorefirstparagraphindent
+ \noindent
+ }%
+ \global\everypar = {%
+ \kern -\parindent
+ \restorefirstparagraphindent
+ }%
+}
-\def\ifclearxxx #1#2\end ifclear{%
-\expandafter\ifx\csname IF#1\endcsname\relax #2\fi}
+\gdef\restorefirstparagraphindent{%
+ \global \let \indent = \ptexindent
+ \global \let \noindent = \ptexnoindent
+ \global \everypar = {}%
+}
-% Some texinfo constructs that are trivial in tex
-\def\iftex{}
-\def\Eiftex{}
-\long\def\ifinfo #1\end ifinfo{}
-\long\def\menu #1\end menu{}
+% @asis just yields its argument. Used with @table, for example.
+%
\def\asis#1{#1}
-\def\node{\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\lastnode=\relax
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}. So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+ \catcode`\_ = \active
+ \gdef\mathunderscore{%
+ \catcode`\_=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+ }
+}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care. Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ $\finishmath
+}
+\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
-\def\donoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\setref{\lastnode}\fi
-\let\lastnode=\relax}
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ }
+}
+
+% @bullet and @minus need the same treatment as @math, just above.
+\def\bullet{$\ptexbullet$}
+\def\minus{$-$}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
+%
+\def\dots{%
+ \leavevmode
+ \hbox to 1.5em{%
+ \hskip 0pt plus 0.25fil
+ .\hfil.\hfil.%
+ \hskip 0pt plus 0.5fil
+ }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+ \dots
+ \spacefactor=\endofsentencespacefactor
+}
-\def\unnumbnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
-\let\lastnode=\relax}
+% @comma{} is so commas can be inserted into text without messing up
+% Texinfo's parsing.
+%
+\let\comma = ,
+% @refill is a no-op.
\let\refill=\relax
-\let\setfilename=\comment
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate (before @setfilename).
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% @setfilename is done at the beginning of every texinfo file.
+% So open here the files we need to have open while reading the input.
+% This makes it possible to make a .fmt file for texinfo.
+\def\setfilename{%
+ \fixbackslash % Turn off hack to swallow `\input texinfo'.
+ \iflinks
+ \tryauxfile
+ % Open the new aux file. TeX will close it automatically at exit.
+ \immediate\openout\auxfile=\jobname.aux
+ \fi % \openindices needs to do some work in any case.
+ \openindices
+ \let\setfilename=\comment % Ignore extra @setfilename cmds.
+ %
+ % If texinfo.cnf is present on the system, read it.
+ % Useful for site-wide @afourpaper, etc.
+ \openin 1 texinfo.cnf
+ \ifeof 1 \else \input texinfo.cnf \fi
+ \closein 1
+ %
+ \comment % Ignore the actual filename.
+}
+
+% Called from \setfilename.
+%
+\def\openindices{%
+ \newindex{cp}%
+ \newcodeindex{fn}%
+ \newcodeindex{vr}%
+ \newcodeindex{tp}%
+ \newcodeindex{ky}%
+ \newcodeindex{pg}%
+}
+
+% @bye.
+\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+
+
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+% can be set). So we test for \relax and 0 as well as \undefined,
+% borrowed from ifpdf.sty.
+\ifx\pdfoutput\undefined
+\else
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \pdftrue
+ \fi
+ \fi
+\fi
+
+% PDF uses PostScript string constants for the names of xref targets,
+% for display in the outlines, and in other places. Thus, we have to
+% double any backslashes. Otherwise, a name like "\node" will be
+% interpreted as a newline (\n), followed by o, d, e. Not good.
+% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
+% (and related messages, the final outcome is that it is up to the TeX
+% user to double the backslashes and otherwise make the string valid, so
+% that's what we do).
+
+% double active backslashes.
+%
+{\catcode`\@=0 \catcode`\\=\active
+ @gdef@activebackslashdouble{%
+ @catcode`@\=@active
+ @let\=@doublebackslash}
+}
+
+% To handle parens, we must adopt a different approach, since parens are
+% not active characters. hyperref.dtx (which has the same problem as
+% us) handles it with this amazing macro to replace tokens. I've
+% tinkered with it a little for texinfo, but it's definitely from there.
+%
+% #1 is the tokens to replace.
+% #2 is the replacement.
+% #3 is the control sequence with the string.
+%
+\def\HyPsdSubst#1#2#3{%
+ \def\HyPsdReplace##1#1##2\END{%
+ ##1%
+ \ifx\\##2\\%
+ \else
+ #2%
+ \HyReturnAfterFi{%
+ \HyPsdReplace##2\END
+ }%
+ \fi
+ }%
+ \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
+}
+\long\def\HyReturnAfterFi#1\fi{\fi#1}
+
+% #1 is a control sequence in which to do the replacements.
+\def\backslashparens#1{%
+ \xdef#1{#1}% redefine it as its expansion; the definition is simply
+ % \lastnode when called from \setref -> \pdfmkdest.
+ \HyPsdSubst{(}{\realbackslash(}{#1}%
+ \HyPsdSubst{)}{\realbackslash)}{#1}%
+}
+
+\ifpdf
+ \input pdfcolor
+ \pdfcatalog{/PageMode /UseOutlines}%
+ \def\dopdfimage#1#2#3{%
+ \def\imagewidth{#2}%
+ \def\imageheight{#3}%
+ % without \immediate, pdftex seg faults when the same image is
+ % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
+ \ifnum\pdftexversion < 14
+ \immediate\pdfimage
+ \else
+ \immediate\pdfximage
+ \fi
+ \ifx\empty\imagewidth\else width \imagewidth \fi
+ \ifx\empty\imageheight\else height \imageheight \fi
+ \ifnum\pdftexversion<13
+ #1.pdf%
+ \else
+ {#1.pdf}%
+ \fi
+ \ifnum\pdftexversion < 14 \else
+ \pdfrefximage \pdflastximage
+ \fi}
+ \def\pdfmkdest#1{{%
+ % We have to set dummies so commands such as @code, and characters
+ % such as \, aren't expanded when present in a section title.
+ \atdummies
+ \activebackslashdouble
+ \def\pdfdestname{#1}%
+ \backslashparens\pdfdestname
+ \pdfdest name{\pdfdestname} xyz%
+ }}%
+ %
+ % used to mark target names; must be expandable.
+ \def\pdfmkpgn#1{#1}%
+ %
+ \let\linkcolor = \Blue % was Cyan, but that seems light?
+ \def\endlink{\Black\pdfendlink}
+ % Adding outlines to PDF; macros for calculating structure of outlines
+ % come from Petr Olsak
+ \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+ \else \csname#1\endcsname \fi}
+ \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+ \advance\tempnum by 1
+ \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+ %
+ % #1 is the section text, which is what will be displayed in the
+ % outline by the pdf viewer. #2 is the pdf expression for the number
+ % of subentries (or empty, for subsubsections). #3 is the node text,
+ % which might be empty if this toc entry had no corresponding node.
+ % #4 is the page number
+ %
+ \def\dopdfoutline#1#2#3#4{%
+ % Generate a link to the node text if that exists; else, use the
+ % page number. We could generate a destination for the section
+ % text in the case where a section has no node, but it doesn't
+ % seem worth the trouble, since most documents are normally structured.
+ \def\pdfoutlinedest{#3}%
+ \ifx\pdfoutlinedest\empty
+ \def\pdfoutlinedest{#4}%
+ \else
+ % Doubled backslashes in the name.
+ {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
+ \backslashparens\pdfoutlinedest}%
+ \fi
+ %
+ % Also double the backslashes in the display string.
+ {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
+ \backslashparens\pdfoutlinetext}%
+ %
+ \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+ }
+ %
+ \def\pdfmakeoutlines{%
+ \begingroup
+ % Thanh's hack / proper braces in bookmarks
+ \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+ \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+ %
+ % Read toc silently, to get counts of subentries for \pdfoutline.
+ \def\numchapentry##1##2##3##4{%
+ \def\thischapnum{##2}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsecentry##1##2##3##4{%
+ \advancenumber{chap\thischapnum}%
+ \def\thissecnum{##2}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsubsecentry##1##2##3##4{%
+ \advancenumber{sec\thissecnum}%
+ \def\thissubsecnum{##2}%
+ }%
+ \def\numsubsubsecentry##1##2##3##4{%
+ \advancenumber{subsec\thissubsecnum}%
+ }%
+ \def\thischapnum{0}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ %
+ % use \def rather than \let here because we redefine \chapentry et
+ % al. a second time, below.
+ \def\appentry{\numchapentry}%
+ \def\appsecentry{\numsecentry}%
+ \def\appsubsecentry{\numsubsecentry}%
+ \def\appsubsubsecentry{\numsubsubsecentry}%
+ \def\unnchapentry{\numchapentry}%
+ \def\unnsecentry{\numsecentry}%
+ \def\unnsubsecentry{\numsubsecentry}%
+ \def\unnsubsubsecentry{\numsubsubsecentry}%
+ \readdatafile{toc}%
+ %
+ % Read toc second time, this time actually producing the outlines.
+ % The `-' means take the \expnumber as the absolute number of
+ % subentries, which we calculated on our first read of the .toc above.
+ %
+ % We use the node names as the destinations.
+ \def\numchapentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+ \def\numsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+ \def\numsubsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+ \def\numsubsubsecentry##1##2##3##4{% count is always zero
+ \dopdfoutline{##1}{}{##3}{##4}}%
+ %
+ % PDF outlines are displayed using system fonts, instead of
+ % document fonts. Therefore we cannot use special characters,
+ % since the encoding is unknown. For example, the eogonek from
+ % Latin 2 (0xea) gets translated to a | character. Info from
+ % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+ %
+ % xx to do this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Right
+ % now, I guess we'll just let the pdf reader have its way.
+ \indexnofonts
+ \setupdatafile
+ \catcode`\\=\active \otherbackslash
+ \input \jobname.toc
+ \endgroup
+ }
+ %
+ \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+ \ifx\PP\D\let\nextsp\relax
+ \else\let\nextsp\skipspaces
+ \ifx\p\space\else\addtokens{\filename}{\PP}%
+ \advance\filenamelength by 1
+ \fi
+ \fi
+ \nextsp}
+ \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \ifnum\pdftexversion < 14
+ \let \startlink \pdfannotlink
+ \else
+ \let \startlink \pdfstartlink
+ \fi
+ % make a live url in pdf output.
+ \def\pdfurl#1{%
+ \begingroup
+ % it seems we really need yet another set of dummies; have not
+ % tried to figure out what each command should do in the context
+ % of @url. for now, just make @/ a no-op, that's the only one
+ % people have actually reported a problem with.
+ %
+ \normalturnoffactive
+ \def\@{@}%
+ \let\/=\empty
+ \makevalueexpandable
+ \leavevmode\Red
+ \startlink attr{/Border [0 0 0]}%
+ user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+ \endgroup}
+ \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+ \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+ \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+ \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+ \def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makelink\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+ \def\makelink{\addtokens{\toksB}%
+ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+ \def\pdflink#1{%
+ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+ \linkcolor #1\endlink}
+ \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\else
+ \let\pdfmkdest = \gobble
+ \let\pdfurl = \gobble
+ \let\endlink = \relax
+ \let\linkcolor = \relax
+ \let\pdfmakeoutlines = \relax
+\fi % \ifx\pdfoutput
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{See Info file \file{\losespace#3{}}, node `\losespace#1{}'}
-\def\losespace #1{#1}
\message{fonts,}
-% Font-change commands.
-
-%% Try out Computer Modern fonts at \magstephalf
-\font\tenrm=cmr10 scaled \magstephalf
-\font\tentt=cmtt10 scaled \magstephalf
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\font\tenbf=cmb10 scaled \magstephalf
-\font\tenit=cmti10 scaled \magstephalf
-\font\tensl=cmsl10 scaled \magstephalf
-\font\tensf=cmss10 scaled \magstephalf
-\def\li{\sf}
-\font\tensc=cmcsc10 scaled \magstephalf
-
-% Fonts for @defun, etc.
-\font\defbf=cmbx10 scaled \magstep1 %was 1314
-\let\deftt=\tentt
-\def\df{\let\tt=\deftt \defbf}
-
-% Font for title
-\font\titlerm = cmbx10 scaled \magstep5
-
-% Fonts for indices
-\font\indit=cmti9 \font\indrm=cmr9
-\def\indbf{\indrm} \def\indsl{\indit}
-\def\indexfonts{\let\it=\indit \let\sl=\indsl \let\bf=\indbf \let\rm=\indrm}
-
-% Fonts for headings
-\font\chaprm=cmbx10 scaled \magstep3
-\font\chapit=cmti10 scaled \magstep3
-\font\chapsl=cmsl10 scaled \magstep3
-\font\chaptt=cmtt10 scaled \magstep3
-\font\chapsf=cmss10 scaled \magstep3
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+%
+\def\setfontstyle#1{%
+ \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+ \csname ten#1\endcsname % change the current font
+}
+
+% Select #1 fonts with the current style.
+%
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
+
+% Texinfo sort of supports the sans serif font style, which plain TeX does not.
+% So we set up a \sf.
+\newfam\sffam
+\def\sf{\fam=\sffam \setfontstyle{sf}}
+\let\li = \sf % Sometimes we call it \li, not \sf.
+
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
+
+% Default leading.
+\newdimen\textleading \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly. There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+\def\setleading#1{%
+ \normalbaselineskip = #1\relax
+ \normallineskip = \lineskipfactor\normalbaselineskip
+ \normalbaselines
+ \setbox\strutbox =\hbox{%
+ \vrule width0pt height\strutheightpercent\baselineskip
+ depth \strutdepthpercent \baselineskip
+ }%
+}
+
+% Set the font macro #1 to the font named #2, adding on the
+% specified font prefix (normally `cm').
+% #3 is the font's design size, #4 is a scale factor
+\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
+
+% Use cm as the default font prefix.
+% To specify the font prefix, you must define \fontprefix
+% before you read in texinfo.tex.
+\ifx\fontprefix\undefined
+\def\fontprefix{cm}
+\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx} %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
+
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\setfont\textrm\rmshape{10}{\mainmagstep}
+\setfont\texttt\ttshape{10}{\mainmagstep}
+\setfont\textbf\bfshape{10}{\mainmagstep}
+\setfont\textit\itshape{10}{\mainmagstep}
+\setfont\textsl\slshape{10}{\mainmagstep}
+\setfont\textsf\sfshape{10}{\mainmagstep}
+\setfont\textsc\scshape{10}{\mainmagstep}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}
+\setfont\deftt\ttshape{10}{\magstep1}
+\setfont\defttsl\ttslshape{10}{\magstep1}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
+\setfont\smallrm\rmshape{9}{1000}
+\setfont\smalltt\ttshape{9}{1000}
+\setfont\smallbf\bfshape{10}{900}
+\setfont\smallit\itshape{9}{1000}
+\setfont\smallsl\slshape{9}{1000}
+\setfont\smallsf\sfshape{9}{1000}
+\setfont\smallsc\scshape{10}{900}
+\setfont\smallttsl\ttslshape{10}{900}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}
+\setfont\smallertt\ttshape{8}{1000}
+\setfont\smallerbf\bfshape{10}{800}
+\setfont\smallerit\itshape{8}{1000}
+\setfont\smallersl\slshape{8}{1000}
+\setfont\smallersf\sfshape{8}{1000}
+\setfont\smallersc\scshape{10}{800}
+\setfont\smallerttsl\ttslshape{10}{800}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}
+\setfont\titleit\itbshape{10}{\magstep4}
+\setfont\titlesl\slbshape{10}{\magstep4}
+\setfont\titlett\ttbshape{12}{\magstep3}
+\setfont\titlettsl\ttslshape{10}{\magstep4}
+\setfont\titlesf\sfbshape{17}{\magstep1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\authorrm{\secrm}
+\def\authortt{\sectt}
+
+% Chapter (and unnumbered) fonts (17.28pt).
+\def\chapnominalsize{17pt}
+\setfont\chaprm\rmbshape{12}{\magstep2}
+\setfont\chapit\itbshape{10}{\magstep3}
+\setfont\chapsl\slbshape{10}{\magstep3}
+\setfont\chaptt\ttbshape{12}{\magstep2}
+\setfont\chapttsl\ttslshape{10}{\magstep3}
+\setfont\chapsf\sfbshape{17}{1000}
\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+
+% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
+\setfont\secrm\rmbshape{12}{\magstep1}
+\setfont\secit\itbshape{10}{\magstep2}
+\setfont\secsl\slbshape{10}{\magstep2}
+\setfont\sectt\ttbshape{12}{\magstep1}
+\setfont\secttsl\ttslshape{10}{\magstep2}
+\setfont\secsf\sfbshape{12}{\magstep1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+
+% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}
+\setfont\ssecit\itbshape{10}{1315}
+\setfont\ssecsl\slbshape{10}{1315}
+\setfont\ssectt\ttbshape{12}{\magstephalf}
+\setfont\ssecttsl\ttslshape{10}{1315}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}
+\font\sseci=cmmi12 scaled \magstephalf
+\font\ssecsy=cmsy10 scaled 1315
+
+% Reduced fonts for @acro in text (10pt).
+\def\reducednominalsize{10pt}
+\setfont\reducedrm\rmshape{10}{1000}
+\setfont\reducedtt\ttshape{10}{1000}
+\setfont\reducedbf\bfshape{10}{1000}
+\setfont\reducedit\itshape{10}{1000}
+\setfont\reducedsl\slshape{10}{1000}
+\setfont\reducedsf\sfshape{10}{1000}
+\setfont\reducedsc\scshape{10}{1000}
+\setfont\reducedttsl\ttslshape{10}{1000}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+
+% In order for the font changes to affect most math symbols and letters,
+% we have to define the \textfont of the standard families. Since
+% texinfo doesn't allow for producing subscripts and superscripts except
+% in the main text, we don't bother to reset \scriptfont and
+% \scriptscriptfont (which would also require loading a lot more fonts).
+%
+\def\resetmathfonts{%
+ \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+ \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+ \textfont\ttfam=\tentt \textfont\sffam=\tensf
+}
+
+% The font-changing commands redefine the meanings of \tenSTYLE, instead
+% of just \STYLE. We do this because \STYLE needs to also set the
+% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+%
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower). These relative commands are used in
+% the LaTeX logo and acronyms.
+%
+% This all needs generalizing, badly.
+%
+\def\textfonts{%
+ \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+ \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+ \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+ \let\tenttsl=\textttsl
+ \def\curfontsize{text}%
+ \def\lsize{reduced}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{\textleading}}
+\def\titlefonts{%
+ \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+ \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+ \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+ \let\tenttsl=\titlettsl
+ \def\curfontsize{title}%
+ \def\lsize{chap}\def\lllsize{subsec}%
+ \resetmathfonts \setleading{25pt}}
+\def\titlefont#1{{\titlefonts\rm #1}}
+\def\chapfonts{%
+ \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+ \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+ \let\tenttsl=\chapttsl
+ \def\curfontsize{chap}%
+ \def\lsize{sec}\def\lllsize{text}%
+ \resetmathfonts \setleading{19pt}}
+\def\secfonts{%
+ \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+ \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+ \let\tenttsl=\secttsl
+ \def\curfontsize{sec}%
+ \def\lsize{subsec}\def\lllsize{reduced}%
+ \resetmathfonts \setleading{16pt}}
+\def\subsecfonts{%
+ \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+ \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+ \let\tenttsl=\ssecttsl
+ \def\curfontsize{ssec}%
+ \def\lsize{text}\def\lllsize{small}%
+ \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+ \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+ \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+ \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+ \let\tenttsl=\reducedttsl
+ \def\curfontsize{reduced}%
+ \def\lsize{small}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallfonts{%
+ \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+ \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+ \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+ \let\tenttsl=\smallttsl
+ \def\curfontsize{small}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+ \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+ \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+ \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+ \let\tenttsl=\smallerttsl
+ \def\curfontsize{smaller}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{9.5pt}}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+% 8.5x11=86 smallbook=72 a4=90 a5=69
+% If we use \scriptfonts (8pt), then we can fit this many characters:
+% 8.5x11=90+ smallbook=80 a4=90+ a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt. So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+% 8.5x11=71 smallbook=60 a4=75 a5=58
+%
+% I wish the USA used A4 paper.
+% --karl, 24jan03.
+
+
+% Set up the default fonts, so we can use them for creating boxes.
+%
+\textfonts \rm
+
+% Define these so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
-\font\secrm=cmbx10 scaled \magstep2
-\font\secit=cmti10 scaled \magstep2
-\font\secsl=cmsl10 scaled \magstep2
-\font\sectt=cmtt10 scaled \magstep2
-\font\secsf=cmss10 scaled \magstep2
-\let\secbf=\secrm
-
-\font\ssecrm=cmbx10 scaled \magstep1
-\font\ssecit=cmti10 scaled \magstep1
-\font\ssecsl=cmsl10 scaled \magstep1
-\font\ssectt=cmtt10 scaled \magstep1
-\font\ssecsf=cmss10 scaled \magstep1
-\let\ssecbf=\ssecrm
-
-\def\textfonts{\let\rm=\tenrm\let\it=\tenit\let\sl=\tensl\let\bf=\tenbf%
-\let\sc=\tensc\let\sf=\tensf}
-\def\chapfonts{\let\rm=\chaprm\let\it=\chapit\let\sl=\chapsl\let\bf=\chapbf\let\tt=\chaptt\let\sf=\chapsf}
-\def\secfonts{\let\rm=\secrm\let\it=\secit\let\sl=\secsl\let\bf=\secbf\let\tt=\sectt\let\sf=\secsf}
-\def\subsecfonts{\let\rm=\ssecrm\let\it=\ssecit\let\sl=\ssecsl\let\bf=\ssecbf\let\tt=\ssectt\let\sf=\ssecsf}
% Count depth in font-changes, for error checks
\newcount\fontdepth \fontdepth=0
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}
+\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
+
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
-\def\i#1{{\sl #1}}
-\let\var=\i
-\let\dfn=\i
-\let\emph=\i
-\let\cite=\i
+% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
+% unless the following character is such as not to need one.
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+ \ptexslash\fi\fi\fi}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+% like \smartslanted except unconditionally uses \ttsl.
+% @var is set to this for defun arguments.
+\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally use \sl. We never want
+% ttsl for book titles, do we?
+\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+
+\let\i=\smartitalic
+\let\slanted=\smartslanted
+\let\var=\smartslanted
+\let\dfn=\smartslanted
+\let\emph=\smartitalic
+
+% @b, explicit bold.
\def\b#1{{\bf #1}}
\let\strong=\b
-\def\t#1{{\tt \rawbackslash \frenchspacing #1}\null}
-\let\ttfont = \t
-\let\kbd=\t
-\let\code=\t
-\def\samp #1{`{\tt \rawbackslash \frenchspacing #1}'\null}
-\def\key #1{{\tt \uppercase{#1}}\null}
+% @sansserif, explicit sans.
+\def\sansserif#1{{\sf #1}}
+
+% We can't just use \exhyphenpenalty, because that only has effect at
+% the end of a paragraph. Restore normal hyphenation at the end of the
+% group within which \nohyphenation is presumably called.
+%
+\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
+\def\restorehyphenation{\hyphenchar\font = `- }
+
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar = `\.
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar = `\;
+%
+\catcode`@=11
+ \def\plainfrenchspacing{%
+ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+ \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ \def\endofsentencespacefactor{1000}% for @. and friends
+ }
+ \def\plainnonfrenchspacing{%
+ \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+ \def\endofsentencespacefactor{3000}% for @. and friends
+ }
+\catcode`@=\other
+\def\endofsentencespacefactor{3000}% default
+
+\def\t#1{%
+ {\tt \rawbackslash \plainfrenchspacing #1}%
+ \null
+}
+\def\samp#1{`\tclose{#1}'\null}
+\setfont\keyrm\rmshape{8}{1000}
+\font\keysy=cmsy9
+\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+ \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+ \vbox{\hrule\kern-0.4pt
+ \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+ \kern-0.4pt\hrule}%
+ \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+% The old definition, with no lozenge:
+%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+% @file, @option are the same as @samp.
\let\file=\samp
+\let\option=\samp
+
+% @code is a modification of @t,
+% which makes spaces the same size as normal in the surrounding text.
+\def\tclose#1{%
+ {%
+ % Change normal interword space to be same as for the current font.
+ \spaceskip = \fontdimen2\font
+ %
+ % Switch to typewriter.
+ \tt
+ %
+ % But `\ ' produces the large typewriter interword space.
+ \def\ {{\spaceskip = 0pt{} }}%
+ %
+ % Turn off hyphenation.
+ \nohyphenation
+ %
+ \rawbackslash
+ \plainfrenchspacing
+ #1%
+ }%
+ \null
+}
+
+% We *must* turn on hyphenation at `-' and `_' in @code.
+% Otherwise, it is too hard to avoid overfull hboxes
+% in the Emacs manual, the Library manual, etc.
+
+% Unfortunately, TeX uses one parameter (\hyphenchar) to control
+% both hyphenation at - and hyphenation within words.
+% We must therefore turn them both off (\tclose does that)
+% and arrange explicitly to hyphenate at a dash.
+% -- rms.
+{
+ \catcode`\-=\active
+ \catcode`\_=\active
+ %
+ \global\def\code{\begingroup
+ \catcode`\-=\active \catcode`\_=\active
+ \ifallowcodebreaks
+ \let-\codedash
+ \let_\codeunder
+ \else
+ \let-\realdash
+ \let_\realunder
+ \fi
+ \codex
+ }
+}
+
+\def\realdash{-}
+\def\codedash{-\discretionary{}{}{}}
+\def\codeunder{%
+ % this is all so @math{@code{var_name}+1} can work. In math mode, _
+ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+ % will therefore expand the active definition of _, which is us
+ % (inside @code that is), therefore an endless loop.
+ \ifusingtt{\ifmmode
+ \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+ \else\normalunderscore \fi
+ \discretionary{}{}{}}%
+ {\_}%
+}
+\def\codex #1{\tclose{#1}\endgroup}
+
+% An additional complication: the above will allow breaks after, e.g.,
+% each of the four underscores in __typeof__. This is undesirable in
+% some manuals, especially if they don't have long identifiers in
+% general. @allowcodebreaks provides a way to control this.
+%
+\newif\ifallowcodebreaks \allowcodebreakstrue
+
+\def\keywordtrue{true}
+\def\keywordfalse{false}
+
+\parseargdef\allowcodebreaks{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\keywordtrue
+ \allowcodebreakstrue
+ \else\ifx\txiarg\keywordfalse
+ \allowcodebreaksfalse
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \fi\fi
+}
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct.'
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\look}}\fi
+\else{\tclose{\kbdfont\look}}\fi}
+
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
+\let\env=\code
+\let\command=\code
+
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself. First (mandatory) arg is the url. Perhaps eventually put in
+% a hypertex \special here.
+%
+\def\uref#1{\douref #1,,,\finish}
+\def\douref#1,#2,#3,#4\finish{\begingroup
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \code{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% @url synonym for @uref, since that's how everyone uses it.
+%
+\let\url=\uref
+
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+%
+%\def\email#1{\angleleft{\tt #1}\angleright}
+\ifpdf
+ \def\email#1{\doemail#1,,\finish}
+ \def\doemail#1,#2,#3\finish{\begingroup
+ \unsepspaces
+ \pdfurl{mailto:#1}%
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+ \endlink
+ \endgroup}
+\else
+ \let\email=\uref
+\fi
-\def\l#1{{\li #1}\null}
+% Check if we are currently using a typewriter font. Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-\def\r#1{{\rm #1}}
-\def\s#1{{\sc #1}}
-\def\ii#1{{\it #1}}
+% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
+% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+%
+\def\dmn#1{\thinspace #1}
+
+\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find. We need it for
+% Polish suppressed-l. --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
+
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}} % roman font
+\def\sc#1{{\smallcaps#1}} % smallcaps font
+\def\ii#1{{\it #1}} % italic font
+
+% @acronym for "FBI", "NATO", and the like.
+% We print this one point size smaller, since it's intended for
+% all-uppercase.
+%
+\def\acronym#1{\doacronym #1,,\finish}
+\def\doacronym#1,#2,#3\finish{%
+ {\selectfonts\lsize #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
-\def\titlefont#1{{\titlerm #1}}
+% @abbr for "Comput. J." and the like.
+% No font change, but don't do end-of-sentence spacing.
+%
+\def\abbr#1{\doabbr #1,,\finish}
+\def\doabbr#1,#2,#3\finish{%
+ {\plainfrenchspacing #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
-\def\titlepage{\begingroup \parindent=0pt \hbox{}%
-\let\oldpage=\page
-\def\page{\oldpage \hbox{}}}
+% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+%
+\def\pounds{{\it\$}}
+
+% @euro{} comes from a separate font, depending on the current style.
+% We use the free feym* fonts from the eurosym package by Henrik
+% Theiling, which support regular, slanted, bold and bold slanted (and
+% "outlined" (blackboard board, sort of) versions, which we don't need).
+% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
+%
+% Although only regular is the truly official Euro symbol, we ignore
+% that. The Euro is designed to be slightly taller than the regular
+% font height.
+%
+% feymr - regular
+% feymo - slanted
+% feybr - bold
+% feybo - bold slanted
+%
+% There is no good (free) typewriter version, to my knowledge.
+% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
+% Hmm.
+%
+% Also doesn't work in math. Do we need to do math with euro symbols?
+% Hope not.
+%
+%
+\def\euro{{\eurofont e}}
+\def\eurofont{%
+ % We set the font at each command, rather than predefining it in
+ % \textfonts and the other font-switching commands, so that
+ % installations which never need the symbol don't have to have the
+ % font installed.
+ %
+ % There is only one designed size (nominal 10pt), so we always scale
+ % that to the current nominal size.
+ %
+ % By the way, simply using "at 1em" works for cmr10 and the like, but
+ % does not work for cmbx10 and other extended/shrunken fonts.
+ %
+ \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
+ %
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+ \else
+ % regular:
+ \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+ \fi
+ \thiseurofont
+}
-\def\Etitlepage{\endgroup\page\HEADINGSon}
+% @registeredsymbol - R in a circle. The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+ $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+ \hfil\crcr\Orb}}%
+ }$%
+}
-% Make altmode in file print out right
+% Laurent Siebenmann reports \Orb undefined with:
+% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
+% so we'll define it if necessary.
+%
+\ifx\Orb\undefined
+\def\Orb{\mathhexbox20D}
+\fi
-\catcode `\^^[=\active \def^^[{$\diamondsuit$}
\message{page headings,}
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+
+% First the title page. Must do @settitle before @titlepage.
+\newif\ifseenauthor
+\newif\iffinishedtitlepage
+
+% Do an implicit @contents or @shortcontents after @end titlepage if the
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+%
+\newif\ifsetcontentsaftertitlepage
+ \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+\newif\ifsetshortcontentsaftertitlepage
+ \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+
+\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
+
+\envdef\titlepage{%
+ % Open one extra group, as we want to close it in the middle of \Etitlepage.
+ \begingroup
+ \parindent=0pt \textfonts
+ % Leave some space at the very top of the page.
+ \vglue\titlepagetopglue
+ % No rule at page bottom unless we print one at the top with @title.
+ \finishedtitlepagetrue
+ %
+ % Most title ``pages'' are actually two pages long, with space
+ % at the top of the second. We don't want the ragged left on the second.
+ \let\oldpage = \page
+ \def\page{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ \let\page = \oldpage
+ \page
+ \null
+ }%
+}
+
+\def\Etitlepage{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ % It is important to do the page break before ending the group,
+ % because the headline and footline are only empty inside the group.
+ % If we use the new definition of \page, we always get a blank page
+ % after the title page, which we certainly don't want.
+ \oldpage
+ \endgroup
+ %
+ % Need this before the \...aftertitlepage checks so that if they are
+ % in effect the toc pages will come out with page numbers.
+ \HEADINGSon
+ %
+ % If they want short, they certainly want long too.
+ \ifsetshortcontentsaftertitlepage
+ \shortcontents
+ \contents
+ \global\let\shortcontents = \relax
+ \global\let\contents = \relax
+ \fi
+ %
+ \ifsetcontentsaftertitlepage
+ \contents
+ \global\let\contents = \relax
+ \global\let\shortcontents = \relax
+ \fi
+}
+
+\def\finishtitlepage{%
+ \vskip4pt \hrule height 2pt width \hsize
+ \vskip\titlepagebottomglue
+ \finishedtitlepagetrue
+}
+
+%%% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ \let\tt=\authortt}
+
+\parseargdef\title{%
+ \checkenv\titlepage
+ \leftline{\titlefonts\rm #1}
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+ \checkenv\titlepage
+ {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+%
+\parseargdef\author{%
+ \def\temp{\quotation}%
+ \ifx\thisenv\temp
+ \def\quotationauthor{#1}% printed in \Equotation.
+ \else
+ \checkenv\titlepage
+ \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+ {\authorfont \leftline{#1}}%
+ \fi
+}
+
+
%%% Set up page headings and footings.
\let\thispage=\folio
-\newtoks \evenheadline % Token sequence for heading line of even pages
-\newtoks \oddheadline % Token sequence for heading line of odd pages
-\newtoks \evenfootline % Token sequence for footing line of even pages
-\newtoks \oddfootline % Token sequence for footing line of odd pages
+\newtoks\evenheadline % headline on even pages
+\newtoks\oddheadline % headline on odd pages
+\newtoks\evenfootline % footline on even pages
+\newtoks\oddfootline % footline on odd pages
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}}
+% Now make TeX use those variables
+\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+ \else \the\evenheadline \fi}}
+\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+ \else \the\evenfootline \fi}\HEADINGShook}
+\let\HEADINGShook=\relax
% Commands to set those variables.
% For example, this is what @headings on does
% @evenfooting @thisfile||
% @oddfooting ||@thisfile
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\everyheadingxxx #1{\everyheadingyyy #1@|@|@|@|\finish}
-\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+ \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+ %
+ % Leave some space for the footline. Hopefully ok to assume
+ % @evenfooting will not be used by itself.
+ \global\advance\pageheight by -\baselineskip
+ \global\advance\vsize by -\baselineskip
+}
+
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish}
-\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
-\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-%
-}% unbind the catcode of @.
-% @headings on turns them on.
-% @headings off turns them off.
-% By default, they are off.
+% @headings double turns headings on for double-sided printing.
+% @headings single turns headings on for single-sided printing.
+% @headings off turns them off.
+% @headings on same as @headings double, retained for compatibility.
+% @headings after turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
+% @headings singleafter turns on single-sided headings after this page.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
\def\headings #1 {\csname HEADINGS#1\endcsname}
-\def\HEADINGSoff{
+\def\HEADINGSoff{%
\global\evenheadline={\hfil} \global\evenfootline={\hfil}
\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
\HEADINGSoff
-% When we turn headings on, set the page number to 1,
-% Put current file name in lower left corner,
-% Put chapter name on inside top of right hand pages, document
+% When we turn headings on, set the page number to 1.
+% For double-sided printing, put current file name in lower left corner,
+% chapter name on inside top of right hand pages, document
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
-\def\HEADINGSon{
-\pagealignmacro
+\def\HEADINGSdouble{%
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+\let\contentsalignmacro = \chappager
+
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingle{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+\def\HEADINGSon{\HEADINGSdouble}
+
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\let\HEADINGSdoubleafter=\HEADINGSafter
+\def\HEADINGSdoublex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+\def\HEADINGSsinglex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
}
% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line... specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\undefined
+\def\today{%
+ \number\day\space
+ \ifcase\month
+ \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+ \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+ \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+ \fi
+ \space\number\year}
+\fi
-\message{tables,}
+% @settitle line... specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
+\def\settitle{\parsearg{\gdef\thistitle}}
-% Tables -- @table, @ftable, @item(x), @kitem(x), @xitem(x).
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
% default indentation of table text
\newdimen\tableindent \tableindent=.8in
% used internally for \itemindent minus \itemmargin
\newdimen\itemmax
-% Note @table and @ftable define @item, @itemx, etc., with these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% these defs.
+% They also define \itemindex
+% to index the item name in whatever manner is desired (perhaps none).
+
+\newif\ifitemxneedsnegativevskip
+
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
+
+\def\internalBitem{\smallbreak \parsearg\itemzzz}
+\def\internalBitemx{\itemxpar \parsearg\itemzzz}
+
+\def\itemzzz #1{\begingroup %
+ \advance\hsize by -\rightskip
+ \advance\hsize by -\tableindent
+ \setbox0=\hbox{\itemindicate{#1}}%
+ \itemindex{#1}%
+ \nobreak % This prevents a break before @itemx.
+ %
+ % If the item text does not fit in the space we have, put it on a line
+ % by itself, and do not allow a page break either before or after that
+ % line. We do not start a paragraph here because then if the next
+ % command is, e.g., @kindex, the whatsit would get put into the
+ % horizontal list on a line by itself, resulting in extra blank space.
+ \ifdim \wd0>\itemmax
+ %
+ % Make this a paragraph so we get the \parskip glue and wrapping,
+ % but leave it ragged-right.
+ \begingroup
+ \advance\leftskip by-\tableindent
+ \advance\hsize by\tableindent
+ \advance\rightskip by0pt plus1fil
+ \leavevmode\unhbox0\par
+ \endgroup
+ %
+ % We're going to be starting a paragraph, but we don't want the
+ % \parskip glue -- logically it's part of the @item we just started.
+ \nobreak \vskip-\parskip
+ %
+ % Stop a page break at the \parskip glue coming up. However, if
+ % what follows is an environment such as @example, there will be no
+ % \parskip glue; then the negative vskip we just inserted would
+ % cause the example and the item to crash together. So we use this
+ % bizarre value of 10001 as a signal to \aboveenvbreak to insert
+ % \parskip glue after all. Section titles are handled this way also.
+ %
+ \penalty 10001
+ \endgroup
+ \itemxneedsnegativevskipfalse
+ \else
+ % The item text fits into the space. Start a paragraph, so that the
+ % following text (if any) will end up on the same line.
+ \noindent
+ % Do this with kerns and \unhbox so that if there is a footnote in
+ % the item text, it can migrate to the main vertical list and
+ % eventually be printed.
+ \nobreak\kern-\tableindent
+ \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+ \unhbox0
+ \nobreak\kern\dimen0
+ \endgroup
+ \itemxneedsnegativevskiptrue
+ \fi
+}
+
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
+
+% @table, @ftable, @vtable.
+\envdef\table{%
+ \let\itemindex\gobble
+ \tablecheck{table}%
+}
+\envdef\ftable{%
+ \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+ \tablecheck{ftable}%
+}
+\envdef\vtable{%
+ \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+ \tablecheck{vtable}%
+}
+\def\tablecheck#1{%
+ \ifnum \the\catcode`\^^M=\active
+ \endgroup
+ \errmessage{This command won't work in this context; perhaps the problem is
+ that we are \inenvironment\thisenv}%
+ \def\next{\doignore{#1}}%
+ \else
+ \let\next\tablex
+ \fi
+ \next
+}
+\def\tablex#1{%
+ \def\itemindicate{#1}%
+ \parsearg\tabley
+}
+\def\tabley#1{%
+ {%
+ \makevalueexpandable
+ \edef\temp{\noexpand\tablez #1\space\space\space}%
+ \expandafter
+ }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+ \aboveenvbreak
+ \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+ \ifnum 0#2>0 \tableindent=#2\mil \fi
+ \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+ \itemmax=\tableindent
+ \advance \itemmax by -\itemmargin
+ \advance \leftskip by \tableindent
+ \exdentamount=\tableindent
+ \parindent = 0pt
+ \parskip = \smallskipamount
+ \ifdim \parskip=0pt \parskip=2pt \fi
+ \let\item = \internalBitem
+ \let\itemx = \internalBitemx
+}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
+
+% This is the counter used by @enumerate, which is really @itemize
+
+\newcount \itemno
+
+\envdef\itemize{\parsearg\doitemize}
+
+\def\doitemize#1{%
+ \aboveenvbreak
+ \itemmax=\itemindent
+ \advance\itemmax by -\itemmargin
+ \advance\leftskip by \itemindent
+ \exdentamount=\itemindent
+ \parindent=0pt
+ \parskip=\smallskipamount
+ \ifdim\parskip=0pt \parskip=2pt \fi
+ \def\itemcontents{#1}%
+ % @itemize with no arg is equivalent to @itemize @bullet.
+ \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+ \let\item=\itemizeitem
+}
+
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+ \advance\itemno by 1 % for enumerations
+ {\let\par=\endgraf \smallbreak}% reasonable place to break
+ {%
+ % If the document has an @itemize directly after a section title, a
+ % \nobreak will be last on the list, and \sectionheading will have
+ % done a \vskip-\parskip. In that case, we don't want to zero
+ % parskip, or the item text will crash with the heading. On the
+ % other hand, when there is normal text preceding the item (as there
+ % usually is), we do want to zero parskip, or there would be too much
+ % space. In that case, we won't have a \nobreak before. At least
+ % that's the theory.
+ \ifnum\lastpenalty<10000 \parskip=0in \fi
+ \noindent
+ \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+ \vadjust{\penalty 1200}}% not good to break after first line of item.
+ \flushcr
+}
+
+% \splitoff TOKENS\endmark defines \first to be the first token in
+% TOKENS, and \rest to be the remainder.
+%
+\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
+
+% Allow an optional argument of an uppercase letter, lowercase letter,
+% or number, to specify the first label in the enumerated list. No
+% argument is the same as `1'.
+%
+\envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
+\def\enumeratey #1 #2\endenumeratey{%
+ % If we were given no argument, pretend we were given `1'.
+ \def\thearg{#1}%
+ \ifx\thearg\empty \def\thearg{1}\fi
+ %
+ % Detect if the argument is a single token. If so, it might be a
+ % letter. Otherwise, the only valid thing it can be is a number.
+ % (We will always have one token, because of the test we just made.
+ % This is a good thing, since \splitoff doesn't work given nothing at
+ % all -- the first parameter is undelimited.)
+ \expandafter\splitoff\thearg\endmark
+ \ifx\rest\empty
+ % Only one token in the argument. It could still be anything.
+ % A ``lowercase letter'' is one whose \lccode is nonzero.
+ % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+ % not equal to itself.
+ % Otherwise, we assume it's a number.
+ %
+ % We need the \relax at the end of the \ifnum lines to stop TeX from
+ % continuing to look for a <number>.
+ %
+ \ifnum\lccode\expandafter`\thearg=0\relax
+ \numericenumerate % a number (we hope)
+ \else
+ % It's a letter.
+ \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+ \lowercaseenumerate % lowercase letter
+ \else
+ \uppercaseenumerate % uppercase letter
+ \fi
+ \fi
+ \else
+ % Multiple tokens in the argument. We hope it's a number.
+ \numericenumerate
+ \fi
+}
+
+% An @enumerate whose labels are integers. The starting integer is
+% given in \thearg.
+%
+\def\numericenumerate{%
+ \itemno = \thearg
+ \startenumeration{\the\itemno}%
+}
+
+% The starting (lowercase) letter is in \thearg.
+\def\lowercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more lowercase letters in @enumerate; get a bigger
+ alphabet}%
+ \fi
+ \char\lccode\itemno
+ }%
+}
+
+% The starting (uppercase) letter is in \thearg.
+\def\uppercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more uppercase letters in @enumerate; get a bigger
+ alphabet}
+ \fi
+ \char\uccode\itemno
+ }%
+}
+
+% Call \doitemize, adding a period to the first argument and supplying the
+% common last two arguments. Also subtract one from the initial value in
+% \itemno, since @item increments \itemno.
+%
+\def\startenumeration#1{%
+ \advance\itemno by -1
+ \doitemize{#1.}\flushcr
+}
+
+% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+% to @enumerate.
+%
+\def\alphaenumerate{\enumerate{a}}
+\def\capsenumerate{\enumerate{A}}
+\def\Ealphaenumerate{\Eenumerate}
+\def\Ecapsenumerate{\Eenumerate}
+
+
+% @multitable macros
+% Amy Hendrickson, 8/18/94, 3/6/96
+%
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble. Width
+% can be specified either with sample text given in a template line,
+% or in percent of \hsize, the current width of text on page.
+
+% Table can continue over pages but will only break between lines.
+
+% To make preamble:
+%
+% Either define widths of columns in terms of percent of \hsize:
+% @multitable @columnfractions .25 .3 .45
+% @item ...
+%
+% Numbers following @columnfractions are the percent of the total
+% current hsize to be used for each column. You may use as many
+% columns as desired.
+
+
+% Or use a template:
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item ...
+% using the widest term desired in each column.
+
+% Each new table line starts with @item, each subsequent new column
+% starts with @tab. Empty columns may be produced by supplying @tab's
+% with nothing between them for as many times as empty columns are needed,
+% ie, @tab@tab@tab will produce two empty columns.
+
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
+
+% Sample multitable:
+
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item first col stuff @tab second col stuff @tab third col
+% @item
+% first col stuff
+% @tab
+% second col stuff
+% @tab
+% third col
+% @item first col stuff @tab second col stuff
+% @tab Many paragraphs of text may be used in any column.
+%
+% They will wrap at the width determined by the template.
+% @item@tab@tab This will be in third column.
+% @end multitable
+
+% Default dimensions may be reset by user.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+% to baseline.
+% 0pt means it depends on current normal line spacing.
+%
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
+
+% Macros used to set up halign preamble:
+%
+\let\endsetuptable\relax
+\def\xendsetuptable{\endsetuptable}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
+\newif\ifsetpercent
+
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1. We just use it, whatever it is.
+%
+\def\pickupwholefraction#1 {%
+ \global\advance\colcount by 1
+ \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+ \setuptable
+}
+
+\newcount\colcount
+\def\setuptable#1{%
+ \def\firstarg{#1}%
+ \ifx\firstarg\xendsetuptable
+ \let\go = \relax
+ \else
+ \ifx\firstarg\xcolumnfractions
+ \global\setpercenttrue
+ \else
+ \ifsetpercent
+ \let\go\pickupwholefraction
+ \else
+ \global\advance\colcount by 1
+ \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+ % separator; typically that is always in the input, anyway.
+ \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+ \fi
+ \fi
+ \ifx\go\pickupwholefraction
+ % Put the argument back for the \pickupwholefraction call, so
+ % we'll always have a period there to be parsed.
+ \def\go{\pickupwholefraction#1}%
+ \else
+ \let\go = \setuptable
+ \fi%
+ \fi
+ \go
+}
+
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry. Note that \everycr resets \everytab.
+\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+%
+% A \tab used to include \hskip1sp. But then the space in a template
+% line is not enough. That is bad. So let's go back to just `&' until
+% we encounter the problem it was intended to solve again.
+% --karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
+% @multitable ... @end multitable definitions:
+%
+\newtoks\everytab % insert after every tab.
+%
+\envdef\multitable{%
+ \vskip\parskip
+ \startsavinginserts
+ %
+ % @item within a multitable starts a normal row.
+ % We use \def instead of \let so that if one of the multitable entries
+ % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+ % \endtemplate) expanding \doitemize.
+ \def\item{\crcr}%
+ %
+ \tolerance=9500
+ \hbadness=9500
+ \setmultitablespacing
+ \parskip=\multitableparskip
+ \parindent=\multitableparindent
+ \overfullrule=0pt
+ \global\colcount=0
+ %
+ \everycr = {%
+ \noalign{%
+ \global\everytab={}%
+ \global\colcount=0 % Reset the column counter.
+ % Check for saved footnotes, etc.
+ \checkinserts
+ % Keeps underfull box messages off when table breaks over pages.
+ %\filbreak
+ % Maybe so, but it also creates really weird page breaks when the
+ % table breaks over pages. Wouldn't \vfil be better? Wait until the
+ % problem manifests itself, so it can be fixed for real --karl.
+ }%
+ }%
+ %
+ \parsearg\domultitable
+}
+\def\domultitable#1{%
+ % To parse everything between @multitable and @item:
+ \setuptable#1 \endsetuptable
+ %
+ % This preamble sets up a generic column definition, which will
+ % be used as many times as user calls for columns.
+ % \vtop will set a single line and will also let text wrap and
+ % continue for many paragraphs if desired.
+ \halign\bgroup &%
+ \global\advance\colcount by 1
+ \multistrut
+ \vtop{%
+ % Use the current \colcount to find the correct column width:
+ \hsize=\expandafter\csname col\the\colcount\endcsname
+ %
+ % In order to keep entries from bumping into each other
+ % we will add a \leftskip of \multitablecolspace to all columns after
+ % the first one.
+ %
+ % If a template has been used, we will add \multitablecolspace
+ % to the width of each template entry.
+ %
+ % If the user has set preamble in terms of percent of \hsize we will
+ % use that dimension as the width of the column, and the \leftskip
+ % will keep entries from bumping into each other. Table will start at
+ % left margin and final column will justify at right margin.
+ %
+ % Make sure we don't inherit \rightskip from the outer environment.
+ \rightskip=0pt
+ \ifnum\colcount=1
+ % The first column will be indented with the surrounding text.
+ \advance\hsize by\leftskip
+ \else
+ \ifsetpercent \else
+ % If user has not set preamble in terms of percent of \hsize
+ % we will advance \hsize by \multitablecolspace.
+ \advance\hsize by \multitablecolspace
+ \fi
+ % In either case we will make \leftskip=\multitablecolspace:
+ \leftskip=\multitablecolspace
+ \fi
+ % Ignoring space at the beginning and end avoids an occasional spurious
+ % blank line, when TeX decides to break the line at the space before the
+ % box from the multistrut, so the strut ends up on a line by itself.
+ % For example:
+ % @multitable @columnfractions .11 .89
+ % @item @code{#}
+ % @tab Legal holiday which is valid in major parts of the whole country.
+ % Is automatically provided with highlighting sequences respectively
+ % marking characters.
+ \noindent\ignorespaces##\unskip\multistrut
+ }\cr
+}
+\def\Emultitable{%
+ \crcr
+ \egroup % end the \halign
+ \global\setpercentfalse
+}
+
+\def\setmultitablespacing{%
+ \def\multistrut{\strut}% just use the standard line spacing
+ %
+ % Compute \multitablelinespace (if not defined by user) for use in
+ % \multitableparskip calculation. We used define \multistrut based on
+ % this, but (ironically) that caused the spacing to be off.
+ % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+\ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
+\fi
+%% Test to see if parskip is larger than space between lines of
+%% table. If not, do nothing.
+%% If so, set to same dimension as multitablelinespace.
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+ %% than skip between lines in the table.
+\fi}
+
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\par \parsearg\itemzzz}
+\message{conditionals,}
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \par \parsearg\xitemzzz}
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed. They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested. But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+ \expandafter\let\csname #1\endcsname = \relax
+ \expandafter\let\csname iscond.#1\endcsname = 1
+}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
+
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
+%
+\def\direntry{\doignore{direntry}}
+\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
+\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
+\def\menu{\doignore{menu}}
+\def\xml{\doignore{xml}}
+
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
+%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
+\def\doignore#1{\begingroup
+ % Scan in ``verbatim'' mode:
+ \obeylines
+ \catcode`\@ = \other
+ \catcode`\{ = \other
+ \catcode`\} = \other
+ %
+ % Make sure that spaces turn into tokens that match what \doignoretext wants.
+ \spaceisspace
+ %
+ % Count number of #1's that we've seen.
+ \doignorecount = 0
+ %
+ % Swallow text until we reach the matching `@end #1'.
+ \dodoignore{#1}%
+}
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\par \parsearg\kitemzzz}
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+ \obeylines %
+ %
+ \gdef\dodoignore#1{%
+ % #1 contains the command name as a string, e.g., `ifinfo'.
+ %
+ % Define a command to find the next `@end #1'.
+ \long\def\doignoretext##1^^M@end #1{%
+ \doignoretextyyy##1^^M@#1\_STOP_}%
+ %
+ % And this command to find another #1 command, at the beginning of a
+ % line. (Otherwise, we would consider a line `@c @ifset', for
+ % example, to count as an @ifset for nesting.)
+ \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
+ %
+ % And now expand that command.
+ \doignoretext ^^M%
+ }%
+}
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}\itemzzz {#1}}
+\def\doignoreyyy#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty % Nothing found.
+ \let\next\doignoretextzzz
+ \else % Found a nested condition, ...
+ \advance\doignorecount by 1
+ \let\next\doignoretextyyy % ..., look for another.
+ % If we're here, #1 ends with ^^M\ifinfo (for example).
+ \fi
+ \next #1% the token \_STOP_ is present just after this macro.
+}
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}\itemzzz {#1}}
+% We have to swallow the remaining "\_STOP_".
+%
+\def\doignoretextzzz#1{%
+ \ifnum\doignorecount = 0 % We have just found the outermost @end.
+ \let\next\enddoignore
+ \else % Still inside a nested condition.
+ \advance\doignorecount by -1
+ \let\next\doignoretext % Look for the next @end.
+ \fi
+ \next
+}
-\def\itemzzz #1{\begingroup %
-\advance \hsize by -\rightskip %
-\advance \hsize by -\leftskip %
-\setbox0=\hbox{\itemfont{#1}}%
-\itemindex{#1}%
-\parskip=0in %
-\noindent %
-\ifdim \wd0>\itemmax %
-\vadjust{\penalty 10000}%
-\hbox to \hsize{\hskip -\tableindent\box0\hss}\ %
-\else %
-\hbox to 0pt{\hskip -\tableindent\box0\hss}%
-\fi %
-\endgroup %
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-%% Contains a kludge to get @end[description] to work
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Neccessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\endgroup\afterenvbreak}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
+% Finish off ignored text.
+{ \obeylines%
+ % Ignore anything after the last `@end #1'; this matters in verbatim
+ % environments, where otherwise the newline after an ignored conditional
+ % would result in a blank line in the output.
+ \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
}
-% This is the counter used by @enumerate, which is really @itemize
-\newcount \itemno
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
+%
+\parseargdef\set{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+ {%
+ \makevalueexpandable
+ \def\temp{#2}%
+ \edef\next{\gdef\makecsname{SET#1}}%
+ \ifx\temp\empty
+ \next{}%
+ \else
+ \setzzz#2\endsetzzz
+ \fi
+ }%
+}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
-\def\itemize{\parsearg\itemizezzz}
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+ {%
+ \makevalueexpandable
+ \global\expandafter\let\csname SET#1\endcsname=\relax
+ }%
+}
-\def\itemizezzz #1{\itemizey {#1}{\Eitemize}}
+% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+{
+ \catcode`\- = \active \catcode`\_ = \active
+ %
+ \gdef\makevalueexpandable{%
+ \let\value = \expandablevalue
+ % We don't want these characters active, ...
+ \catcode`\-=\other \catcode`\_=\other
+ % ..., but we might end up with active ones in the argument if
+ % we're called from @code, as @code{@value{foo-bar_}}, though.
+ % So \let them to their normal equivalents.
+ \let-\realdash \let_\normalunderscore
+ }
+}
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\begingroup %
-\itemno = 0 %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\endgroup\afterenvbreak}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file. This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+ \expandafter\ifx\csname SET#1\endcsname\relax
+ {[No value for ``#1'']}%
+ \message{Variable `#1', used in @value, is not set.}%
+ \else
+ \csname SET#1\endcsname
+ \fi
+}
-\def\bullet{$\ptexbullet$}
-\def\minus{$-$}
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+ {%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname SET#2\endcsname\relax
+ #1% If not set, redefine \next.
+ \fi
+ \expandafter
+ }\next
+}
+\def\ifsetfail{\doignore{ifset}}
-\def\enumerate{\itemizey{\the\itemno.}\Eenumerate\flushcr}
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
+%
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
-% Definition of @item while inside @itemize.
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory=\comment
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{\in hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 300}}%
-\flushcr}
\message{indexing,}
% Index generation facilities
% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
+% except not \outer, so it can be used within macros and \if's.
+\edef\newwrite{\makecsname{ptexnewwrite}}
% \newindex {foo} defines an index named foo.
% It automatically defines \fooindex such that
% \fooindex ...rest of line... puts an entry in the index foo.
% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
+% the file that accumulates this index. The file's extension is foo.
% The name of an index should be no more than 2 characters long
% for the sake of vms.
-
-\def\newindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#1}}
+%
+\def\newindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
+ \noexpand\doindex{#1}}
}
% @defindex foo == \newindex{foo}
-
+%
\def\defindex{\parsearg\newindex}
% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#1}}
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
+\def\newcodeindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{%
+ \noexpand\docodeindex{#1}}%
}
-\def\defcodeindex{\parsearg\newcodeindex}
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
-\def\synindex #1 #2 {%
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#2}}%
-}
-
+%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
-\def\syncodeindex #1 #2 {%
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#2}}%
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+ % Only do \closeout if we haven't already done it, else we'll end up
+ % closing the target index.
+ \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+ % The \closeout helps reduce unnecessary open files; the limit on the
+ % Acorn RISC OS is a mere 16 files.
+ \expandafter\closeout\csname#2indfile\endcsname
+ \expandafter\let\csname\donesynindex#2\endcsname = 1
+ \fi
+ % redefine \fooindfile:
+ \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+ \expandafter\let\csname#2indfile\endcsname=\temp
+ % redefine \fooindex:
+ \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
}
% Define \doindex, the driver for all \fooindex macros.
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
\def\indexdummies{%
-\def\bf{\realbackslash bf }%
-\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\dots{\realbackslash dots }%
-\def\copyright{\realbackslash copyright }%
+ \escapechar = `\\ % use backslash in output files.
+ \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+ \def\ {\realbackslash\space }%
+ % Need these in case \tex is in effect and \{ is a \delimiter again.
+ % But can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters.
+ \let\{ = \mylbrace
+ \let\} = \myrbrace
+ %
+ % Do the redefinitions.
+ \commondummies
}
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexnofonts{%
-\let\code=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
+% For the aux and toc files, @ is the escape character. So we want to
+% redefine everything using @ as the escape character (instead of
+% \realbackslash, still used for index files). When everything uses @,
+% this will be simpler.
+%
+\def\atdummies{%
+ \def\@{@@}%
+ \def\ {@ }%
+ \let\{ = \lbraceatcmd
+ \let\} = \rbraceatcmd
+ %
+ % Do the redefinitions.
+ \commondummies
+ \otherbackslash
+}
+
+% Called from \indexdummies and \atdummies.
+%
+\def\commondummies{%
+ %
+ % \definedummyword defines \#1 as \string\#1\space, thus effectively
+ % preventing its expansion. This is used only for control% words,
+ % not control letters, because the \space would be incorrect for
+ % control characters, but is needed to separate the control word
+ % from whatever follows.
+ %
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword ##1{\def##1{\string##1\space}}%
+ \def\definedummyletter##1{\def##1{\string##1}}%
+ \let\definedummyaccent\definedummyletter
+ %
+ \commondummiesnofonts
+ %
+ \definedummyletter\_%
+ %
+ % Non-English letters.
+ \definedummyword\AA
+ \definedummyword\AE
+ \definedummyword\L
+ \definedummyword\OE
+ \definedummyword\O
+ \definedummyword\aa
+ \definedummyword\ae
+ \definedummyword\l
+ \definedummyword\oe
+ \definedummyword\o
+ \definedummyword\ss
+ \definedummyword\exclamdown
+ \definedummyword\questiondown
+ \definedummyword\ordf
+ \definedummyword\ordm
+ %
+ % Although these internal commands shouldn't show up, sometimes they do.
+ \definedummyword\bf
+ \definedummyword\gtr
+ \definedummyword\hat
+ \definedummyword\less
+ \definedummyword\sf
+ \definedummyword\sl
+ \definedummyword\tclose
+ \definedummyword\tt
+ %
+ \definedummyword\LaTeX
+ \definedummyword\TeX
+ %
+ % Assorted special characters.
+ \definedummyword\bullet
+ \definedummyword\comma
+ \definedummyword\copyright
+ \definedummyword\registeredsymbol
+ \definedummyword\dots
+ \definedummyword\enddots
+ \definedummyword\equiv
+ \definedummyword\error
+ \definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\minus
+ \definedummyword\pounds
+ \definedummyword\point
+ \definedummyword\print
+ \definedummyword\result
+ %
+ % We want to disable all macros so that they are not expanded by \write.
+ \macrolist
+ %
+ \normalturnoffactive
+ %
+ % Handle some cases of @value -- where it does not contain any
+ % (non-fully-expandable) commands.
+ \makevalueexpandable
}
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
+% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+%
+\def\commondummiesnofonts{%
+ % Control letters and accents.
+ \definedummyletter\!%
+ \definedummyaccent\"%
+ \definedummyaccent\'%
+ \definedummyletter\*%
+ \definedummyaccent\,%
+ \definedummyletter\.%
+ \definedummyletter\/%
+ \definedummyletter\:%
+ \definedummyaccent\=%
+ \definedummyletter\?%
+ \definedummyaccent\^%
+ \definedummyaccent\`%
+ \definedummyaccent\~%
+ \definedummyword\u
+ \definedummyword\v
+ \definedummyword\H
+ \definedummyword\dotaccent
+ \definedummyword\ringaccent
+ \definedummyword\tieaccent
+ \definedummyword\ubaraccent
+ \definedummyword\udotaccent
+ \definedummyword\dotless
+ %
+ % Texinfo font commands.
+ \definedummyword\b
+ \definedummyword\i
+ \definedummyword\r
+ \definedummyword\sc
+ \definedummyword\t
+ %
+ % Commands that take arguments.
+ \definedummyword\acronym
+ \definedummyword\cite
+ \definedummyword\code
+ \definedummyword\command
+ \definedummyword\dfn
+ \definedummyword\emph
+ \definedummyword\env
+ \definedummyword\file
+ \definedummyword\kbd
+ \definedummyword\key
+ \definedummyword\math
+ \definedummyword\option
+ \definedummyword\pxref
+ \definedummyword\ref
+ \definedummyword\samp
+ \definedummyword\strong
+ \definedummyword\tie
+ \definedummyword\uref
+ \definedummyword\url
+ \definedummyword\var
+ \definedummyword\verb
+ \definedummyword\w
+ \definedummyword\xref
+}
-{\catcode`\@=0 \catcode`\\=\other
-@gdef@realbackslash{\}}
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names. It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
+\def\indexnofonts{%
+ % Accent commands should become @asis.
+ \def\definedummyaccent##1{\let##1\asis}%
+ % We can just ignore other control letters.
+ \def\definedummyletter##1{\let##1\empty}%
+ % Hopefully, all control words can become @asis.
+ \let\definedummyword\definedummyaccent
+ %
+ \commondummiesnofonts
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
+ \def\ { }%
+ \def\@{@}%
+ % how to handle braces?
+ \def\_{\normalunderscore}%
+ %
+ % Non-English letters.
+ \def\AA{AA}%
+ \def\AE{AE}%
+ \def\L{L}%
+ \def\OE{OE}%
+ \def\O{O}%
+ \def\aa{aa}%
+ \def\ae{ae}%
+ \def\l{l}%
+ \def\oe{oe}%
+ \def\o{o}%
+ \def\ss{ss}%
+ \def\exclamdown{!}%
+ \def\questiondown{?}%
+ \def\ordf{a}%
+ \def\ordm{o}%
+ %
+ \def\LaTeX{LaTeX}%
+ \def\TeX{TeX}%
+ %
+ % Assorted special characters.
+ % (The following {} will end up in the sort string, but that's ok.)
+ \def\bullet{bullet}%
+ \def\comma{,}%
+ \def\copyright{copyright}%
+ \def\registeredsymbol{R}%
+ \def\dots{...}%
+ \def\enddots{...}%
+ \def\equiv{==}%
+ \def\error{error}%
+ \def\euro{euro}%
+ \def\expansion{==>}%
+ \def\minus{-}%
+ \def\pounds{pounds}%
+ \def\point{.}%
+ \def\print{-|}%
+ \def\result{=>}%
+ %
+ % We need to get rid of all macros, leaving only the arguments (if present).
+ % Of course this is not nearly correct, but it is the best we can do for now.
+ % makeinfo does not expand macros in the argument to @deffn, which ends up
+ % writing an index entry, and texindex isn't prepared for an index sort entry
+ % that starts with \.
+ %
+ % Since macro invocations are followed by braces, we can just redefine them
+ % to take a single TeX argument. The case of a macro invocation that
+ % goes to end-of-line is not handled.
+ %
+ \macrolist
+}
\let\indexbackslash=0 %overridden during \printindex.
+\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-\def\doind #1#2{%
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\count10=\lastpenalty %
-\escapechar=`\\%
-{\let\folio=0% Expand all macros now EXCEPT \folio
-\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
-% so it will be output as is; and it will print as backslash in the indx.
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}}}%
-\temp }%
-\penalty\count10}}
-
-\def\dosubind #1#2#3{%
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\count10=\lastpenalty %
-\escapechar=`\\%
-{\let\folio=0%
-\def\rawbackslashxx{\indexbackslash}%
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2 #3}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}{#3}}}%
-\temp }%
-\penalty\count10}}
+% Most index entries go through here, but \dosubind is the general case.
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
+
+% Workhorse for all \fooindexes.
+% #1 is name of index, #2 is stuff to put there, #3 is subentry --
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
+%
+\def\dosubind#1#2#3{%
+ \iflinks
+ {%
+ % Store the main index entry text (including the third arg).
+ \toks0 = {#2}%
+ % If third arg is present, precede it with a space.
+ \def\thirdarg{#3}%
+ \ifx\thirdarg\empty \else
+ \toks0 = \expandafter{\the\toks0 \space #3}%
+ \fi
+ %
+ \edef\writeto{\csname#1indfile\endcsname}%
+ %
+ \ifvmode
+ \dosubindsanitize
+ \else
+ \dosubindwrite
+ \fi
+ }%
+ \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
+ % Put the index entry in the margin if desired.
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+ \fi
+ %
+ % Remember, we are within a group.
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
+ % Set up the complete index entry, with both the sort key and
+ % the original text, including any font commands. We write
+ % three arguments to \entry to the .?? file (four in the
+ % subentry case), texindex reduces to two when writing the .??s
+ % sorted result.
+ \edef\temp{%
+ \write\writeto{%
+ \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+ }%
+ \temp
+}
+
+% Take care of unwanted page breaks:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again. Otherwise, the whatsit generated by the
+% \write will make \lastskip zero. The result is that sequences
+% like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode. We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip. \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip. The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+% ..., ready, GO:
+%
+\def\dosubindsanitize{%
+ % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+ \skip0 = \lastskip
+ \edef\lastskipmacro{\the\lastskip}%
+ \count255 = \lastpenalty
+ %
+ % If \lastskip is nonzero, that means the last item was a
+ % skip. And since a skip is discardable, that means this
+ % -\skip0 glue we're inserting is preceded by a
+ % non-discardable item, therefore it is not a potential
+ % breakpoint, therefore no \nobreak needed.
+ \ifx\lastskipmacro\zeroskipmacro
+ \else
+ \vskip-\skip0
+ \fi
+ %
+ \dosubindwrite
+ %
+ \ifx\lastskipmacro\zeroskipmacro
+ % If \lastskip was zero, perhaps the last item was a penalty, and
+ % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
+ % to re-insert the same penalty (values >10000 are used for various
+ % signals); since we just inserted a non-discardable item, any
+ % following glue (such as a \parskip) would be a breakpoint. For example:
+ %
+ % @deffn deffn-whatever
+ % @vindex index-whatever
+ % Description.
+ % would allow a break between the index-whatever whatsit
+ % and the "Description." paragraph.
+ \ifnum\count255>9999 \penalty\count255 \fi
+ \else
+ % On the other hand, if we had a nonzero \lastskip,
+ % this make-up glue would be preceded by a non-discardable item
+ % (the whatsit from the \write), so we must insert a \nobreak.
+ \nobreak\vskip\skip0
+ \fi
+}
% The index entry written in the file actually looks like
% \entry {sortstring}{page}{topic}
% \secondary {subtopic}{pagelist}
% for each subtopic.
-% Define the user-accessible indexing commands
+% Define the user-accessible indexing commands
% @findex, @vindex, @kindex, @cindex.
\def\findex {\fnindex}
% Define the macros used in formatting output of the sorted index material.
-% This is what you call to cause a particular index to get printed.
-% Write
-% @unnumbered Function Index
-% @printindex fn
-
-\def\printindex{\parsearg\doprintindex}
-
-\def\doprintindex#1{\tex %
-\catcode`\%=\other\catcode`\&=\other\catcode`\#=\other
-\catcode`\$=\other\catcode`\_=\other
-\catcode`\~=\other
-\def\indexbackslash{\rawbackslashxx}
-\indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt
-\begindoublecolumns
-\openin 1 \jobname.#1s
-\ifeof 1 \else \closein 1 \input \jobname.#1s
-\fi
-\enddoublecolumns
-\Etex}
+% @printindex causes a particular index (the ??s file) to get printed.
+% It does not print any chapter heading (usually an @unnumbered).
+%
+\parseargdef\printindex{\begingroup
+ \dobreak \chapheadingskip{10000}%
+ %
+ \smallfonts \rm
+ \tolerance = 9500
+ \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+ %
+ % See if the index file exists and is nonempty.
+ % Change catcode of @ here so that if the index file contains
+ % \initial {@}
+ % as its first line, TeX doesn't complain about mismatched braces
+ % (because it thinks @} is a control sequence).
+ \catcode`\@ = 11
+ \openin 1 \jobname.#1s
+ \ifeof 1
+ % \enddoublecolumns gets confused if there is no text in the index,
+ % and it loses the chapter title and the aux file entries for the
+ % index. The easiest way to prevent this problem is to make sure
+ % there is some text.
+ \putwordIndexNonexistent
+ \else
+ %
+ % If the index file exists but is empty, then \openin leaves \ifeof
+ % false. We have to make TeX try to read something from the file, so
+ % it can discover if there is anything in it.
+ \read 1 to \temp
+ \ifeof 1
+ \putwordIndexIsEmpty
+ \else
+ % Index files are almost Texinfo source, but we use \ as the escape
+ % character. It would be better to use @, but that's too big a change
+ % to make right now.
+ \def\indexbackslash{\backslashcurfont}%
+ \catcode`\\ = 0
+ \escapechar = `\\
+ \begindoublecolumns
+ \input \jobname.#1s
+ \enddoublecolumns
+ \fi
+ \fi
+ \closein 1
+\endgroup}
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
-% Same as \bigskipamount except no shrink.
-% \balancecolumns gets confused if there is any shrink.
-\newskip\initialskipamount \initialskipamount 12pt plus4pt
+\def\initial#1{{%
+ % Some minor font changes for the special characters.
+ \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+ %
+ % Remove any glue we may have, we'll be inserting our own.
+ \removelastskip
+ %
+ % We like breaks before the index initials, so insert a bonus.
+ \nobreak
+ \vskip 0pt plus 3\baselineskip
+ \penalty 0
+ \vskip 0pt plus -3\baselineskip
+ %
+ % Typeset the initial. Making this add up to a whole number of
+ % baselineskips increases the chance of the dots lining up from column
+ % to column. It still won't often be perfect, because of the stretch
+ % we need before each entry, but it's better.
+ %
+ % No shrink because it confuses \balancecolumns.
+ \vskip 1.67\baselineskip plus .5\baselineskip
+ \leftline{\secbf #1}%
+ % Do our best not to break after the initial.
+ \nobreak
+ \vskip .33\baselineskip plus .1\baselineskip
+}}
-\outer\def\initial #1{%
-{\let\tentt=\sectt \let\sf=\sectt
-\ifdim\lastskip<\initialskipamount
-\removelastskip \penalty-200 \vskip \initialskipamount\fi
-\line{\secbf#1\hfill}\kern 2pt\penalty3000}}
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin. It is used for index
+% and table of contents entries. The paragraph is indented by \leftskip.
+%
+% A straightforward implementation would start like this:
+% \def\entry#1#2{...
+% But this frozes the catcodes in the argument, and can cause problems to
+% @code, which sets - active. This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+%
+% The right solution is to prevent \entry from swallowing the whole text.
+% --kasal, 21nov03
+\def\entry{%
+ \begingroup
+ %
+ % Start a new paragraph if necessary, so our assignments below can't
+ % affect previous text.
+ \par
+ %
+ % Do not fill out the last line with white space.
+ \parfillskip = 0in
+ %
+ % No extra space above this paragraph.
+ \parskip = 0in
+ %
+ % Do not prefer a separate line ending with a hyphen to fewer lines.
+ \finalhyphendemerits = 0
+ %
+ % \hangindent is only relevant when the entry text and page number
+ % don't both fit on one line. In that case, bob suggests starting the
+ % dots pretty far over on the line. Unfortunately, a large
+ % indentation looks wrong when the entry text itself is broken across
+ % lines. So we use a small indentation and put up with long leaders.
+ %
+ % \hangafter is reset to 1 (which is the value we want) at the start
+ % of each paragraph, so we need not do anything with that.
+ \hangindent = 2em
+ %
+ % When the entry text needs to be broken, just fill out the first line
+ % with blank space.
+ \rightskip = 0pt plus1fil
+ %
+ % A bit of stretch before each entry for the benefit of balancing
+ % columns.
+ \vskip 0pt plus1pt
+ %
+ % Swallow the left brace of the text (first parameter):
+ \afterassignment\doentry
+ \let\temp =
+}
+\def\doentry{%
+ \bgroup % Instead of the swallowed brace.
+ \noindent
+ \aftergroup\finishentry
+ % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+ % #1 is the page number.
+ %
+ % The following is kludged to not output a line of dots in the index if
+ % there are no page numbers. The next person who breaks this will be
+ % cursed by a Unix daemon.
+ \def\tempa{{\rm }}%
+ \def\tempb{#1}%
+ \edef\tempc{\tempa}%
+ \edef\tempd{\tempb}%
+ \ifx\tempc\tempd
+ \ %
+ \else
+ %
+ % If we must, put the page number on a line of its own, and fill out
+ % this line with blank space. (The \hfil is overwhelmed with the
+ % fill leaders glue in \indexdotfill if the page number does fit.)
+ \hfil\penalty50
+ \null\nobreak\indexdotfill % Have leaders before the page number.
+ %
+ % The `\ ' here is removed by the implicit \unskip that TeX does as
+ % part of (the primitive) \par. Without it, a spurious underfull
+ % \hbox ensues.
+ \ifpdf
+ \pdfgettoks#1.%
+ \ \the\toksA
+ \else
+ \ #1%
+ \fi
+ \fi
+ \par
+ \endgroup
+}
-\outer\def\entry #1#2{
-{\parfillskip=0in \parskip=0in \parindent=0in
-\hangindent=1in \hangafter=1%
-\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll #2\par
-}}
+% Like \dotfill except takes at least 1 em.
+\def\indexdotfill{\cleaders
+ \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
\def\primary #1{\line{#1\hfil}}
\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
+\def\secondary#1#2{{%
+ \parfillskip=0in
+ \parskip=0in
+ \hangindent=1in
+ \hangafter=1
+ \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+ \ifpdf
+ \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ \else
+ #2
+ \fi
+ \par
}}
-%% Define two-column mode, which is used in indexes.
-%% Adapted from the TeXBook, page 416
-\catcode `\@=11
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
\newbox\partialpage
+\newdimen\doublecolumnhsize
+
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+ % Grab any single-column material above us.
+ \output = {%
+ %
+ % Here is a possibility not foreseen in manmac: if we accumulate a
+ % whole lot of material, we might end up calling this \output
+ % routine twice in a row (see the doublecol-lose test, which is
+ % essentially a couple of indexes with @setchapternewpage off). In
+ % that case we just ship out what is in \partialpage with the normal
+ % output routine. Generally, \partialpage will be empty when this
+ % runs and this will be a no-op. See the indexspread.tex test case.
+ \ifvoid\partialpage \else
+ \onepageout{\pagecontents\partialpage}%
+ \fi
+ %
+ \global\setbox\partialpage = \vbox{%
+ % Unvbox the main output page.
+ \unvbox\PAGE
+ \kern-\topskip \kern\baselineskip
+ }%
+ }%
+ \eject % run that output routine to set \partialpage
+ %
+ % Use the double-column output routine for subsequent pages.
+ \output = {\doublecolumnout}%
+ %
+ % Change the page size parameters. We could do this once outside this
+ % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+ % format, but then we repeat the same computation. Repeating a couple
+ % of assignments once per index is clearly meaningless for the
+ % execution time, so we may as well do it in one place.
+ %
+ % First we halve the line length, less a little for the gutter between
+ % the columns. We compute the gutter based on the line length, so it
+ % changes automatically with the paper format. The magic constant
+ % below is chosen so that the gutter has the same value (well, +-<1pt)
+ % as it did when we hard-coded it.
+ %
+ % We put the result in a separate register, \doublecolumhsize, so we
+ % can restore it in \pagesofar, after \hsize itself has (potentially)
+ % been clobbered.
+ %
+ \doublecolumnhsize = \hsize
+ \advance\doublecolumnhsize by -.04154\hsize
+ \divide\doublecolumnhsize by 2
+ \hsize = \doublecolumnhsize
+ %
+ % Double the \vsize as well. (We don't need a separate register here,
+ % since nobody clobbers \vsize.)
+ \vsize = 2\vsize
+}
-\newdimen\doublecolumnhsize \doublecolumnhsize = 3.11in
-\newdimen\doublecolumnvsize \doublecolumnvsize = 19.1in
+% The double-column output routine for all double-column pages except
+% the last.
+%
+\def\doublecolumnout{%
+ \splittopskip=\topskip \splitmaxdepth=\maxdepth
+ % Get the available space for the double columns -- the normal
+ % (undoubled) page height minus any material left over from the
+ % previous page.
+ \dimen@ = \vsize
+ \divide\dimen@ by 2
+ \advance\dimen@ by -\ht\partialpage
+ %
+ % box0 will be the left-hand column, box2 the right.
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255
+ \penalty\outputpenalty
+}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
+\def\pagesofar{%
+ \unvbox\partialpage
+ %
+ \hsize = \doublecolumnhsize
+ \wd0=\hsize \wd2=\hsize
+ \hbox to\pagewidth{\box0\hfil\box2}%
+}
+%
+% All done with double columns.
+\def\enddoublecolumns{%
+ \output = {%
+ % Split the last of the double-column material. Leave it on the
+ % current page, no automatic page break.
+ \balancecolumns
+ %
+ % If we end up splitting too much material for the current page,
+ % though, there will be another page break right after this \output
+ % invocation ends. Having called \balancecolumns once, we do not
+ % want to call it again. Therefore, reset \output to its normal
+ % definition right away. (We hope \balancecolumns will never be
+ % called on to balance too much material, but if it is, this makes
+ % the output somewhat more palatable.)
+ \global\output = {\onepageout{\pagecontents\PAGE}}%
+ }%
+ \eject
+ \endgroup % started in \begindoublecolumns
+ %
+ % \pagegoal was set to the doubled \vsize above, since we restarted
+ % the current page. We're now back to normal single-column
+ % typesetting, so reset \pagegoal to the normal \vsize (after the
+ % \endgroup where \vsize got restored).
+ \pagegoal = \vsize
+}
+%
+% Called at the end of the double column material.
+\def\balancecolumns{%
+ \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+ \dimen@ = \ht0
+ \advance\dimen@ by \topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by 2 % target to split to
+ %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+ \splittopskip = \topskip
+ % Loop until we get a decent breakpoint.
+ {%
+ \vbadness = 10000
+ \loop
+ \global\setbox3 = \copy0
+ \global\setbox1 = \vsplit3 to \dimen@
+ \ifdim\ht3>\dimen@
+ \global\advance\dimen@ by 1pt
+ \repeat
+ }%
+ %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ %
+ \pagesofar
+}
+\catcode`\@ = \other
-\def\begindoublecolumns{\begingroup
- \output={\global\setbox\partialpage=\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}\eject
- \output={\doublecolumnout} \hsize=\doublecolumnhsize \vsize=\doublecolumnvsize}
-\def\enddoublecolumns{\output={\balancecolumns}\eject
- \endgroup \pagegoal=\vsize}
-\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
- \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar \unvbox255 \penalty\outputpenalty}
-\def\pagesofar{\unvbox\partialpage %
- \hsize=\doublecolumnhsize % have to restore this since output routine
-% changes it to set cropmarks (P. A. MacKay, 12 Nov. 1986)
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
-\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
- \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
- \divide\dimen@ by2 \splittopskip=\topskip
- {\vbadness=10000 \loop \global\setbox3=\copy0
- \global\setbox1=\vsplit3 to\dimen@
- \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
- \setbox0=\vbox to\dimen@{\unvbox1} \setbox2=\vbox to\dimen@{\unvbox3}
- \pagesofar}
-
-\catcode `\@=\other
\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount \chapno
-\newcount \secno
-\newcount \subsecno
-\newcount \subsubsecno
+% Chapters, sections, etc.
+
+% \unnumberedno is an oxymoron, of course. But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number". We avoid collisions with chapter
+% numbers by starting them at 10000. (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
+\newcount\chapno
+\newcount\secno \secno=0
+\newcount\subsecno \subsecno=0
+\newcount\subsubsecno \subsubsecno=0
% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount \appendixno \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-\newwrite \contentsfile
-\openout \contentsfile = \jobname.toc
+\newcount\appendixno \appendixno = `\@
+%
+% \def\appendixletter{\char\the\appendixno}
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+%
+\def\appendixletter{%
+ \ifnum\appendixno=`A A%
+ \else\ifnum\appendixno=`B B%
+ \else\ifnum\appendixno=`C C%
+ \else\ifnum\appendixno=`D D%
+ \else\ifnum\appendixno=`E E%
+ \else\ifnum\appendixno=`F F%
+ \else\ifnum\appendixno=`G G%
+ \else\ifnum\appendixno=`H H%
+ \else\ifnum\appendixno=`I I%
+ \else\ifnum\appendixno=`J J%
+ \else\ifnum\appendixno=`K K%
+ \else\ifnum\appendixno=`L L%
+ \else\ifnum\appendixno=`M M%
+ \else\ifnum\appendixno=`N N%
+ \else\ifnum\appendixno=`O O%
+ \else\ifnum\appendixno=`P P%
+ \else\ifnum\appendixno=`Q Q%
+ \else\ifnum\appendixno=`R R%
+ \else\ifnum\appendixno=`S S%
+ \else\ifnum\appendixno=`T T%
+ \else\ifnum\appendixno=`U U%
+ \else\ifnum\appendixno=`V V%
+ \else\ifnum\appendixno=`W W%
+ \else\ifnum\appendixno=`X X%
+ \else\ifnum\appendixno=`Y Y%
+ \else\ifnum\appendixno=`Z Z%
+ % The \the is necessary, despite appearances, because \appendixletter is
+ % expanded while writing the .toc file. \char\appendixno is not
+ % expandable, thus it is written literally, thus all appendixes come out
+ % with the same letter (or @) in the toc without it.
+ \else\char\the\appendixno
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise
-
-\def\thischapter{} \def\thissection{}
-\def\seccheck#1{\if \pageno<0 %
-\errmessage{@#1 not allowed after generating table of contents}\fi
-%
-}
-
-\outer\def\chapter{\parsearg\chapterzzz}
-\def\chapterzzz #1{\seccheck{chapter}%
-\secno=0 \subsecno=0 \subsubsecno=0 \global\advance \chapno by 1 \message{Chapter \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}\gdef\thischapter{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-}
-
-\outer\def\appendix{\parsearg\appendixzzz}
-\def\appendixzzz #1{\seccheck{appendix}%
-\secno=0 \subsecno=0 \subsubsecno=0 \global\advance \appendixno by 1 \message{Appendix \appendixletter}%
-\chapmacro {#1}{Appendix \appendixletter}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash chapentry {#1}{Appendix \appendixletter}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-}
-
-\outer\def\unnumbered{\parsearg\unnumberedzzz}
-\def\unnumberedzzz #1{\seccheck{unnumbered}%
-\secno=0 \subsecno=0 \subsubsecno=0 \message{(#1)}
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-}
-
-\outer\def\section{\parsearg\sectionzzz}
-\def\sectionzzz #1{\seccheck{section}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash secentry %
-{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsection{\parsearg\appendixsectionzzz}
-\outer\def\appendixsec{\parsearg\appendixsectionzzz}
-\def\appendixsectionzzz #1{\seccheck{appendixsection}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash secentry %
-{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedseczzz}
-\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\subsection{\parsearg\subsectionzzz}
-\def\subsectionzzz #1{\seccheck{subsection}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsecentry %
-{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubseczzz}
-\def\appendixsubseczzz #1{\seccheck{appendixsubsec}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsecentry %
-{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\subsubsection{\parsearg\subsubsectionzzz}
-\def\subsubsectionzzz #1{\seccheck{subsubsection}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsubsecentry %
-{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%\
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubseczzz}
-\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash subsubsecentry{#1}%
-{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%\
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\let\rawbackslash=\relax%
-\let\frenchspacing=\relax%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
+% page headings and footings can use it. @section does likewise.
+% However, they are not reliable, because we don't use marks.
+\def\thischapter{}
+\def\thissection{}
+
+\newcount\absseclevel % used to calculate proper heading level
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+
+% @raisesections: treat @section as chapter, @subsection as section, etc.
+\def\raisesections{\global\advance\secbase by -1}
+\let\up=\raisesections % original BFox name
+
+% @lowersections: treat @chapter as section, @section as subsection, etc.
+\def\lowersections{\global\advance\secbase by 1}
+\let\down=\lowersections % original BFox name
+
+% we only have subsub.
+\chardef\maxseclevel = 3
+%
+% A numbered section within an unnumbered changes to unnumbered too.
+% To achive this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unmlevel = \maxseclevel
+%
+% Trace whether the current chapter is an appendix or not:
+% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+\def\chapheadtype{N}
+
+% Choose a heading macro
+% #1 is heading type
+% #2 is heading level
+% #3 is text for heading
+\def\genhead#1#2#3{%
+ % Compute the abs. sec. level:
+ \absseclevel=#2
+ \advance\absseclevel by \secbase
+ % Make sure \absseclevel doesn't fall outside the range:
+ \ifnum \absseclevel < 0
+ \absseclevel = 0
+ \else
+ \ifnum \absseclevel > 3
+ \absseclevel = 3
+ \fi
+ \fi
+ % The heading type:
+ \def\headtype{#1}%
+ \if \headtype U%
+ \ifnum \absseclevel < \unmlevel
+ \chardef\unmlevel = \absseclevel
+ \fi
+ \else
+ % Check for appendix sections:
+ \ifnum \absseclevel = 0
+ \edef\chapheadtype{\headtype}%
+ \else
+ \if \headtype A\if \chapheadtype N%
+ \errmessage{@appendix... within a non-appendix chapter}%
+ \fi\fi
+ \fi
+ % Check for numbered within unnumbered:
+ \ifnum \absseclevel > \unmlevel
+ \def\headtype{U}%
+ \else
+ \chardef\unmlevel = 3
+ \fi
+ \fi
+ % Now print the heading:
+ \if \headtype U%
+ \ifcase\absseclevel
+ \unnumberedzzz{#3}%
+ \or \unnumberedseczzz{#3}%
+ \or \unnumberedsubseczzz{#3}%
+ \or \unnumberedsubsubseczzz{#3}%
+ \fi
+ \else
+ \if \headtype A%
+ \ifcase\absseclevel
+ \appendixzzz{#3}%
+ \or \appendixsectionzzz{#3}%
+ \or \appendixsubseczzz{#3}%
+ \or \appendixsubsubseczzz{#3}%
+ \fi
+ \else
+ \ifcase\absseclevel
+ \chapterzzz{#3}%
+ \or \seczzz{#3}%
+ \or \numberedsubseczzz{#3}%
+ \or \numberedsubsubseczzz{#3}%
+ \fi
+ \fi
+ \fi
+ \suppressfirstparagraphindent
+}
+
+% an interface:
+\def\numhead{\genhead N}
+\def\apphead{\genhead A}
+\def\unnmhead{\genhead U}
+
+% @chapter, @appendix, @unnumbered. Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+%
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v. By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+%
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+ % section resetting is \global in case the chapter is in a group, such
+ % as an @include file.
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\chapno by 1
+ %
+ % Used for \float.
+ \gdef\chaplevelprefix{\the\chapno.}%
+ \resetallfloatnos
+ %
+ \message{\putwordChapter\space \the\chapno}%
+ %
+ % Write the actual heading.
+ \chapmacro{#1}{Ynumbered}{\the\chapno}%
+ %
+ % So @section and the like are numbered underneath this chapter.
+ \global\let\section = \numberedsec
+ \global\let\subsection = \numberedsubsec
+ \global\let\subsubsection = \numberedsubsubsec
+}
+
+\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\def\appendixzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\appendixno by 1
+ \gdef\chaplevelprefix{\appendixletter.}%
+ \resetallfloatnos
+ %
+ \def\appendixnum{\putwordAppendix\space \appendixletter}%
+ \message{\appendixnum}%
+ %
+ \chapmacro{#1}{Yappendix}{\appendixletter}%
+ %
+ \global\let\section = \appendixsec
+ \global\let\subsection = \appendixsubsec
+ \global\let\subsubsection = \appendixsubsubsec
+}
+
+\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+\def\unnumberedzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\unnumberedno by 1
+ %
+ % Since an unnumbered has no number, no prefix for figures.
+ \global\let\chaplevelprefix = \empty
+ \resetallfloatnos
+ %
+ % This used to be simply \message{#1}, but TeX fully expands the
+ % argument to \message. Therefore, if #1 contained @-commands, TeX
+ % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
+ % expanded @cite (which turns out to cause errors because \cite is meant
+ % to be executed, not expanded).
+ %
+ % Anyway, we don't want the fully-expanded definition of @cite to appear
+ % as a result of the \message, we just want `@cite' itself. We use
+ % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+ % simply yielding the contents of <toks register>. (We also do this for
+ % the toc entries.)
+ \toks0 = {#1}%
+ \message{(\the\toks0)}%
+ %
+ \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+ %
+ \global\let\section = \unnumberedsec
+ \global\let\subsection = \unnumberedsubsec
+ \global\let\subsubsection = \unnumberedsubsubsec
+}
+
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{%
+ % Well, we could do the following in a group, but that would break
+ % an assumption that \chapmacro is called at the outermost level.
+ % Thus we are safer this way: --kasal, 24feb04
+ \let\centerparametersmaybe = \centerparameters
+ \unnmhead0{#1}%
+ \let\centerparametersmaybe = \relax
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
+% Sections.
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+}
+
+\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+\def\appendixsectionzzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+}
+\let\appendixsec\appendixsection
+
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+\def\unnumberedseczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+}
+
+% Subsections.
+\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+\def\numberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+\def\appendixsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+\def\unnumberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno}%
+}
+
+% Subsubsections.
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+\def\numberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynumbered}%
+ {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+\def\appendixsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+\def\unnumberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
+% These macros control what the section commands do, according
+% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+% Define them by default for a numbered chapter.
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
+
% Define @majorheading, @heading and @subheading
-\outer\def\majorheading #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 200}
+% NOTE on use of \vbox for chapter headings, section headings, and such:
+% 1) We use \vbox rather than the earlier \line to permit
+% overlong headings to fold.
+% 2) \hyphenpenalty is set to 10000 because hyphenation in a
+% heading is obnoxious; this forbids it.
+% 3) Likewise, headings look best if no \parindent is used, and
+% if justification is not attempted. Hence \raggedright.
+
+
+\def\majorheading{%
+ {\advance\chapheadingskip by 10pt \chapbreak }%
+ \parsearg\chapheadingzzz
+}
-\outer\def\chapheading #1{\chapbreak %
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 200}
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}%
+ \bigskip \par\penalty 200\relax
+ \suppressfirstparagraphindent
+}
-\let\heading=\secheadingi
-\let\subheading=\subsecheadingi
-\let\subsubheading=\subsubsecheadingi
+% @heading, @subheading, @subsubheading.
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
% These macros generate a chapter, section, etc. heading only
% (including whitespace, linebreaking, etc. around it),
%%% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt
+\newskip\chapheadingskip
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-\def\CHAPPAGoff{
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
\global\let\pagealignmacro=\chappager}
-\def\CHAPPAGon{
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager}
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
-\def\CHAPPAGodd{
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage}
+\global\let\pagealignmacro=\chapoddpage
+\global\def\HEADINGSon{\HEADINGSdouble}}
+
+\CHAPPAGon
+
+% Chapter opening.
+%
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+%
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chapmacro#1#2#3{%
+ \pchapsepmacro
+ {%
+ \chapfonts \rm
+ %
+ % Have to define \thissection before calling \donoderef, because the
+ % xref code eventually uses it. On the other hand, it has to be called
+ % after \pchapsepmacro, or the headline will change too soon.
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ %
+ % Only insert the separating space if we have a chapter/appendix
+ % number, and don't print the unnumbered ``number''.
+ \def\temptype{#2}%
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unnchap}%
+ \gdef\thischapter{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+ \def\toctype{omit}%
+ \gdef\thischapter{}%
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+ \def\toctype{app}%
+ % We don't substitute the actual chapter name into \thischapter
+ % because we don't want its macros evaluated now. And we don't
+ % use \thissection because that changes with each section.
+ %
+ \xdef\thischapter{\putwordAppendix{} \appendixletter:
+ \noexpand\thischaptername}%
+ \else
+ \setbox0 = \hbox{#3\enspace}%
+ \def\toctype{numchap}%
+ \xdef\thischapter{\putwordChapter{} \the\chapno:
+ \noexpand\thischaptername}%
+ \fi\fi\fi
+ %
+ % Write the toc entry for this chapter. Must come before the
+ % \donoderef, because we include the current node name in the toc
+ % entry, and \donoderef resets it to empty.
+ \writetocentry{\toctype}{#1}{#3}%
+ %
+ % For pdftex, we have to write out the node definition (aka, make
+ % the pdfdest) after any page break, but before the actual text has
+ % been typeset. If the destination for the pdf outline is after the
+ % text, then jumping from the outline may wind up with the text not
+ % being visible, for instance under high magnification.
+ \donoderef{#2}%
+ %
+ % Typeset the actual heading.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent=\wd0 \centerparametersmaybe
+ \unhbox0 #1\par}%
+ }%
+ \nobreak\bigskip % no page break after a chapter title
+ \nobreak
+}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerparameters{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
+}
+
+
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff. We'll see. --karl, 11aug03.
+%
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+%
+\def\unnchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\nobreak
+}
+\def\chfopen #1#2{\chapoddpage {\chapfonts
+\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
+\par\penalty 5000 %
+}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt
+ \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+}
+\def\CHAPFopen{%
+ \global\let\chapmacro=\chfopen
+ \global\let\centerchapmacro=\centerchfopen}
+
+
+% Section titles. These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+%
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
+
+% Subsection titles.
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
+
+% Subsubsection titles.
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
+
+
+% Print any size, any type, section title.
+%
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+%
+\def\sectionheading#1#2#3#4{%
+ {%
+ % Switch to the right set of fonts.
+ \csname #2fonts\endcsname \rm
+ %
+ % Insert space above the heading.
+ \csname #2headingbreak\endcsname
+ %
+ % Only insert the space after the number if we have a section number.
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
+ %
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unn}%
+ \gdef\thissection{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ % for @headings -- no section number, don't include in toc,
+ % and don't redefine \thissection.
+ \setbox0 = \hbox{}%
+ \def\toctype{omit}%
+ \let\sectionlevel=\empty
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{app}%
+ \gdef\thissection{#1}%
+ \else
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{num}%
+ \gdef\thissection{#1}%
+ \fi\fi\fi
+ %
+ % Write the toc entry (before \donoderef). See comments in \chapmacro.
+ \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+ %
+ % Write the node reference (= pdf destination for pdftex).
+ % Again, see comments in \chapmacro.
+ \donoderef{#3}%
+ %
+ % Interline glue will be inserted when the vbox is completed.
+ % That glue will be a valid breakpoint for the page, since it'll be
+ % preceded by a whatsit (usually from the \donoderef, or from the
+ % \writetocentry if there was no node). We don't want to allow that
+ % break, since then the whatsits could end up on page n while the
+ % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
+ \nobreak
+ %
+ % Output the actual section heading.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+ \hangindent=\wd0 % zero if no section number
+ \unhbox0 #1}%
+ }%
+ % Add extra space after the heading -- half of whatever came above it.
+ % Don't allow stretch, though.
+ \kern .5 \csname #2headingskip\endcsname
+ %
+ % Do not let the kern be a potential breakpoint, as it would be if it
+ % was followed by glue.
+ \nobreak
+ %
+ % We'll almost certainly start a paragraph next, so don't let that
+ % glue accumulate. (Not a breakpoint because it's preceded by a
+ % discardable item.)
+ \vskip-\parskip
+ %
+ % This is purely so the last item on the list is a known \penalty >
+ % 10000. This is so \startdefun can avoid allowing breakpoints after
+ % section headings. Otherwise, it would insert a valid breakpoint between:
+ %
+ % @section sec-whatever
+ % @deffn def-whatever
+ \penalty 10001
+}
+
+
+\message{toc,}
+% Table of contents.
+\newwrite\tocfile
+
+% Write an entry to the toc file, opening it if necessary.
+% Called from @chapter, etc.
+%
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this. The node name is used in the pdf outlines as the
+% destination to jump to.
+%
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything. This is used for the
+% table of contents chapter openings themselves.
+%
+\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
+\def\writetocentry#1#2#3{%
+ \edef\writetoctype{#1}%
+ \ifx\writetoctype\omitkeyword \else
+ \iftocfileopened\else
+ \immediate\openout\tocfile = \jobname.toc
+ \global\tocfileopenedtrue
+ \fi
+ %
+ \iflinks
+ {\atdummies
+ \edef\temp{%
+ \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
+ \temp
+ }%
+ \fi
+ \fi
+ %
+ % Tell \shipout to create a pdf destination on each page, if we're
+ % writing pdf. These are used in the table of contents. We can't
+ % just write one on every page because the title pages are numbered
+ % 1 and 2 (the page numbers aren't printed), and so are the first
+ % two pages of the document. Thus, we'd have two destinations named
+ % `1', and two named `2'.
+ \ifpdf \global\pdfmakepagedesttrue \fi
+}
+
+
+% These characters do not print properly in the Computer Modern roman
+% fonts, so we must take special care. This is more or less redundant
+% with the Texinfo input format setup at the end of this file.
+%
+\def\activecatcodes{%
+ \catcode`\"=\active
+ \catcode`\$=\active
+ \catcode`\<=\active
+ \catcode`\>=\active
+ \catcode`\\=\active
+ \catcode`\^=\active
+ \catcode`\_=\active
+ \catcode`\|=\active
+ \catcode`\~=\active
+}
+
+
+% Read the toc file, which is essentially Texinfo input.
+\def\readtocfile{%
+ \setupdatafile
+ \activecatcodes
+ \input \jobname.toc
+}
+
+\newskip\contentsrightmargin \contentsrightmargin=1in
+\newcount\savepageno
+\newcount\lastnegativepageno \lastnegativepageno = -1
+
+% Prepare to read what we've written to \tocfile.
+%
+\def\startcontents#1{%
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
+ \immediate\closeout\tocfile
+ %
+ % Don't need to put `Contents' or `Short Contents' in the headline.
+ % It is abundantly clear what they are.
+ \def\thischapter{}%
+ \chapmacro{#1}{Yomitfromtoc}{}%
+ %
+ \savepageno = \pageno
+ \begingroup % Set up to handle contents files properly.
+ \raggedbottom % Worry more about breakpoints than the bottom.
+ \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+ %
+ % Roman numerals for page numbers.
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+}
+
+
+% Normal (long) toc.
+\def\contents{%
+ \startcontents{\putwordTOC}%
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \ifeof 1 \else
+ \pdfmakeoutlines
+ \fi
+ \closein 1
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
+}
+
+% And just the chapters.
+\def\summarycontents{%
+ \startcontents{\putwordShortTOC}%
+ %
+ \let\numchapentry = \shortchapentry
+ \let\appentry = \shortchapentry
+ \let\unnchapentry = \shortunnchapentry
+ % We want a true roman here for the page numbers.
+ \secfonts
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
+ \rm
+ \hyphenpenalty = 10000
+ \advance\baselineskip by 1pt % Open it up a little.
+ \def\numsecentry##1##2##3##4{}
+ \let\appsecentry = \numsecentry
+ \let\unnsecentry = \numsecentry
+ \let\numsubsecentry = \numsecentry
+ \let\appsubsecentry = \numsecentry
+ \let\unnsubsecentry = \numsecentry
+ \let\numsubsubsecentry = \numsecentry
+ \let\appsubsubsecentry = \numsecentry
+ \let\unnsubsubsecentry = \numsecentry
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \closein 1
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
+}
+\let\shortcontents = \summarycontents
+
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+ % This space should be enough, since a single number is .5em, and the
+ % widest letter (M) is 1em, at least in the Computer Modern fonts.
+ % But use \hss just in case.
+ % (This space doesn't include the extra space that gets added after
+ % the label; that gets put in by \shortchapentry above.)
+ %
+ % We'd like to right-justify chapter numbers, but that looks strange
+ % with appendix letters. And right-justifying numbers and
+ % left-justifying letters looks strange when there is less than 10
+ % chapters. Have to read the whole toc once to know how many chapters
+ % there are before deciding ...
+ \hbox to 1em{#1\hss}%
+}
+
+% These macros generate individual entries in the table of contents.
+% The first argument is the chapter or section name.
+% The last argument is the page number.
+% The arguments in between are the chapter number, section number, ...
+
+% Chapters, in the main contents.
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
+\def\shortchapentry#1#2#3#4{%
+ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+}
+
+% Appendices, in the main contents.
+% Need the word Appendix, and a fixed-size box.
+%
+\def\appendixbox#1{%
+ % We use M since it's probably the widest letter.
+ \setbox0 = \hbox{\putwordAppendix{} M}%
+ \hbox to \wd0{\putwordAppendix{} #1\hss}}
+%
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+
+% Unnumbered chapters.
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+
+% Sections.
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+
+% Subsections.
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+
+% And subsubsections.
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+
+% This parameter controls the indentation of the various levels.
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
+
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
+% page number.
+%
+% If the toc has to be broken over pages, we want it to be at chapters
+% if at all possible; hence the \penalty.
+\def\dochapentry#1#2{%
+ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+ \begingroup
+ \chapentryfonts
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup
+ \nobreak\vskip .25\baselineskip plus.1\baselineskip
+}
+
+\def\dosecentry#1#2{\begingroup
+ \secentryfonts \leftskip=\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsecentry#1#2{\begingroup
+ \subsecentryfonts \leftskip=2\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsubsecentry#1#2{\begingroup
+ \subsubsecentryfonts \leftskip=3\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
+
+% Space between chapter (or whatever) number and the title.
+\def\labelspace{\hskip1em \relax}
+
+\def\dopageno#1{{\rm #1}}
+\def\doshortpageno#1{{\rm #1}}
+
+\def\chapentryfonts{\secfonts \rm}
+\def\secentryfonts{\textfonts}
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
+
+
+\message{environments,}
+% @foo ... @end foo.
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, it should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\tentt \global\dimen0 = 3em}% Width of the box.
+\dimen2 = .55pt % Thickness of rules
+% The text. (`r' is open on the right, `e' somewhat less so on the left.)
+\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+ \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+ \advance\hsize by -2\dimen2 % Rules.
+ \vbox{%
+ \hrule height\dimen2
+ \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
+ \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+ \kern3pt\vrule width\dimen2}% Space to right.
+ \hrule height\dimen2}
+ \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
+
+% @tex ... @end tex escapes into raw Tex temporarily.
+% One exception: @ is still an escape character, so that @end tex works.
+% But \@ or @@ will get a plain tex @ character.
+
+\envdef\tex{%
+ \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+ \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+ \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+ \catcode `\%=14
+ \catcode `\+=\other
+ \catcode `\"=\other
+ \catcode `\|=\other
+ \catcode `\<=\other
+ \catcode `\>=\other
+ \escapechar=`\\
+ %
+ \let\b=\ptexb
+ \let\bullet=\ptexbullet
+ \let\c=\ptexc
+ \let\,=\ptexcomma
+ \let\.=\ptexdot
+ \let\dots=\ptexdots
+ \let\equiv=\ptexequiv
+ \let\!=\ptexexclam
+ \let\i=\ptexi
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \let\{=\ptexlbrace
+ \let\+=\tabalign
+ \let\}=\ptexrbrace
+ \let\/=\ptexslash
+ \let\*=\ptexstar
+ \let\t=\ptext
+ \let\frenchspacing=\plainfrenchspacing
+ %
+ \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+ \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+ \def\@{@}%
+}
+% There is no need to define \Etex.
+
+% Define @lisp ... @end lisp.
+% @lisp environment forms a group so it can rebind things,
+% including the definition of @end lisp (which normally is erroneous).
+
+% Amount to narrow the margins by for @lisp.
+\newskip\lispnarrowing \lispnarrowing=0.4in
+
+% This is the definition that ^^M gets inside @lisp, @example, and other
+% such environments. \null is better than a space, since it doesn't
+% have any width.
+\def\lisppar{\null\endgraf}
+
+% This space is always present above and below environments.
+\newskip\envskipamount \envskipamount = 0pt
+
+% Make spacing and below environment symmetrical. We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+ % =10000 instead of <10000 because of a special case in \itemzzz and
+ % \sectionheading, q.v.
+ \ifnum \lastpenalty=10000 \else
+ \advance\envskipamount by \parskip
+ \endgraf
+ \ifdim\lastskip<\envskipamount
+ \removelastskip
+ % it's not a good place to break if the last penalty was \nobreak
+ % or better ...
+ \ifnum\lastpenalty<10000 \penalty-50 \fi
+ \vskip\envskipamount
+ \fi
+ \fi
+}}
-\CHAPPAGon
+\let\afterenvbreak = \aboveenvbreak
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain}
+% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
+% also clear it, so that its embedded environments do the narrowing again.
+\let\nonarrowing=\relax
-\def\chfplain #1#2{%
-\pchapsepmacro %
-{\chapfonts \line{\chaprm #2.\enspace #1\hfill}}\bigskip \par\penalty 5000 %
+% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+% environment contents.
+\font\circle=lcircle10
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+\circthick=\fontdimen8\circle
+%
+\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+\def\ctr{{\hskip 6pt\circle\char'010}}
+\def\cbl{{\circle\char'012\hskip -6pt}}
+\def\cbr{{\hskip 6pt\circle\char'011}}
+\def\carttop{\hbox to \cartouter{\hskip\lskip
+ \ctl\leaders\hrule height\circthick\hfil\ctr
+ \hskip\rskip}}
+\def\cartbot{\hbox to \cartouter{\hskip\lskip
+ \cbl\leaders\hrule height\circthick\hfil\cbr
+ \hskip\rskip}}
+%
+\newskip\lskip\newskip\rskip
+
+\envdef\cartouche{%
+ \ifhmode\par\fi % can't be in the midst of a paragraph.
+ \startsavinginserts
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt % we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18.4pt % allow for 3pt kerns on either
+ % side, and for 6pt waste from
+ % each corner char, and rule thickness
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing = t%
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \kern3pt
+ \hsize=\cartinner
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
+ \comment % For explanation, see the end of \def\group.
+}
+\def\Ecartouche{%
+ \ifhmode\par\fi
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
+ \checkinserts
}
-\def\unnchfplain #1{%
-\pchapsepmacro %
-{\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 10000 %
+
+% This macro is called at the beginning of all the @example variants,
+% inside a group.
+\def\nonfillstart{%
+ \aboveenvbreak
+ \hfuzz = 12pt % Don't be fussy
+ \sepspaces % Make spaces be word-separators rather than space tokens.
+ \let\par = \lisppar % don't ignore blank lines
+ \obeylines % each line of input is a line of output
+ \parskip = 0pt
+ \parindent = 0pt
+ \emergencystretch = 0pt % don't try to avoid overfull boxes
+ \ifx\nonarrowing\relax
+ \advance \leftskip by \lispnarrowing
+ \exdentamount=\lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \let\exdent=\nofillexdent
}
-\CHAPFplain % The default
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \line{\chaprm #1\hfill}}\bigskip \par\penalty 10000 %
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+% @example, @display, @format, @lisp
+%
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+ \ifx\SETdispenvsize\smallword
+ \smallexamplefonts \rm
+ \fi
+}
+\def\setsmalldispenv{%
+ \ifx\SETdispenvsize\nosmallword
+ \else
+ \smallexamplefonts \rm
+ \fi
}
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
+% We often define two environments, @foo and @smallfoo.
+% Let's do it by one command:
+\def\makedispenv #1#2{
+ \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+ \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+ \expandafter\let\csname E#1\endcsname \afterenvbreak
+ \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
}
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen}
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+ \makedispenv{#1}{#3}
+ \makedispenv{#2}{#3}
+}
-% Parameter controlling skip before section headings.
+% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
+% @smallexample and @smalllisp: use smaller fonts.
+% Originally contributed by Pavel@xerox.
+%
+\maketwodispenvs {lisp}{example}{%
+ \nonfillstart
+ \tt
+ \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+ \gobble % eat return
+}
-\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenv {display}{%
+ \nonfillstart
+ \gobble
+}
-\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenv{format}{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
-\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}}
-\def\plainsecheading #1{\secheadingi {#1}}
-\def\secheadingi #1{{\advance \secheadingskip by \parskip %
-\secheadingbreak}%
-{\secfonts \line{\secrm #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
+\let\Eflushleft = \afterenvbreak
-\def\subsecheading #1#2#3#4{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\secfonts \line{\secrm#2.#3.#4\enspace #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 }
+% @flushright.
+%
+\envdef\flushright{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \advance\leftskip by 0pt plus 1fill
+ \gobble
+}
+\let\Eflushright = \afterenvbreak
-\def\subsubsecfonts{\subsecfonts} % Maybe this should change
-\def\subsubsecheading #1#2#3#4#5{{\advance \subsecheadingskip by \parskip %
-\subsecheadingbreak}%
-{\secfonts \line{\secrm#2.#3.#4.#5\enspace #1\hfill}}%
-\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000}
+% @quotation does normal linebreaking (hence we can't use \nonfillstart)
+% and narrows the margins. We keep \parskip nonzero in general, since
+% we're doing normal filling. So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
+%
+\envdef\quotation{%
+ {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+ \parindent=0pt
+ %
+ % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \ifx\nonarrowing\relax
+ \advance\leftskip by \lispnarrowing
+ \advance\rightskip by \lispnarrowing
+ \exdentamount = \lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \parsearg\quotationlabel
+}
-\message{toc printing,}
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+%
+\def\Equotation{%
+ \par
+ \ifx\quotationauthor\undefined\else
+ % indent a bit.
+ \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+ \fi
+ {\parskip=0pt \afterenvbreak}%
+}
-\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty \else
+ {\bf #1: }%
+ \fi
+}
-\def\finishcontents{%
-\ifnum\pageno>0 %
-\pagealignmacro %
-\immediate\closeout \contentsfile%
-\pageno=-1 % Request roman numbered pages
-\fi}
-\outer\def\contents{%
-\finishcontents %
-\unnumbchapmacro{Table of Contents}
-\def\thischapter{Table of Contents}
-{\catcode`\\=0
-\catcode`\{=1 % Set up to handle contents files properly
-\catcode`\}=2
-\catcode`\@=11
-\input \jobname.toc
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too. Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+ \do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+ \do\<\do\>\do\|\do\@\do+\do\"%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1=\other}\dospecials}
+%
+% [Knuth] pp. 380,381,391
+% Disable Spanish ligatures ?` and !` of \tt font
+\begingroup
+ \catcode`\`=\active\gdef`{\relax\lq}
+\endgroup
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+ \tt % easiest (and conventionally used) font for verbatim
+ \def\par{\leavevmode\endgraf}%
+ \catcode`\`=\active
+ \tabeightspaces
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
}
-\vfill \eject}
-\outer\def\summarycontents{%
-\finishcontents %
-\unnumbchapmacro{Summary Table of Contents}
-\def\thischapter{Summary Table of Contents}
-{\catcode`\\=0
-\catcode`\{=1 % Set up to handle contents files properly
-\catcode`\}=2
-\catcode`\@=11
-\def\smallbreak{}
-\def\secentry ##1##2##3##4{}
-\def\subsecentry ##1##2##3##4##5{}
-\def\subsubsecentry ##1##2##3##4##5##6{}
-\def\unnumbsecentry ##1##2{}
-\def\unnumbsubsecentry ##1##2{}
-\def\unnumbsubsubsecentry ##1##2{}
-\let\medbreak=\smallbreak
-\input \jobname.toc
-}
-\vfill \eject}
+% Setup for the @verbatim environment
+%
+% Real tab expansion
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+\def\starttabbox{\setbox0=\hbox\bgroup}
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabexpand{%
+ \catcode`\^^I=\active
+ \def^^I{\leavevmode\egroup
+ \dimen0=\wd0 % the width so far, or since the previous tab
+ \divide\dimen0 by\tabw
+ \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+ \advance\dimen0 by\tabw % advance to next multiple of \tabw
+ \wd0=\dimen0 \box0 \starttabbox
+ }%
+ }
+\endgroup
+\def\setupverbatim{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ % Easiest (and conventionally used) font for verbatim
+ \tt
+ \def\par{\leavevmode\egroup\box0\endgraf}%
+ \catcode`\`=\active
+ \tabexpand
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+ \everypar{\starttabbox}%
+}
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+% \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+ \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+ \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+% \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%
+\begingroup
+ \catcode`\ =\active
+ \obeylines %
+ % ignore everything up to the first ^^M, that's the newline at the end
+ % of the @verbatim input line itself. Otherwise we get an extra blank
+ % line in the output.
+ \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+ % We really want {...\end verbatim} in the body of the macro, but
+ % without the active space; thus we have to use \xdef and \gobble.
+\endgroup
+%
+\envdef\verbatim{%
+ \setupverbatim\doverbatim
+}
+\let\Everbatim = \afterenvbreak
-% These macros generate individual entries in the table of contents
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-\def\chapentry #1#2#3{%
-\medbreak
-\line{#2.\space#1\leaders\hbox to 1em{\hss.\hss}\hfill #3}
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+ {%
+ \makevalueexpandable
+ \setupverbatim
+ \input #1
+ \afterenvbreak
+ }%
}
-\def\unnumbchapentry #1#2{%
-\medbreak
-\line{#1\leaders\Dotsbox\hfill #2}
+% @copying ... @end copying.
+% Save the text away for @insertcopying later.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+%
+\def\insertcopying{%
+ \begingroup
+ \parindent = 0pt % paragraph indentation looks wrong on title page
+ \scanexp\copyingtext
+ \endgroup
}
-\def\secentry #1#2#3#4{%
-\line{\enspace\enspace#2.#3\space#1\leaders\Dotsbox\hfill#4}
-}
+\message{defuns,}
+% @defun etc.
+
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
-\def\unnumbsecentry #1#2{%
-\line{\enspace\enspace#1\leaders\Dotsbox\hfill #2}
+% Start the processing of @deffn:
+\def\startdefun{%
+ \ifnum\lastpenalty<10000
+ \medbreak
+ \else
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we need to allow a
+ % break somewhere. Check specifically for penalty 10002, inserted
+ % by \defargscommonending, instead of 10000, since the sectioning
+ % commands also insert a nobreak penalty, and we don't want to allow
+ % a break between a section heading and a defun.
+ %
+ \ifnum\lastpenalty=10002 \penalty2000 \fi
+ %
+ % Similarly, after a section heading, do not allow a break.
+ % But do insert the glue.
+ \medskip % preceded by discardable penalty, so not a breakpoint
+ \fi
+ %
+ \parindent=0in
+ \advance\leftskip by \defbodyindent
+ \exdentamount=\defbodyindent
}
-\def\subsecentry #1#2#3#4#5{%
-\line{\enspace\enspace\enspace\enspace
-#2.#3.#4\space#1\leaders\Dotsbox\hfill #5}
+\def\dodefunx#1{%
+ % First, check whether we are in the right environment:
+ \checkenv#1%
+ %
+ % As above, allow line break if we have multiple x headers in a row.
+ % It's not a great place, though.
+ \ifnum\lastpenalty=10002 \penalty3000 \fi
+ %
+ % And now, it's time to reuse the body of the original defun:
+ \expandafter\gobbledefun#1%
}
+\def\gobbledefun#1\startdefun{}
-\def\unnumbsubsecentry #1#2{%
-\line{\enspace\enspace\enspace\enspace#1\leaders\Dotsbox\hfill #2}
+% \printdefunline \deffnheader{text}
+%
+\def\printdefunline#1#2{%
+ \begingroup
+ % call \deffnheader:
+ #1#2 \endheader
+ % common ending:
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty 10002 % signal to \startdefun and \dodefunx
+ % Some of the @defun-type tags do not enable magic parentheses,
+ % rendering the following check redundant. But we don't optimize.
+ \checkparencounts
+ \endgroup
}
-\def\subsubsecentry #1#2#3#4#5#6{%
-\line{\enspace\enspace\enspace\enspace\enspace\enspace
-#2.#3.#4.#5\space#1\leaders\Dotsbox\hfill #6}
+\def\Edefun{\endgraf\medbreak}
+
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remainnig is to define \deffnheader.
+%
+\def\makedefun#1{%
+ \expandafter\let\csname E#1\endcsname = \Edefun
+ \edef\temp{\noexpand\domakedefun
+ \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+ \temp
}
-\def\unnumbsubsubsecentry #1#2{%
-\line{\enspace\enspace\enspace\enspace\enspace\enspace#1\leaders\Dotsbox\hfill #2}
+% \domakedefun \deffn \deffnx \deffnheader
+%
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
+%
+\def\domakedefun#1#2#3{%
+ \envdef#1{%
+ \startdefun
+ \parseargusing\activeparens{\printdefunline#3}%
+ }%
+ \def#2{\dodefunx#1}%
+ \def#3%
}
-\message{environments,}
+%%% Untyped functions:
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
-\def\tex{\begingroup
-\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
-\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
-\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
-\catcode `\%=14
-\catcode`\"=12
-\catcode`\|=12
-\catcode`\<=12
-\catcode`\>=12
-\escapechar=`\\
-%
-\let\{=\ptexlbrace
-\let\}=\ptexrbrace
-\let\.=\ptexdot
-\let\*=\ptexstar
-\def\@={@}%
-\let\bullet=\ptexbullet
-\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl
-\let\L=\ptexL
-%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-% This is the definition that ^M gets inside @lisp
-% phr: changed space to \null, to avoid overfull hbox problems.
-{\obeyspaces%
-\gdef\lisppar{\null\endgraf}}
-
-% Cause \obeyspaces to make each Space cause a word-separation
-% rather than the default which is that it acts punctuation.
-% This is because space in tt font looks funny.
-{\obeyspaces %
-\gdef\sepspaces{\def {\ }}}
-
-\newskip\aboveenvskipamount \aboveenvskipamount= 0pt
-\def\aboveenvbreak{{\advance\aboveenvskipamount by \parskip
-\endgraf \ifdim\lastskip<\aboveenvskipamount
-\removelastskip \penalty-50 \vskip\aboveenvskipamount \fi}}
-
-\def\afterenvbreak{\endgraf \ifdim\lastskip<\aboveenvskipamount
-\removelastskip \penalty-50 \vskip\aboveenvskipamount \fi}
-
-\def\lisp{\aboveenvbreak\begingroup\inENV %This group ends at the end of the @lisp body
-\hfuzz=12truept % Don't be fussy
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Elisp{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines \tt \rawbackslash
-\def\next##1{}\next}
-
-
-\let\example=\lisp
-\def\Eexample{\Elisp}
-
-\let\smallexample=\lisp
-\def\Esmallexample{\Elisp}
-
-% Macro for 9 pt. examples, necessary to print with 5" lines.
-% From Pavel@xerox. This is not really used unless the
-% @smallbook command is given.
-
-\def\smalllispx{\aboveenvbreak\begingroup\inENV
-% This group ends at the end of the @lisp body
-\hfuzz=12truept % Don't be fussy
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Esmalllisp{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines \ninett \rawbackslash
-\def\next##1{}\next}
-
-% This is @display; same as @lisp except use roman font.
-
-\def\display{\begingroup\inENV %This group ends at the end of the @display body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% Single space lines
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Edisplay{\endgroup\afterenvbreak}%
-\parskip=0pt \advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing
-\parindent=0pt
-\let\exdent=\internalexdent
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% This is @format; same as @lisp except use roman font and don't narrow margins
-
-\def\format{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-\singlespace %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-\let\par=\lisppar
-\def\Eformat{\endgroup\afterenvbreak}
-\parskip=0pt \parindent=0pt
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% @flushleft and @flushright
-
-\def\flushleft{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-% This also causes @ to work when the directive name
-% is terminated by end of line.
-\let\par=\lisppar
-\def\Eflushleft{\endgroup\afterenvbreak}%
-\parskip=0pt \parindent=0pt
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-\def\flushright{\begingroup\inENV %This group ends at the end of the @format body
-\aboveenvbreak
-% Make spaces be word-separators rather than space tokens.
-\sepspaces %
-% The following causes blank lines not to be ignored
-% by adding a space to the end of each line.
-% This also causes @ to work when the directive name
-% is terminated by end of line.
-\let\par=\lisppar
-\def\Eflushright{\endgroup\afterenvbreak}%
-\parskip=0pt \parindent=0pt
-\advance \leftskip by 0pt plus 1fill
-\obeyspaces \obeylines
-\def\next##1{}\next}
-
-% @quotation - narrow the margins.
-
-\def\quotation{\begingroup\inENV %This group ends at the end of the @quotation body
-{\parskip=0pt % because we will skip by \parskip too, later
-\aboveenvbreak}%
-\singlespace
-\parindent=0pt
-\def\Equotation{\par\endgroup\afterenvbreak}%
-\advance \rightskip by \lispnarrowing
-\advance \leftskip by \lispnarrowing}
+% \deffngeneral {subind}category name args
+%
+\def\deffngeneral#1#2 #3 #4\endheader{%
+ % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+ \dosubind{fn}{\code{#3}}{#1}%
+ \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+}
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
+%%% Typed functions:
-\newskip\defbodyindent \defbodyindent=36pt
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested %
-\global\advance\parencount by 1 }
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
-% also in that case restore the outer-level definition of (.
-\ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
-\global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&}
-\def\lbrb{{\tt\char`\[}} \def\rbrb{{\tt\char`\]}}
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-\def\defname #1#2{%
-\leftskip = 0in %
-\noindent %
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1 %
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}%
-\tolerance=10000 \hbadness=10000 % Make all lines underfull and no complaints
-{\df #1}\enskip % Generate function name
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{fn}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
+%%% Typed variables:
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in \leftskip=\defbodyindent %
-\begingroup\obeylines\activeparens\spacesplit#3}
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
-\def\defmethparsebody #1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in \leftskip=\defbodyindent %
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{vr}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
-% So much for the things common to all kinds of definitions.
+%%% Untyped variables:
-% Define @defun.
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
-\def\defunargs #1{\functionparens \sl #1%
-\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi%
-\interlinepenalty=10000
-\endgraf\vskip -\parskip \penalty 10000}
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-% Do complete processing of one @defun or @defunx line already parsed.
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+ \doind{tp}{\code{#2}}%
+ \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
-% @deffn Command forward-char nchars
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
+%
+% We are followed by (but not passed) the arguments, if any.
+%
+\def\defname#1#2#3{%
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \advance\leftskip by -\defbodyindent
+ %
+ % How we'll format the type name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \def\temp{#1}%
+ \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+ %
+ % Figure out line sizes for the paragraph shape.
+ % The first line needs space for \box0; but if \rightskip is nonzero,
+ % we need only space for the part of \box0 which exceeds it:
+ \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ % The continuations:
+ \dimen2=\hsize \advance\dimen2 by -\defargsindent
+ % (plain.tex says that \dimen1 should be used only as global.)
+ \parshape 2 0in \dimen0 \defargsindent \dimen2
+ %
+ % Put the type name to the right margin.
+ \noindent
+ \hbox to 0pt{%
+ \hfil\box0 \kern-\hsize
+ % \hsize has to be shortened this way:
+ \kern\leftskip
+ % Intentionally do not respect \rightskip, since we need the space.
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \exdentamount=\defbodyindent
+ {%
+ % defun fonts. We use typewriter by default (used to be bold) because:
+ % . we're printing identifiers, they should be in tt in principle.
+ % . in languages with many accents, such as Czech or French, it's
+ % common to leave accents off identifiers. The result looks ok in
+ % tt, but exceedingly strange in rm.
+ % . we don't want -- and --- to be treated as ligatures.
+ % . this still does not fix the ?` and !` ligatures, but so far no
+ % one has made identifiers using them :).
+ \df \tt
+ \def\temp{#2}% return value type
+ \ifx\temp\empty\else \tclose{\temp} \fi
+ #3% output function name
+ }%
+ {\rm\enskip}% hskip 0.5 em of \tenrm
+ %
+ \boldbrax
+ % arguments will be output next, if any.
+}
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name. This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable. Prevent hyphenation at `-' chars.
+%
+\def\defunargs#1{%
+ % use sl by default (not ttsl),
+ % tt for the names.
+ \df \sl \hyphenchar\font=0
+ %
+ % On the other hand, if an argument has two dashes (for instance), we
+ % want a way to get ttsl. Let's try @var for that.
+ \let\var=\ttslanted
+ #1%
+ \sl\hyphenchar\font=45
+}
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup}
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\[=\active \catcode`\]=\active
+ \catcode`\&=\active
+}
-% @defun == @deffn Function
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
+% Be sure that we always have a definition for `(', etc. For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+ \activeparens
+ \global\let(=\lparen \global\let)=\rparen
+ \global\let[=\lbrack \global\let]=\rbrack
+ \global\let& = \&
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
+ \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+ \gdef\magicamp{\let&=\amprm}
}
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
+\newcount\parencount
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\ }}
+
+\def\parenfont{%
+ \ifampseen
+ % At the first level, print parens in roman,
+ % otherwise use the default font.
+ \ifnum \parencount=1 \rm \fi
+ \else
+ % The \sf parens (in \boldbrax) actually are a little bolder than
+ % the contained text. This is especially needed for [ and ] .
+ \sf
+ \fi
+}
+\def\infirstlevel#1{%
+ \ifampseen
+ \ifnum\parencount=1
+ #1%
+ \fi
+ \fi
}
+\def\bfafterword#1 {#1 \bf}
-% @defspec == @deffn Special Form
+\def\opnr{%
+ \global\advance\parencount by 1
+ {\parenfont(}%
+ \infirstlevel \bfafterword
+}
+\def\clnr{%
+ {\parenfont)}%
+ \infirstlevel \sl
+ \global\advance\parencount by -1
+}
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
+\newcount\brackcount
+\def\lbrb{%
+ \global\advance\brackcount by 1
+ {\bf[}%
+}
+\def\rbrb{%
+ {\bf]}%
+ \global\advance\brackcount by -1
+}
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special form}%
-\defunargs {#2}\endgroup %
+\def\checkparencounts{%
+ \ifnum\parencount=0 \else \badparencount \fi
+ \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+\def\badparencount{%
+ \errmessage{Unbalanced parentheses in @def}%
+ \global\parencount=0
+}
+\def\badbrackcount{%
+ \errmessage{Unbalanced square braces in @def}%
+ \global\brackcount=0
}
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
+\message{macros,}
+% @macro.
+
+% To do this right we need a feature of e-TeX, \scantokens,
+% which we arrange to emulate with a temporary file in ordinary TeX.
+\ifx\eTeXversion\undefined
+ \newwrite\macscribble
+ \def\scantokens#1{%
+ \toks0={#1}%
+ \immediate\openout\macscribble=\jobname.tmp
+ \immediate\write\macscribble{\the\toks0}%
+ \immediate\closeout\macscribble
+ \input \jobname.tmp
+ }
+\fi
-% @defmethod, and so on
+\def\scanmacro#1{%
+ \begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ % ... and \example
+ \spaceisspace
+ %
+ % Append \endinput to make sure that TeX does not see the ending newline.
+ %
+ % I've verified that it is necessary both for e-TeX and for ordinary TeX
+ % --kasal, 29nov03
+ \scantokens{#1\endinput}%
+ \endgroup
+}
-% @defop {Funny Method} foo-class frobnicate argument
+\def\scanexp#1{%
+ \edef\temp{\noexpand\scanmacro{#1}}%
+ \temp
+}
-\def\defop #1 {\def\defoptype{#1}%
-\defmethparsebody\Edefop\defopx\defopheader}
+\newcount\paramno % Count of parameters
+\newtoks\macname % Macro name
+\newif\ifrecursive % Is it recursive?
+
+% List of all defined macros in the form
+% \definedummyword\macro1\definedummyword\macro2...
+% Currently is also contains all @aliases; the list can be split
+% if there is a need.
+\def\macrolist{}
+
+% Add the macro to \macrolist
+\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
+\def\addtomacrolistxxx#1{%
+ \toks0 = \expandafter{\macrolist\definedummyword#1}%
+ \xdef\macrolist{\the\toks0}%
+}
-\def\defopheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
+% Utility routines.
+% This does \let #1 = #2, with \csnames; that is,
+% \let \csname#1\endcsname = \csname#2\endcsname
+% (except of course we have to play expansion games).
+%
+\def\cslet#1#2{%
+ \expandafter\let
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname
}
-% @defmethod == @defop Method
+% Trim leading and trailing spaces off a string.
+% Concepts from aro-bend problem 15 (see CTAN).
+{\catcode`\@=11
+\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+\def\unbrace#1{#1}
+\unbrace{\gdef\trim@@@ #1 } #2@{#1}
+}
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
+% Trim a single trailing ^^M off a string.
+{\catcode`\^^M=\other \catcode`\Q=3%
+\gdef\eatcr #1{\eatcra #1Q^^MQ}%
+\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+\gdef\eatcrb#1Q#2Q{#1}%
+}
-\def\defmethodheader #1#2#3{\dosubind {fn}{\code{#2}}{on #1}% entry in function index
-\begingroup\defname {#2}{Operation on #1}%
-\defunargs {#3}\endgroup %
+% Macro bodies are absorbed as an argument in a context where
+% all characters are catcode 10, 11 or 12, except \ which is active
+% (as in normal texinfo). It is necessary to change the definition of \.
+
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by making ^^M (\endlinechar) catcode 12 when reading the macro
+% body, and then making it the \newlinechar in \scanmacro.
+
+\def\scanctxt{%
+ \catcode`\"=\other
+ \catcode`\+=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\@=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\~=\other
}
-% @defcv {Class Option} foo-class foo-flag
+\def\scanargctxt{%
+ \scanctxt
+ \catcode`\\=\other
+ \catcode`\^^M=\other
+}
-\def\defcv #1 {\def\defcvtype{#1}%
-\defmethparsebody\Edefcv\defcvx\defcvheader}
+\def\macrobodyctxt{%
+ \scanctxt
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\^^M=\other
+ \usembodybackslash
+}
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype of #1}%
-\defvarargs {#3}\endgroup %
+\def\macroargctxt{%
+ \scanctxt
+ \catcode`\\=\other
}
-% @defivar == @defcv {Instance Variable}
+% \mbodybackslash is the definition of \ in @macro bodies.
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
+% where N is the macro parameter number.
+% We define \csname macarg.\endcsname to be \realbackslash, so
+% \\ in macro replacement text gets you a backslash.
+
+{\catcode`@=0 @catcode`@\=@active
+ @gdef@usembodybackslash{@let\=@mbodybackslash}
+ @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+}
+\expandafter\def\csname macarg.\endcsname{\realbackslash}
+
+\def\macro{\recursivefalse\parsearg\macroxxx}
+\def\rmacro{\recursivetrue\parsearg\macroxxx}
+
+\def\macroxxx#1{%
+ \getargs{#1}% now \macname is the macname and \argl the arglist
+ \ifx\argl\empty % no arguments
+ \paramno=0%
+ \else
+ \expandafter\parsemargdef \argl;%
+ \fi
+ \if1\csname ismacro.\the\macname\endcsname
+ \message{Warning: redefining \the\macname}%
+ \else
+ \expandafter\ifx\csname \the\macname\endcsname \relax
+ \else \errmessage{Macro name \the\macname\space already defined}\fi
+ \global\cslet{macsave.\the\macname}{\the\macname}%
+ \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+ \addtomacrolist{\the\macname}%
+ \fi
+ \begingroup \macrobodyctxt
+ \ifrecursive \expandafter\parsermacbody
+ \else \expandafter\parsemacbody
+ \fi}
+
+\parseargdef\unmacro{%
+ \if1\csname ismacro.#1\endcsname
+ \global\cslet{#1}{macsave.#1}%
+ \global\expandafter\let \csname ismacro.#1\endcsname=0%
+ % Remove the macro name from \macrolist:
+ \begingroup
+ \expandafter\let\csname#1\endcsname \relax
+ \let\definedummyword\unmacrodo
+ \xdef\macrolist{\macrolist}%
+ \endgroup
+ \else
+ \errmessage{Macro #1 not defined}%
+ \fi
+}
-\def\defivar{\defmethparsebody\Edefivar\defivarx\defivarheader}
+% Called by \do from \dounmacro on each macro. The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+ \ifx #1\relax
+ % remove this
+ \else
+ \noexpand\definedummyword \noexpand#1%
+ \fi
+}
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance variable of #1}%
-\defvarargs {#3}\endgroup %
+% This makes use of the obscure feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
+\def\getargs#1{\getargsxxx#1{}}
+\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+\def\getmacname #1 #2\relax{\macname={#1}}
+\def\getmacargs#1{\def\argl{#1}}
+
+% Parse the optional {params} list. Set up \paramno and \paramlist
+% so \defmacro knows what to do. Define \macarg.blah for each blah
+% in the params list, to be ##N where N is the position in that list.
+% That gets used by \mbodybackslash (above).
+
+% We need to get `macro parameter char #' into several definitions.
+% The technique used is stolen from LaTeX: let \hash be something
+% unexpandable, insert that wherever you need a #, and then redefine
+% it to # just before using the token list produced.
+%
+% The same technique is used to protect \eatspaces till just before
+% the macro is used.
+
+\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
+ \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+\def\parsemargdefxxx#1,{%
+ \if#1;\let\next=\relax
+ \else \let\next=\parsemargdefxxx
+ \advance\paramno by 1%
+ \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+ {\xeatspaces{\hash\the\paramno}}%
+ \edef\paramlist{\paramlist\hash\the\paramno,}%
+ \fi\next}
+
+% These two commands read recursive and nonrecursive macro bodies.
+% (They're different since rec and nonrec macros end differently.)
+
+\long\def\parsemacbody#1@end macro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\long\def\parsermacbody#1@end rmacro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+
+% This defines the macro itself. There are six cases: recursive and
+% nonrecursive macros of zero, one, and many arguments.
+% Much magic with \expandafter here.
+% \xdef is used so that macro definitions will survive the file
+% they're defined in; @include reads the file inside a group.
+\def\defmacro{%
+ \let\hash=##% convert placeholders to macro parameter chars
+ \ifrecursive
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\scanmacro{\temp}}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup\noexpand\scanmacro{\temp}}%
+ \else % many
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \fi
+ \else
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % many
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \fi
+ \fi}
+
+\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+
+% \braceorline decides whether the next nonwhitespace character is a
+% {. If so it reads up to the closing }, if not, it reads the whole
+% line. Whatever was read is then fed to the next control sequence
+% as an argument (by \parsebrace or \parsearg)
+\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorlinexxx{%
+ \ifx\nchar\bgroup\else
+ \expandafter\parsearg
+ \fi \next}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign. Just make them active and then expand them all to nothing.
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{%
+ {%
+ \expandafter\let\obeyedspace=\empty
+ \addtomacrolist{#1}%
+ \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+ }%
+ \next
}
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
+\message{cross references,}
+
+\newwrite\auxfile
-% Now @defvar
+\newif\ifhavexrefs % True if xref values are known.
+\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\vskip -\parskip \penalty 10000}
+% @inforef is relatively simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+ node \samp{\ignorespaces#1{}}}
+
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references. The @node line might or might not have commas, and
+% might or might not have spaces before the first comma, like:
+% @node foo , bar , ...
+% We don't want such trailing spaces in the node name.
+%
+\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+%
+% also remove a trailing comma, in case of something like this:
+% @node Help-Cross, , , Cross-refs
+\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
-% @defvr Counter foo-count
+\let\nwnode=\node
+\let\lastnode=\empty
-\def\defvr{\defmethparsebody\Edefvr\defvrx\defvrheader}
+% Write a cross-reference definition for the current node. #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+%
+\def\donoderef#1{%
+ \ifx\lastnode\empty\else
+ \setref{\lastnode}{#1}%
+ \global\let\lastnode=\empty
+ \fi
+}
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\newcount\savesfregister
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \thissection,
+% or the anchor name.
+% 2) NAME-snt - section number and type, passed as the SNT arg, or
+% empty for anchors.
+% 3) NAME-pg - the page number.
+%
+% This is called from \donoderef, \anchor, and \dofloat. In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof - the text as it should appear in a @listoffloats.
+%
+\def\setref#1#2{%
+ \pdfmkdest{#1}%
+ \iflinks
+ {%
+ \atdummies % preserve commands, but don't expand them
+ \edef\writexrdef##1##2{%
+ \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+ ##1}{##2}}% these are parameters of \writexrdef
+ }%
+ \toks0 = \expandafter{\thissection}%
+ \immediate \writexrdef{title}{\the\toks0 }%
+ \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+ \writexrdef{pg}{\folio}% will be written later, during \shipout
+ }%
+ \fi
+}
-% @defvar == @defvr Variable
+% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
+% the node name, #2 the name of the Info cross-reference, #3 the printed
+% node name, #4 the name of the Info file, #5 the name of the printed
+% manual. All but the node name can be omitted.
+%
+\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+ \unsepspaces
+ \def\printedmanual{\ignorespaces #5}%
+ \def\printedrefname{\ignorespaces #3}%
+ \setbox1=\hbox{\printedmanual\unskip}%
+ \setbox0=\hbox{\printedrefname\unskip}%
+ \ifdim \wd0 = 0pt
+ % No printed node name was explicitly given.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+ % Use the node name inside the square brackets.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ % Use the actual chapter/section title appear inside
+ % the square brackets. Use the real section title if we have it.
+ \ifdim \wd1 > 0pt
+ % It is in another manual, so we don't have it.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ \ifhavexrefs
+ % We know the real title if we have the xref values.
+ \def\printedrefname{\refx{#1-title}{}}%
+ \else
+ % Otherwise just copy the Info node name.
+ \def\printedrefname{\ignorespaces #1}%
+ \fi%
+ \fi
+ \fi
+ \fi
+ %
+ % Make link in pdf output.
+ \ifpdf
+ \leavevmode
+ \getfilename{#4}%
+ {\turnoffactive
+ % See comments at \activebackslashdouble.
+ {\activebackslashdouble \xdef\pdfxrefdest{#1}%
+ \backslashparens\pdfxrefdest}%
+ %
+ \ifnum\filenamelength>0
+ \startlink attr{/Border [0 0 0]}%
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
+ \else
+ \startlink attr{/Border [0 0 0]}%
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
+ \fi
+ }%
+ \linkcolor
+ \fi
+ %
+ % Float references are printed completely differently: "Figure 1.2"
+ % instead of "[somenode], p.3". We distinguish them by the
+ % LABEL-title being set to a magic string.
+ {%
+ % Have to otherify everything special to allow the \csname to
+ % include an _ in the xref name, etc.
+ \indexnofonts
+ \turnoffactive
+ \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+ \csname XR#1-title\endcsname
+ }%
+ \iffloat\Xthisreftitle
+ % If the user specified the print name (third arg) to the ref,
+ % print it instead of our usual "Figure 1.2".
+ \ifdim\wd0 = 0pt
+ \refx{#1-snt}{}%
+ \else
+ \printedrefname
+ \fi
+ %
+ % if the user also gave the printed manual name (fifth arg), append
+ % "in MANUALNAME".
+ \ifdim \wd1 > 0pt
+ \space \putwordin{} \cite{\printedmanual}%
+ \fi
+ \else
+ % node/anchor (non-float) references.
+ %
+ % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+ % insert empty discretionaries after hyphens, which means that it will
+ % not find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens, this
+ % is a loss. Therefore, we give the text of the node name again, so it
+ % is as if TeX is seeing it for the first time.
+ \ifdim \wd1 > 0pt
+ \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+ \else
+ % _ (for example) has to be the character _ for the purposes of the
+ % control sequence corresponding to the node, but it has to expand
+ % into the usual \leavevmode...\vrule stuff for purposes of
+ % printing. So we \turnoffactive for the \refx-snt, back on for the
+ % printing, back off for the \refx-pg.
+ {\turnoffactive
+ % Only output a following space if the -snt ref is nonempty; for
+ % @unnumbered and @anchor, it won't be.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ }%
+ % output the `[mynode]' via a macro so it can be overridden.
+ \xrefprintnodename\printedrefname
+ %
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output. It's a separate macro only so it can be changed more easily,
+% since square brackets don't work well in some documents. Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
-\def\defvar{\defparsebody\Edefvar\defvarx\defvarheader}
+% Things referred to by \setref.
+%
+\def\Ynothing{}
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
+ \ifnum\secno=0
+ \putwordChapter@tie \the\chapno
+ \else \ifnum\subsecno=0
+ \putwordSection@tie \the\chapno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
+\def\Yappendix{%
+ \ifnum\secno=0
+ \putwordAppendix@tie @char\the\appendixno{}%
+ \else \ifnum\subsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie
+ @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
+% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+% If its value is nonempty, SUFFIX is output afterward.
+%
+\def\refx#1#2{%
+ {%
+ \indexnofonts
+ \otherbackslash
+ \expandafter\global\expandafter\let\expandafter\thisrefX
+ \csname XR#1\endcsname
+ }%
+ \ifx\thisrefX\relax
+ % If not defined, say something at least.
+ \angleleft un\-de\-fined\angleright
+ \iflinks
+ \ifhavexrefs
+ \message{\linenumber Undefined cross reference `#1'.}%
+ \else
+ \ifwarnedxrefs\else
+ \global\warnedxrefstrue
+ \message{Cross reference values unknown; you must run TeX again.}%
+ \fi
+ \fi
+ \fi
+ \else
+ % It's defined, so just use it.
+ \thisrefX
+ \fi
+ #2% Output the suffix in any case.
}
-% @defopt == @defvr {User Option}
+% This is the macro invoked by entries in the aux file. Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions). But if this is a float type, we have more work to do.
+%
+\def\xrdef#1#2{%
+ \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+ %
+ % Was that xref control sequence that we just defined for a float?
+ \expandafter\iffloat\csname XR#1\endcsname
+ % it was a float, and we have the (safe) float type in \iffloattype.
+ \expandafter\let\expandafter\floatlist
+ \csname floatlist\iffloattype\endcsname
+ %
+ % Is this the first time we've seen this float type?
+ \expandafter\ifx\floatlist\relax
+ \toks0 = {\do}% yes, so just \do
+ \else
+ % had it before, so preserve previous elements in list.
+ \toks0 = \expandafter{\floatlist\do}%
+ \fi
+ %
+ % Remember this xref in the control sequence \floatlistFLOATTYPE,
+ % for later use in \listoffloats.
+ \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+ \fi
+}
-\def\defopt{\defparsebody\Edefopt\defoptx\defoptheader}
+% Read the last existing aux file, if any. No error if none exists.
+%
+\def\tryauxfile{%
+ \openin 1 \jobname.aux
+ \ifeof 1 \else
+ \readdatafile{aux}%
+ \global\havexrefstrue
+ \fi
+ \closein 1
+}
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
+\def\setupdatafile{%
+ \catcode`\^^@=\other
+ \catcode`\^^A=\other
+ \catcode`\^^B=\other
+ \catcode`\^^C=\other
+ \catcode`\^^D=\other
+ \catcode`\^^E=\other
+ \catcode`\^^F=\other
+ \catcode`\^^G=\other
+ \catcode`\^^H=\other
+ \catcode`\^^K=\other
+ \catcode`\^^L=\other
+ \catcode`\^^N=\other
+ \catcode`\^^P=\other
+ \catcode`\^^Q=\other
+ \catcode`\^^R=\other
+ \catcode`\^^S=\other
+ \catcode`\^^T=\other
+ \catcode`\^^U=\other
+ \catcode`\^^V=\other
+ \catcode`\^^W=\other
+ \catcode`\^^X=\other
+ \catcode`\^^Z=\other
+ \catcode`\^^[=\other
+ \catcode`\^^\=\other
+ \catcode`\^^]=\other
+ \catcode`\^^^=\other
+ \catcode`\^^_=\other
+ % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+ % in xref tags, i.e., node names. But since ^^e4 notation isn't
+ % supported in the main text, it doesn't seem desirable. Furthermore,
+ % that is not enough: for node names that actually contain a ^
+ % character, we would end up writing a line like this: 'xrdef {'hat
+ % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+ % argument, and \hat is not an expandable control sequence. It could
+ % all be worked out, but why? Either we support ^^ or we don't.
+ %
+ % The other change necessary for this was to define \auxhat:
+ % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+ % and then to call \auxhat in \setq.
+ %
+ \catcode`\^=\other
+ %
+ % Special characters. Should be turned off anyway, but...
+ \catcode`\~=\other
+ \catcode`\[=\other
+ \catcode`\]=\other
+ \catcode`\"=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\$=\other
+ \catcode`\#=\other
+ \catcode`\&=\other
+ \catcode`\%=\other
+ \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+ %
+ % This is to support \ in node names and titles, since the \
+ % characters end up in a \csname. It's easier than
+ % leaving it active and making its active definition an actual \
+ % character. What I don't understand is why it works in the *value*
+ % of the xrdef. Seems like it should be a catcode12 \, and that
+ % should not typeset properly. But it works, so I'm moving on for
+ % now. --karl, 15jan04.
+ \catcode`\\=\other
+ %
+ % Make the characters 128-255 be printing characters.
+ {%
+ \count1=128
+ \def\loop{%
+ \catcode\count1=\other
+ \advance\count1 by 1
+ \ifnum \count1<256 \loop \fi
+ }%
+ }%
+ %
+ % @ is our escape character in .aux files, and we need braces.
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\@=0
}
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
+\def\readdatafile#1{%
+\begingroup
+ \setupdatafile
+ \input\jobname.#1
+\endgroup}
+
+\message{insertions,}
+% including footnotes.
+
+\newcount \footnoteno
+
+% The trailing space in the following definition for supereject is
+% vital for proper filling; pages come out unaligned when you do a
+% pagealignmacro call if that space before the closing brace is
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
+\def\supereject{\par\penalty -20000\footnoteno =0 }
+
+% @footnotestyle is meaningful for info output only.
+\let\footnotestyle=\comment
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
+{\catcode `\@=11
+%
+% Auto-number footnotes. Otherwise like plain.
+\gdef\footnote{%
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \global\advance\footnoteno by \@ne
+ \edef\thisfootno{$^{\the\footnoteno}$}%
+ %
+ % In case the footnote comes at the end of a sentence, preserve the
+ % extra spacing after we do the footnote number.
+ \let\@sf\empty
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+ %
+ % Remove inadvertent blank space before typesetting the footnote number.
+ \unskip
+ \thisfootno\@sf
+ \dofootnote
+}%
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
+% Don't bother with the trickery in plain.tex to not require the
+% footnote text as a parameter. Our footnotes don't need to be so general.
+%
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
+% the footnote is read. --karl, 16nov96.
+%
+\gdef\dofootnote{%
+ \insert\footins\bgroup
+ % We want to typeset this text as a normal paragraph, even if the
+ % footnote reference occurs in (for example) a display environment.
+ % So reset some parameters.
+ \hsize=\pagewidth
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \spaceskip\z@skip
+ \xspaceskip\z@skip
+ \parindent\defaultparindent
+ %
+ \smallfonts \rm
+ %
+ % Because we use hanging indentation in footnotes, a @noindent appears
+ % to exdent this text, so make it be a no-op. makeinfo does not use
+ % hanging indentation so @noindent can still be needed within footnote
+ % text after an @example or the like (not that this is good style).
+ \let\noindent = \relax
+ %
+ % Hang the footnote text off the number. Use \everypar in case the
+ % footnote extends for more than one paragraph.
+ \everypar = {\hang}%
+ \textindent{\thisfootno}%
+ %
+ % Don't crash into the line above the footnote text. Since this
+ % expands into a box, it must come within the paragraph, lest it
+ % provide a place where TeX can split the footnote.
+ \footstrut
+ \futurelet\next\fo@t
+}
+}%end \catcode `\@=11
-\def\deftpargs #1{\bf \defvarargs{#1}}
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished. Otherwise, the insertion
+% would be lost.
+% Similarily, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes. --kasal, 16nov03.
-% @deftp Class window height width ...
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
+%
+\def\startsavinginserts{%
+ \ifx \insert\ptexinsert
+ \let\insert\saveinsert
+ \else
+ \let\checkinserts\relax
+ \fi
+}
-\def\deftp{\defmethparsebody\Edeftp\deftpx\deftpheader}
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+%
+\def\saveinsert#1{%
+ \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+ \afterassignment\next
+ % swallow the left brace
+ \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
+\def\placesaveins#1{%
+ \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+ {\box#1}%
+}
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+ \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
+ \gdef\gobblesave @SAVE{}
+}
-\message{cross reference,}
-% Define cross-reference macros
-\newwrite \auxfile
+% initialization:
+\def\newsaveins #1{%
+ \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+ \next
+}
+\def\newsaveinsX #1{%
+ \csname newbox\endcsname #1%
+ \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+ \checksaveins #1}%
+}
-% \setref{foo} defines a cross-reference point named foo.
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
-\def\setref#1{%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ysectionnumberandtype}}
-\def\unnumbsetref#1{%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ynothing}}
+% @image. We use the macros from epsf.tex to support this.
+% If epsf.tex is not installed and @image is used, we complain.
+%
+% Check for and read epsf.tex up front. If we read it only at @image
+% time, we might be inside a group, and then its definitions would get
+% undone and the next image would fail.
+\openin 1 = epsf.tex
+\ifeof 1 \else
+ % Do not bother showing banner with epsf.tex v2.7k (available in
+ % doc/epsf.tex and on ctan).
+ \def\epsfannounce{\toks0 = }%
+ \input epsf.tex
+\fi
+\closein 1
+%
+% We will only complain once about lack of epsf.tex.
+\newif\ifwarnednoepsf
+\newhelp\noepsfhelp{epsf.tex must be installed for images to
+ work. It is also included in the Texinfo distribution, or you can get
+ it from ftp://tug.org/tex/epsf.tex.}
+%
+\def\image#1{%
+ \ifx\epsfbox\undefined
+ \ifwarnednoepsf \else
+ \errhelp = \noepsfhelp
+ \errmessage{epsf.tex not found, images will be ignored}%
+ \global\warnednoepsftrue
+ \fi
+ \else
+ \imagexxx #1,,,,,\finish
+ \fi
+}
+%
+% Arguments to @image:
+% #1 is (mandatory) image filename; we tack on .eps extension.
+% #2 is (optional) width, #3 is (optional) height.
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing this stuff.
+\newif\ifimagevmode
+\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+ \catcode`\^^M = 5 % in case we're inside an example
+ \normalturnoffactive % allow _ et al. in names
+ % If the image is by itself, center it.
+ \ifvmode
+ \imagevmodetrue
+ \nobreak\bigskip
+ % Usually we'll have text after the image which will insert
+ % \parskip glue, so insert it here too to equalize the space
+ % above and below.
+ \nobreak\vskip\parskip
+ \nobreak
+ \line\bgroup
+ \fi
+ %
+ % Output the image.
+ \ifpdf
+ \dopdfimage{#1}{#2}{#3}%
+ \else
+ % \epsfbox itself resets \epsf?size at each figure.
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+ \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+ \epsfbox{#1.eps}%
+ \fi
+ %
+ \ifimagevmode \egroup \bigbreak \fi % space after the image
+\endgroup}
+
+
+% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+% etc. We don't actually implement floating yet, we always include the
+% float "here". But it seemed the best name for the future.
+%
+\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
-% \xref and \pxref generate cross references to specified points.
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
-\def\pxref #1{see \xrefX [#1,,,,,,,]}
-\def\xref #1{See \xrefX [#1,,,,,,,]}
-\def\xrefX [#1,#2,#3,#4,#5,#6]{%
-\setbox1=\hbox{\i{\losespace#5{}}}%
-\setbox0=\hbox{\losespace#3{}}%
-\ifdim \wd0 =0pt \setbox0=\hbox{\losespace#1{}}\fi%
-\ifdim \wd1 >0pt%
-section \unhbox0{} in \unhbox1%
-\else%
-\refx{#1-snt} [\unhbox0], page\tie \refx{#1-pg}%
-\fi }
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
+% this float will not be numbered and cannot be referred to.
+%
+% #2 is the optional xref label. Also must be present for the float to
+% be referable.
+%
+% #3 is the optional positioning argument; for now, it is ignored. It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+%
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+ \let\thiscaption=\empty
+ \let\thisshortcaption=\empty
+ %
+ % don't lose footnotes inside @float.
+ %
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
+ %
+ \startsavinginserts
+ %
+ % We can't be used inside a paragraph.
+ \par
+ %
+ \vtop\bgroup
+ \def\floattype{#1}%
+ \def\floatlabel{#2}%
+ \def\floatloc{#3}% we do nothing with this yet.
+ %
+ \ifx\floattype\empty
+ \let\safefloattype=\empty
+ \else
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ \fi
+ %
+ % If label is given but no type, we handle that as the empty type.
+ \ifx\floatlabel\empty \else
+ % We want each FLOATTYPE to be numbered separately (Figure 1,
+ % Table 1, Figure 2, ...). (And if no label, no number.)
+ %
+ \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+ \global\advance\floatno by 1
+ %
+ {%
+ % This magic value for \thissection is output by \setref as the
+ % XREFLABEL-title value. \xrefX uses it to distinguish float
+ % labels (which have a completely different output format) from
+ % node and anchor labels. And \xrdef uses it to construct the
+ % lists of floats.
+ %
+ \edef\thissection{\floatmagic=\safefloattype}%
+ \setref{\floatlabel}{Yfloat}%
+ }%
+ \fi
+ %
+ % start with \parskip glue, I guess.
+ \vskip\parskip
+ %
+ % Don't suppress indentation if a float happens to start a section.
+ \restorefirstparagraphindent
+}
-% \dosetq is the interface for calls from other macros
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption: Foo 1.1
+% @float Foo & @caption{Cap}: Foo: Cap
+% @float Foo & no caption: Foo
+% @float ,lbl & Caption{Cap}: 1.1: Cap
+% @float ,lbl & no caption: 1.1
+% @float & @caption{Cap}: Cap
+% @float & no caption:
+%
+\def\Efloat{%
+ \let\floatident = \empty
+ %
+ % In all cases, if we have a float type, it comes first.
+ \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+ %
+ % If we have an xref label, the number comes next.
+ \ifx\floatlabel\empty \else
+ \ifx\floattype\empty \else % if also had float type, need tie first.
+ \appendtomacro\floatident{\tie}%
+ \fi
+ % the number.
+ \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+ \fi
+ %
+ % Start the printed caption with what we've constructed in
+ % \floatident, but keep it separate; we need \floatident again.
+ \let\captionline = \floatident
+ %
+ \ifx\thiscaption\empty \else
+ \ifx\floatident\empty \else
+ \appendtomacro\captionline{: }% had ident, so need a colon between
+ \fi
+ %
+ % caption text.
+ \appendtomacro\captionline{\scanexp\thiscaption}%
+ \fi
+ %
+ % If we have anything to print, print it, with space before.
+ % Eventually this needs to become an \insert.
+ \ifx\captionline\empty \else
+ \vskip.5\parskip
+ \captionline
+ %
+ % Space below caption.
+ \vskip\parskip
+ \fi
+ %
+ % If have an xref label, write the list of floats info. Do this
+ % after the caption, to avoid chance of it being a breakpoint.
+ \ifx\floatlabel\empty \else
+ % Write the text that goes in the lof to the aux file as
+ % \floatlabel-lof. Besides \floatident, we include the short
+ % caption if specified, else the full caption if specified, else nothing.
+ {%
+ \atdummies
+ %
+ % since we read the caption text in the macro world, where ^^M
+ % is turned into a normal character, we have to scan it back, so
+ % we don't write the literal three characters "^^M" into the aux file.
+ \scanexp{%
+ \xdef\noexpand\gtemp{%
+ \ifx\thisshortcaption\empty
+ \thiscaption
+ \else
+ \thisshortcaption
+ \fi
+ }%
+ }%
+ \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+ \ifx\gtemp\empty \else : \gtemp \fi}}%
+ }%
+ \fi
+ \egroup % end of \vtop
+ %
+ % place the captured inserts
+ %
+ % BEWARE: when the floats start floating, we have to issue warning
+ % whenever an insert appears inside a float which could possibly
+ % float. --kasal, 26may04
+ %
+ \checkinserts
+}
-\def\dosetq #1#2{{\let\folio=0%
-\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}%
-\next}}
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
-% \internalsetq {foo}{page} expands into CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
+% @caption, @shortcaption
+%
+\def\caption{\docaption\thiscaption}
+\def\shortcaption{\docaption\thisshortcaption}
+\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+\def\defcaption#1#2{\egroup \def#1{#2}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use. Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+ \ifx#1\relax
+ % Haven't seen this figure type before.
+ \csname newcount\endcsname #1%
+ %
+ % Remember to reset this floatno at the next chap.
+ \expandafter\gdef\expandafter\resetallfloatnos
+ \expandafter{\resetallfloatnos #1=0 }%
+ \fi
+ \let\floatno#1%
+}
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
+% \setref calls this to get the XREFLABEL-snt value. We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
+% first read the @float command.
+%
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
-% Things to be expanded by \internalsetq
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
-\def\Ypagenumber{\folio}
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref. That is, the magic
+% \thissection value which we \setref above.
+%
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string. If so, #2 will be the
+% (safe) float type for this float. We set \iffloattype to #2.
+%
+\def\doiffloat#1=#2=#3\finish{%
+ \def\temp{#1}%
+ \def\iffloattype{#2}%
+ \ifx\temp\floatmagic
+}
-\def\Ynothing{}
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+%
+\parseargdef\listoffloats{%
+ \def\floattype{#1}% floattype
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ %
+ % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+ \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+ \ifhavexrefs
+ % if the user said @listoffloats foo but never @float foo.
+ \message{\linenumber No `\safefloattype' floats to list.}%
+ \fi
+ \else
+ \begingroup
+ \leftskip=\tocindent % indent these entries like a toc
+ \let\do=\listoffloatsdo
+ \csname floatlist\safefloattype\endcsname
+ \endgroup
+ \fi
+}
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 chapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 section\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-section\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-section\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Define @refx to reference a specific cross-reference string.
-
-\def\refx#1{%
-{%
-\expandafter\ifx\csname X#1\endcsname\relax
-% If not defined, say something at least.
-\expandafter\gdef\csname X#1\endcsname {$<$undefined$>$}%
-\message {WARNING: Cross-reference "#1" used but not yet defined}%
-\message {}%
-\fi %
-\csname X#1\endcsname %It's defined, so just use it.
+% This is called on each entry in a list of floats. We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file. We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+%
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+%
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+ % Can't fully expand XR#1-lof because it can contain anything. Just
+ % pass the control sequence. On the other hand, XR#1-pg is just the
+ % page number, and we want to fully expand that so we can get a link
+ % in pdf output.
+ \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+ %
+ % use the same \entry macro we use to generate the TOC and index.
+ \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+ \writeentry
}}
-% Read the last existing aux file, if any. No error if none exists.
+\message{localization,}
+% and i18n.
-% This is the macro invoked by entries in the aux file.
-\def\xrdef #1#2{
-{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}}
+% @documentlanguage is usually given very early, just after
+% @setfilename. If done too late, it may not override everything
+% properly. Single argument is the language abbreviation.
+% It would be nice if we could set up a hyphenation file here.
+%
+\parseargdef\documentlanguage{%
+ \tex % read txi-??.tex file in plain TeX.
+ % Read the file if it exists.
+ \openin 1 txi-#1.tex
+ \ifeof 1
+ \errhelp = \nolanghelp
+ \errmessage{Cannot read language file txi-#1.tex}%
+ \else
+ \input txi-#1.tex
+ \fi
+ \closein 1
+ \endgroup
+}
+\newhelp\nolanghelp{The given language definition file cannot be found or
+is empty. Maybe you need to install it? In the current directory
+should work if nowhere else does.}
-{
-\catcode `\^^@=\other
-\catcode `\\ 1=\other
-\catcode `\\ 2=\other
-\catcode `\^^C=\other
-\catcode `\^^D=\other
-\catcode `\^^E=\other
-\catcode `\^^F=\other
-\catcode `\^^G=\other
-\catcode `\^^H=\other
-\catcode `\\v=\other
-\catcode `\^^L=\other
-\catcode `\\ e=\other
-\catcode `\\ f=\other
-\catcode `\\10=\other
-\catcode `\\11=\other
-\catcode `\\12=\other
-\catcode `\\13=\other
-\catcode `\\14=\other
-\catcode `\\15=\other
-\catcode `\\16=\other
-\catcode `\\17=\other
-\catcode `\\18=\other
-\catcode `\\19=\other
-\catcode `\\1a=\other
-\catcode `\^^[=\other
-\catcode `\^^\=\other
-\catcode `\^^]=\other
-\catcode `\^^^=\other
-\catcode `\^^_=\other
-\catcode `\@=\other
-\catcode `\^=\other
-\catcode `\~=\other
-\catcode `\[=\other
-\catcode `\]=\other
-\catcode`\"=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode `\$=\other
-\catcode `\#=\other
-\catcode `\&=\other
-% the aux file uses ' as the escape.
-% Turn off \ as an escape so we do not lose on
-% entries which were dumped with control sequences in their names.
-% For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
-% Reference to such entries still does not work the way one would wish,
-% but at least they do not bomb out when the aux file is read in.
+% @documentencoding should change something in TeX eventually, most
+% likely, but for now just recognize it.
+\let\documentencoding = \comment
+
+
+% Page size parameters.
+%
+\newdimen\defaultparindent \defaultparindent = 15pt
+
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
+% Prevent underfull vbox error messages.
+\vbadness = 10000
+
+% Don't be so finicky about underfull hboxes, either.
+\hbadness = 2000
-\catcode `\{=1 \catcode `\}=2
-\catcode `\%=\other
-\catcode `\'=0
-\catcode `\\=\other
+% Following George Bush, just get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
-'openin 1 'jobname.aux
-'ifeof 1 'else 'closein 1 'input 'jobname.aux
-'fi
+% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+% using an old version of TeX, don't do anything. We want the amount of
+% stretch added to depend on the line length, hence the dependence on
+% \hsize. We call this whenever the paper size is set.
+%
+\def\setemergencystretch{%
+ \ifx\emergencystretch\thisisundefined
+ % Allow us to assign to \emergencystretch anyway.
+ \def\emergencystretch{\dimen0}%
+ \else
+ \emergencystretch = .15\hsize
+ \fi
}
-% Open the new aux file. Tex will close it automatically at exit.
+% Parameters in order: 1) textheight; 2) textwidth;
+% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
+% 7) physical page height; 8) physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading. The caller should also set \parskip.
+%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
+ \voffset = #3\relax
+ \topskip = #6\relax
+ \splittopskip = \topskip
+ %
+ \vsize = #1\relax
+ \advance\vsize by \topskip
+ \outervsize = \vsize
+ \advance\outervsize by 2\topandbottommargin
+ \pageheight = \vsize
+ %
+ \hsize = #2\relax
+ \outerhsize = \hsize
+ \advance\outerhsize by 0.5in
+ \pagewidth = \hsize
+ %
+ \normaloffset = #4\relax
+ \bindingoffset = #5\relax
+ %
+ \ifpdf
+ \pdfpageheight #7\relax
+ \pdfpagewidth #8\relax
+ \fi
+ %
+ \setleading{\textleading}
+ %
+ \parindent = \defaultparindent
+ \setemergencystretch
+}
-\openout \auxfile=\jobname.aux
+% @letterpaper (the default).
+\def\letterpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % If page is nothing but text, make it come out even.
+ \internalpagesizes{46\baselineskip}{6in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{36pt}%
+ {11in}{8.5in}%
+}}
-% Footnotes.
+% Use @smallbook to reset parameters for 7x9.25 trim size.
+\def\smallbook{{\globaldefs = 1
+ \parskip = 2pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.5in}{5in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{16pt}%
+ {9.25in}{7in}%
+ %
+ \lispnarrowing = 0.3in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .5cm
+}}
-\newcount \footnoteno
+% Use @smallerbook to reset parameters for 6x9 trim size.
+% (Just testing, parameters still in flux.)
+\def\smallerbook{{\globaldefs = 1
+ \parskip = 1.5pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.4in}{4.8in}%
+ {-.2in}{-.4in}%
+ {0pt}{14pt}%
+ {9in}{6in}%
+ %
+ \lispnarrowing = 0.25in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .4cm
+}}
-\def\supereject{\par\penalty -20000\footnoteno =0 }
+% Use @afourpaper to print on European A4 paper.
+\def\afourpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % Double-side printing via postscript on Laserjet 4050
+ % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+ % To change the settings for a different printer or situation, adjust
+ % \normaloffset until the front-side and back-side texts align. Then
+ % do the same for \bindingoffset. You can set these for testing in
+ % your texinfo source file like this:
+ % @tex
+ % \global\normaloffset = -6mm
+ % \global\bindingoffset = 10mm
+ % @end tex
+ \internalpagesizes{51\baselineskip}{160mm}
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{44pt}%
+ {297mm}{210mm}%
+ %
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 5mm
+}}
-\let\ptexfootnote=\footnote
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+ \parskip = 2pt plus 1pt minus 0.1pt
+ \textleading = 12.5pt
+ %
+ \internalpagesizes{160mm}{120mm}%
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{8pt}%
+ {210mm}{148mm}%
+ %
+ \lispnarrowing = 0.2in
+ \tolerance = 800
+ \hfuzz = 1.2pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 2mm
+ \tableindent = 12mm
+}}
-{\catcode `\@=11
-\gdef\footnote{\global\advance \footnoteno by \@ne
-\edef\thisfootno{$^{\the\footnoteno}$}%
-\let\@sf\empty
-\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
-\thisfootno\@sf\parsearg\footnotezzz}
-
-\gdef\footnotezzz #1{\insert\footins{
-\interlinepenalty\interfootnotelinepenalty
-\splittopskip\ht\strutbox % top baseline for broken footnotes
-\splitmaxdepth\dp\strutbox \floatingpenalty\@MM
-\leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
-\footstrut\hang\textindent{\thisfootno}#1\strut}}
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{237mm}{150mm}%
+ {\voffset}{4.6mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ %
+ % Must explicitly reset to 0 because we call \afourpaper.
+ \globaldefs = 0
+}}
-}%end \catcode `\@=11
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{241mm}{165mm}%
+ {\voffset}{-2.95mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ \globaldefs = 0
+}}
-% End of control word definitions.
+% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+% Perhaps we should allow setting the margins, \topskip, \parskip,
+% and/or leading, also. Or perhaps we should compute them somehow.
+%
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+\def\pagesizesyyy#1,#2,#3\finish{{%
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+ \globaldefs = 1
+ %
+ \parskip = 3pt plus 2pt minus 1pt
+ \setleading{\textleading}%
+ %
+ \dimen0 = #1
+ \advance\dimen0 by \voffset
+ %
+ \dimen2 = \hsize
+ \advance\dimen2 by \normaloffset
+ %
+ \internalpagesizes{#1}{\hsize}%
+ {\voffset}{\normaloffset}%
+ {\bindingoffset}{44pt}%
+ {\dimen0}{\dimen2}%
+}}
-\message{and turning on texinfo input format.}
+% Set default to letter.
+%
+\letterpaper
-\newindex{cp}
-\newcodeindex{fn}
-\newcodeindex{vr}
-\newcodeindex{tp}
-\newcodeindex{ky}
-\newcodeindex{pg}
-% Set some numeric style parameters, for 8.5 x 11 format.
+\message{and turning on texinfo input format.}
-\hsize = 6.5in
-\parindent 15pt
-\parskip 18pt plus 1pt
-\baselineskip 15pt
-\advance\topskip by 1.2cm
+% Define macros to output various characters with catcode for normal text.
+\catcode`\"=\other
+\catcode`\~=\other
+\catcode`\^=\other
+\catcode`\_=\other
+\catcode`\|=\other
+\catcode`\<=\other
+\catcode`\>=\other
+\catcode`\+=\other
+\catcode`\$=\other
+\def\normaldoublequote{"}
+\def\normaltilde{~}
+\def\normalcaret{^}
+\def\normalunderscore{_}
+\def\normalverticalbar{|}
+\def\normalless{<}
+\def\normalgreater{>}
+\def\normalplus{+}
+\def\normaldollar{$}%$ font-lock fix
+
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
+% where something hairier probably needs to be done.
+%
+% #1 is what to print if we are indeed using \tt; #2 is what to print
+% otherwise. Since all the Computer Modern typewriter fonts have zero
+% interword stretch (and shrink), and it is reasonable to expect all
+% typewriter fonts to have this, we can check that font parameter.
+%
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
-% Prevent underfull vbox error messages.
-\vbadness=10000
-
-% Use @smallbook to reset parameters for 7x9.5 format
-\def\smallbook{
-\global\lispnarrowing = 0.3in
-\global\baselineskip 12pt
-\global\parskip 3pt plus 1pt
-\global\hsize = 5in
-\global\doublecolumnhsize=2.4in \global\doublecolumnvsize=15.0in
-\global\vsize=7.5in
-\global\tolerance=700
-\global\hfuzz=1pt
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-\global\font\ninett=cmtt9
-
-\global\let\smalllisp=\smalllispx
-\global\let\smallexample=\smalllispx
-\global\def\Esmallexample{\Esmalllisp}
-}
-
-%% For a final copy, take out the rectangles
-%% that mark overfull boxes (in case you have decided
-%% that the text looks ok even though it passes the margin).
-\def\finalout{\overfullrule=0pt}
+% Same as above, but check for italic font. Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts. But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary)
-% Define certain chars to be always in tt font.
+% (and those which the user can use as if they were ordinary).
+% Most of these we simply print from the \tt font, but for some, we can
+% use math or other variants that look better in normal text.
\catcode`\"=\active
-\def\activedoublequote{{\tt \char '042}}
+\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
\catcode`\~=\active
-\def~{{\tt \char '176}}
+\def~{{\tt\char126}}
\chardef\hat=`\^
\catcode`\^=\active
\def^{{\tt \hat}}
+
\catcode`\_=\active
-\def_{{\tt \char '137}}
+\def_{\ifusingtt\normalunderscore\_}
+\let\realunder=_
+% Subroutine for the previous macro.
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+
\catcode`\|=\active
-\def|{{\tt \char '174}}
+\def|{{\tt\char124}}
\chardef \less=`\<
\catcode`\<=\active
\def<{{\tt \less}}
\chardef \gtr=`\>
\catcode`\>=\active
\def>{{\tt \gtr}}
+\catcode`\+=\active
+\def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \everyjob (or @setfilename) turn them on.
+% \otherifyactive is called near the end of this file.
+\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+% Used sometimes to turn off (effectively) the active characters even after
+% parsing them.
+\def\turnoffactive{%
+ \normalturnoffactive
+ \otherbackslash
+}
\catcode`\@=0
-% \rawbackslashxx output one backslash character in current font
-{\catcode`\\=\other
-@gdef@rawbackslashxx{\}}
+% \backslashcurfont outputs one backslash character in current font,
+% as in \char`\\.
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
+
+% \realbackslash is an actual character `\' with catcode other, and
+% \doublebackslash is two of them (for the pdf outlines).
+{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
+
+% In texinfo, backslash is an active character; it prints the backslash
+% in fixed width font.
+\catcode`\\=\active
+@def@normalbackslash{{@tt@backslashcurfont}}
+% On startup, @fixbackslash assigns:
+% @let \ = @normalbackslash
+
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+@gdef@rawbackslash{@let\=@backslashcurfont}
+@gdef@otherbackslash{@let\=@realbackslash}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.
+%
+@def@normalturnoffactive{%
+ @let\=@normalbackslash
+ @let"=@normaldoublequote
+ @let~=@normaltilde
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let<=@normalless
+ @let>=@normalgreater
+ @let+=@normalplus
+ @let$=@normaldollar %$ font-lock fix
+ @unsepspaces
+}
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
+% Make _ and + \other characters, temporarily.
+% This is canceled by @fixbackslash.
+@otherifyactive
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
+% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+% That is what \eatinput is for; after that, the `\' should revert to printing
+% a backslash.
+%
+@gdef@eatinput input texinfo{@fixbackslash}
+@global@let\ = @eatinput
+
+% On the other hand, perhaps the file did not have a `\input texinfo'. Then
+% the first `\' in the file would cause an error. This macro tries to fix
+% that, assuming it is called before the first `\' could plausibly occur.
+% Also turn back on active characters that might appear in the input
+% file name, in case not using a pre-dumped format.
+%
+@gdef@fixbackslash{%
+ @ifx\@eatinput @let\ = @normalbackslash @fi
+ @catcode`+=@active
+ @catcode`@_=@active
+}
% Say @foo, not \foo, in error messages.
-\escapechar=`\@
+@escapechar = `@@
-%% These look ok in all fonts, so just make them not special. The @rm below
-%% makes sure that the current font starts out as the newly loaded cmr10
-\catcode`\$=\other \catcode`\%=\other \catcode`\&=\other \catcode`\#=\other
+% These look ok in all fonts, so just make them not special.
+@catcode`@& = @other
+@catcode`@# = @other
+@catcode`@% = @other
-\catcode 17=0 @c Define control-q
-\catcode`\\=\active
-@let\=@normalbackslash
-@textfonts
-@rm
+@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c page-delimiter: "^\\\\message"
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d.%02H"
+@c time-stamp-end: "}"
+@c End:
+
+@c vim:sw=2:
+
+@ignore
+ arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore
res_gdt.o \
rw_bitmaps.o \
swapfs.o \
+ symlink.o \
tdb.o \
undo_io.o \
unix_io.o \
$(srcdir)/res_gdt.c \
$(srcdir)/rw_bitmaps.c \
$(srcdir)/swapfs.c \
+ $(srcdir)/symlink.c \
$(srcdir)/tdb.c \
$(srcdir)/test_io.c \
$(srcdir)/tst_badblocks.c \
ELF_IMAGE = libext2fs
ELF_MYDIR = ext2fs
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -lcom_err
+ELF_OTHER_LIBS = -lcom_err
BSDLIB_VERSION = 2.1
BSDLIB_IMAGE = libext2fs
$(E) " CONFIG.STATUS $@"
$(Q) cd $(top_builddir); CONFIG_FILES=lib/ext2fs/ext2fs.pc ./config.status
-tst_badblocks: tst_badblocks.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_badblocks: tst_badblocks.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_badblocks tst_badblocks.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR)
-tst_icount: $(srcdir)/icount.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_icount: $(srcdir)/icount.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_icount $(srcdir)/icount.c -DDEBUG $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
-tst_iscan: tst_iscan.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_iscan: tst_iscan.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o tst_iscan tst_iscan.o $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(Q) $(CC) -o tst_iscan tst_iscan.o $(STATIC_LIBEXT2FS) \
+ $(STATIC_LIBCOM_ERR)
-tst_getsize: tst_getsize.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_getsize: tst_getsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_getsize tst_getsize.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR)
-tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_ismounted: $(srcdir)/ismounted.c $(STATIC_LIBEXT2FS) \
+ $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_ismounted $(srcdir)/ismounted.c \
$(STATIC_LIBEXT2FS) -DDEBUG $(ALL_CFLAGS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR)
-tst_byteswap: tst_byteswap.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_byteswap: tst_byteswap.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_byteswap tst_byteswap.o $(STATIC_LIBEXT2FS) \
- $(LIBCOM_ERR)
+ $(STATIC_LIBCOM_ERR)
-tst_bitops: tst_bitops.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_bitops: tst_bitops.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_bitops tst_bitops.o $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
-tst_getsectsize: tst_getsectsize.o $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_getsectsize: tst_getsectsize.o $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_sectgetsize tst_getsectsize.o \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
tst_types.o: $(srcdir)/tst_types.c ext2_types.h
$(Q) $(MK_CMDS) $(srcdir)/extent_dbg.ct
debug_cmds.c debug_cmds.h: $(top_srcdir)/debugfs/debug_cmds.ct
- $(E) " MK_CMDS $<@"
+ $(E) " MK_CMDS $<"
$(Q) $(MK_CMDS) $(top_srcdir)/debugfs/debug_cmds.ct
+extent_cmds.c extent_cmds.h: $(top_srcdir)/debugfs/extent_cmds.ct
+ $(E) " MK_CMDS $<"
+ $(Q) $(MK_CMDS) $(top_srcdir)/debugfs/extent_cmds.ct
+
DEBUG_OBJS= debug_cmds.o debugfs.o util.o ncheck.o icheck.o ls.o \
lsdel.o dump.o set_fields.o logdump.o htree.o unused.o \
- e2freefrag.o filefrag.o
+ e2freefrag.o filefrag.o extent_inode.o extent_cmds.o
debugfs.o: $(top_srcdir)/debugfs/debugfs.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+extent_inode.o: $(top_srcdir)/debugfs/extent_inode.c
+ $(E) " CC $<"
+ $(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
+
util.o: $(top_srcdir)/debugfs/util.c
$(E) " CC $<"
$(Q) $(CC) $(ALL_CFLAGS) -c $< -o $@
$(E) " MK_CMDS $@"
$(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/tst_bitmaps_cmd.ct
-tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(STATIC_LIBEXT2FS) $(DEPLIBSS) \
- $(DEPLIBCOM_ERR)
+tst_bitmaps: tst_bitmaps.o tst_bitmaps_cmd.o $(STATIC_LIBEXT2FS) \
+ $(DEPSTATIC_LIBSS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o $@ tst_bitmaps.o tst_bitmaps_cmd.o $(ALL_CFLAGS) \
- $(STATIC_LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBSS) $(STATIC_LIBCOM_ERR)
-tst_extents: $(srcdir)/extent.c extent_dbg.c $(DEBUG_OBJS) $(DEPLIBSS) \
- $(LIBE2P) $(DEPLIBUUID) $(DEPLIBBLKID) $(DEPLIBCOM_ERR)
+tst_extents: $(srcdir)/extent.c $(DEBUG_OBJS) $(DEPSTATIC_LIBSS) \
+ $(STATIC_LIBE2P) $(DEPLIBUUID) $(DEPLIBBLKID) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
- $(Q) $(CC) -o tst_extents $(srcdir)/extent.c extent_dbg.c \
- $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) $(LIBSS) $(LIBE2P) \
- $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) $(LIBCOM_ERR) \
- -I $(top_srcdir)/debugfs
+ $(Q) $(CC) -o tst_extents $(srcdir)/extent.c \
+ $(ALL_CFLAGS) -DDEBUG $(DEBUG_OBJS) $(STATIC_LIBSS) \
+ $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(LIBBLKID) $(LIBUUID) \
+ $(STATIC_LIBCOM_ERR) -I $(top_srcdir)/debugfs
-tst_inline: $(srcdir)/inline.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
+tst_inline: $(srcdir)/inline.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(E) " LD $@"
$(Q) $(CC) -o tst_inline $(srcdir)/inline.c $(ALL_CFLAGS) -DDEBUG \
- $(STATIC_LIBEXT2FS) $(LIBCOM_ERR)
+ $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
-tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR) \
+tst_csum: csum.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR) $(STATIC_LIBE2P) \
$(top_srcdir)/lib/e2p/e2p.h
$(E) " LD $@"
$(Q) $(CC) -o tst_csum $(srcdir)/csum.c -DDEBUG \
- $(ALL_CFLAGS) $(STATIC_LIBEXT2FS) $(LIBCOM_ERR) $(LIBE2P)
+ $(ALL_CFLAGS) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \
+ $(STATIC_LIBE2P)
-tst_crc32c: $(srcdir)/crc32c.c
+tst_crc32c: $(srcdir)/crc32c.c $(STATIC_LIBEXT2FS) $(DEPSTATIC_LIBCOM_ERR)
$(Q) $(CC) $(BUILD_LDFLAGS) $(ALL_CFLAGS) -o tst_crc32c $(srcdir)/crc32c.c \
- -DUNITTEST
+ -DUNITTEST $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR)
mkjournal: mkjournal.c $(STATIC_LIBEXT2FS) $(DEPLIBCOM_ERR)
$(E) " LD $@"
tst_badblocks tst_iscan ext2_err.et ext2_err.c ext2_err.h \
tst_byteswap tst_ismounted tst_getsize tst_sectgetsize \
tst_bitops tst_types tst_icount tst_super_size tst_csum \
- tst_bitmaps tst_bitmaps_out tst_bitmaps_cmd.c \
- ext2_tdbtool mkjournal debug_cmds.c \
+ tst_bitmaps tst_bitmaps_out tst_extents tst_inline \
+ tst_inline_data tst_inode_size tst_bitmaps_cmd.c \
+ ext2_tdbtool mkjournal debug_cmds.c extent_cmds.c \
../libext2fs.a ../libext2fs_p.a ../libext2fs_chk.a \
crc32c_table.h gen_crc32ctable tst_crc32c
$(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
+symlink.o: $(srcdir)/symlink.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/ext2_fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(srcdir)/ext2fs.h \
+ $(srcdir)/ext2_fs.h $(srcdir)/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(srcdir)/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(srcdir)/ext2_ext_attr.h $(srcdir)/bitops.h
tdb.o: $(srcdir)/tdb.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/tdb.h
test_io.o: $(srcdir)/test_io.c $(top_builddir)/lib/config.h \
!(ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT)))
return;
- blk = (group * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
+ blk = ext2fs_group_first_block2(fs, group);
ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
&old_desc_blk, &new_desc_blk, 0);
for (i=0; i < fs->super->s_blocks_per_group; i++, blk++)
ext2fs_fast_unmark_block_bitmap2(map, blk);
- blk = (group * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
+ blk = ext2fs_group_first_block2(fs, group);
for (i=0; i < fs->super->s_blocks_per_group; i++, blk++) {
if ((blk == super_blk) ||
(old_desc_blk && old_desc_blocks &&
{
blk64_t super_blk, old_desc_blk, new_desc_blk;
blk_t used_blks;
- int j, old_desc_blocks, num_blocks;
+ int old_desc_blocks, num_blocks;
ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
&old_desc_blk, &new_desc_blk, &used_blks);
if (old_desc_blk) {
if (fs->super->s_reserved_gdt_blocks && fs->block_map == bmap)
ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
- for (j=0; j < old_desc_blocks; j++)
- if (old_desc_blk + j < ext2fs_blocks_count(fs->super))
- ext2fs_mark_block_bitmap2(bmap,
- old_desc_blk + j);
+ num_blocks = old_desc_blocks;
+ if (old_desc_blk + num_blocks >= ext2fs_blocks_count(fs->super))
+ num_blocks = ext2fs_blocks_count(fs->super) -
+ old_desc_blk;
+ ext2fs_mark_block_bitmap_range2(bmap, old_desc_blk, num_blocks);
}
if (new_desc_blk)
ext2fs_mark_block_bitmap2(bmap, new_desc_blk);
return (mask & *ADDR);
}
+static unsigned int popcount8(unsigned int w)
+{
+ unsigned int res = w - ((w >> 1) & 0x55);
+ res = (res & 0x33) + ((res >> 2) & 0x33);
+ return (res + (res >> 4)) & 0x0F;
+}
+
+static unsigned int popcount32(unsigned int w)
+{
+ unsigned int res = w - ((w >> 1) & 0x55555555);
+ res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
+ res = (res + (res >> 4)) & 0x0F0F0F0F;
+ res = res + (res >> 8);
+ return (res + (res >> 16)) & 0x000000FF;
+}
+
+unsigned int ext2fs_bitcount(const void *addr, unsigned int nbytes)
+{
+ const unsigned char *cp = addr;
+ const __u32 *p;
+ unsigned int res = 0;
+
+ while (((((unsigned long) cp) & 3) != 0) && (nbytes > 0)) {
+ res += popcount8(*cp++);
+ nbytes--;
+ }
+ p = (const __u32 *) cp;
+
+ while (nbytes > 4) {
+ res += popcount32(*p++);
+ nbytes -= 4;
+ }
+ cp = (const unsigned char *) p;
+
+ while (nbytes > 0) {
+ res += popcount8(*cp++);
+ nbytes--;
+ }
+ return res;
+}
* %End-Header%
*/
-extern int ext2fs_set_bit(unsigned int nr,void * addr);
-extern int ext2fs_clear_bit(unsigned int nr, void * addr);
-extern int ext2fs_test_bit(unsigned int nr, const void * addr);
-extern void ext2fs_fast_set_bit(unsigned int nr,void * addr);
-extern void ext2fs_fast_clear_bit(unsigned int nr, void * addr);
-extern int ext2fs_set_bit64(__u64 nr,void * addr);
-extern int ext2fs_clear_bit64(__u64 nr, void * addr);
-extern int ext2fs_test_bit64(__u64 nr, const void * addr);
-extern void ext2fs_fast_set_bit64(__u64 nr,void * addr);
-extern void ext2fs_fast_clear_bit64(__u64 nr, void * addr);
-extern __u16 ext2fs_swab16(__u16 val);
-extern __u32 ext2fs_swab32(__u32 val);
-extern __u64 ext2fs_swab64(__u64 val);
-
#ifdef WORDS_BIGENDIAN
#define ext2fs_cpu_to_le64(x) ext2fs_swab64((x))
#define ext2fs_le64_to_cpu(x) ext2fs_swab64((x))
extern void ext2fs_warn_bitmap2(ext2fs_generic_bitmap bitmap,
int code, unsigned long arg);
+#ifdef NO_INLINE_FUNCS
+extern void ext2fs_fast_set_bit(unsigned int nr,void * addr);
+extern void ext2fs_fast_clear_bit(unsigned int nr, void * addr);
+extern void ext2fs_fast_set_bit64(__u64 nr,void * addr);
+extern void ext2fs_fast_clear_bit64(__u64 nr, void * addr);
+extern __u16 ext2fs_swab16(__u16 val);
+extern __u32 ext2fs_swab32(__u32 val);
+extern __u64 ext2fs_swab64(__u64 val);
+
extern int ext2fs_mark_block_bitmap(ext2fs_block_bitmap bitmap, blk_t block);
extern int ext2fs_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
blk_t block);
extern blk_t ext2fs_get_block_bitmap_end(ext2fs_block_bitmap bitmap);
extern ext2_ino_t ext2fs_get_inode_bitmap_end(ext2fs_inode_bitmap bitmap);
+extern void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+#endif
+
+/* These functions routines moved to gen_bitmap.c */
extern void ext2fs_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
extern void ext2fs_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
extern int ext2fs_test_inode_bitmap_range(ext2fs_inode_bitmap bitmap,
ino_t inode, int num);
-extern void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
- blk_t block, int num);
-extern void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map);
-
-/* These routines moved to gen_bitmap.c (actually, some of the above, too) */
extern int ext2fs_mark_generic_bitmap(ext2fs_generic_bitmap bitmap,
__u32 bitno);
extern int ext2fs_unmark_generic_bitmap(ext2fs_generic_bitmap bitmap,
blk_t bitno);
extern int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
blk_t block, int num);
+extern void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map);
extern __u32 ext2fs_get_generic_bitmap_start(ext2fs_generic_bitmap bitmap);
extern __u32 ext2fs_get_generic_bitmap_end(ext2fs_generic_bitmap bitmap);
/* 64-bit versions */
+#ifdef NO_INLINE_FUNCS
extern int ext2fs_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
blk64_t block);
extern int ext2fs_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
extern void ext2fs_fast_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
blk64_t block,
unsigned int num);
+#endif
+
/* These routines moved to gen_bitmap64.c */
extern void ext2fs_clear_generic_bmap(ext2fs_generic_bitmap bitmap);
extern errcode_t ext2fs_compare_generic_bmap(errcode_t neq,
*/
#ifdef NO_INLINE_FUNCS
#if (defined(__GNUC__) && (defined(__i386__) || defined(__i486__) || \
- defined(__i586__) || defined(__mc68000__)))
+ defined(__i586__)))
/* This prevents bitops.c from trying to include the C */
/* function version of these functions */
#define _EXT2_HAVE_ASM_BITOPS_
#if (defined(INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
#ifdef INCLUDE_INLINE_FUNCS
-#define _INLINE_ extern
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ extern inline
#else
+#define _INLINE_ inline
+#endif
+#else /* !INCLUDE_INLINE FUNCS */
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else /* not C99 */
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
+#endif /* INCLUDE_INLINE_FUNCS */
/*
* Fast bit set/clear functions that doesn't need to return the
#endif /* i386 */
-#if ((defined __GNUC__) && !defined(_EXT2_USE_C_VERSIONS_) && \
- (defined(__mc68000__)))
-
-#define _EXT2_HAVE_ASM_BITOPS_
-
-_INLINE_ int ext2fs_set_bit(unsigned int nr,void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bfset %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-_INLINE_ int ext2fs_clear_bit(unsigned int nr, void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bfclr %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-_INLINE_ int ext2fs_test_bit(unsigned int nr, const void * addr)
-{
- char retval;
-
- __asm__ __volatile__ ("bftst %2@{%1:#1}; sne %0"
- : "=d" (retval) : "d" (nr^7), "a" (addr));
-
- return retval;
-}
-
-#endif /* __mc68000__ */
-
#if !defined(_EXT2_HAVE_ASM_SWAB_)
#undef _INLINE_
#endif
+#ifndef _EXT2_HAVE_ASM_BITOPS_
+extern int ext2fs_set_bit(unsigned int nr,void * addr);
+extern int ext2fs_clear_bit(unsigned int nr, void * addr);
+extern int ext2fs_test_bit(unsigned int nr, const void * addr);
+#endif
+
+extern int ext2fs_set_bit64(__u64 nr,void * addr);
+extern int ext2fs_clear_bit64(__u64 nr, void * addr);
+extern int ext2fs_test_bit64(__u64 nr, const void * addr);
+extern unsigned int ext2fs_bitcount(const void *addr, unsigned int nbytes);
struct ext2fs_rb_private {
struct rb_root root;
- struct bmap_rb_extent **wcursor;
- struct bmap_rb_extent **rcursor;
+ struct bmap_rb_extent *wcursor;
+ struct bmap_rb_extent *rcursor;
+ struct bmap_rb_extent *rcursor_next;
#ifdef BMAP_STATS_OPS
__u64 mark_hit;
__u64 test_hit;
#endif
};
+inline static struct bmap_rb_extent *node_to_extent(struct rb_node *node)
+{
+ /*
+ * This depends on the fact the struct rb_node is at the
+ * beginning of the bmap_rb_extent structure. We use this
+ * instead of the ext2fs_rb_entry macro because it causes gcc
+ * -Wall to generate a huge amount of noise.
+ */
+ return (struct bmap_rb_extent *) node;
+}
+
static int rb_insert_extent(__u64 start, __u64 count,
struct ext2fs_rb_private *);
static void rb_get_new_extent(struct bmap_rb_extent **, __u64, __u64);
node = ext2fs_rb_first(root);
for (node = ext2fs_rb_first(root); node != NULL;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
printf("\t\t\t--> (%llu -> %llu)\n",
ext->start, ext->start + ext->count);
}
printf("\t\t\t=================================\n");
}
-static int check_tree(struct rb_root *root, const char *msg)
+static void check_tree(struct rb_root *root, const char *msg)
{
struct rb_node *new_node, *node, *next;
struct bmap_rb_extent *ext, *old = NULL;
for (node = ext2fs_rb_first(root); node;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if (ext->count <= 0) {
printf("Tree Error: count is crazy\n");
printf("extent: %llu -> %llu (%u)\n", ext->start,
}
old = ext;
}
- return 0;
+ return;
err_out:
printf("%s\n", msg);
exit(1);
}
#else
-#define check_tree(root, msg) 0
-#define print_tree(root, msg) 0
+#define check_tree(root, msg) do {} while (0)
+#define print_tree(root, msg) do {} while (0)
#endif
static void rb_get_new_extent(struct bmap_rb_extent **ext, __u64 start,
static void rb_free_extent(struct ext2fs_rb_private *bp,
struct bmap_rb_extent *ext)
{
- if (*bp->wcursor == ext)
- *bp->wcursor = NULL;
- if (*bp->rcursor == ext)
- *bp->rcursor = NULL;
+ if (bp->wcursor == ext)
+ bp->wcursor = NULL;
+ if (bp->rcursor == ext)
+ bp->rcursor = NULL;
+ if (bp->rcursor_next == ext)
+ bp->rcursor_next = NULL;
ext2fs_free_mem(&ext);
}
return retval;
bp->root = RB_ROOT;
- retval = ext2fs_get_mem(sizeof(struct bmap_rb_extent *), &bp->rcursor);
- if (retval)
- return retval;
- retval = ext2fs_get_mem(sizeof(struct bmap_rb_extent *), &bp->wcursor);
- if (retval)
- return retval;
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+ bp->wcursor = NULL;
#ifdef BMAP_STATS_OPS
bp->test_hit = 0;
for (node = ext2fs_rb_first(root); node; node = next) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
ext2fs_rb_erase(node, root);
ext2fs_free_mem(&ext);
}
bp = (struct ext2fs_rb_private *) bitmap->private;
rb_free_tree(&bp->root);
- ext2fs_free_mem(&bp->rcursor);
- ext2fs_free_mem(&bp->wcursor);
ext2fs_free_mem(&bp);
bp = 0;
}
src_bp = (struct ext2fs_rb_private *) src->private;
dest_bp = (struct ext2fs_rb_private *) dest->private;
- *src_bp->rcursor = NULL;
- *dest_bp->rcursor = NULL;
+ src_bp->rcursor = NULL;
+ dest_bp->rcursor = NULL;
src_node = ext2fs_rb_first(&src_bp->root);
while (src_node) {
- src_ext = ext2fs_rb_entry(src_node, struct bmap_rb_extent, node);
+ src_ext = node_to_extent(src_node);
retval = ext2fs_get_mem(sizeof (struct bmap_rb_extent),
&dest_ext);
if (retval)
node = ext2fs_rb_last(root);
while (node) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count - 1) <= new_max)
break;
}
bp = (struct ext2fs_rb_private *) bmap->private;
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ bp->rcursor = NULL;
+ bp->wcursor = NULL;
/* truncate tree to new_real_end size */
rb_truncate(new_real_end, &bp->root);
inline static int
rb_test_bit(struct ext2fs_rb_private *bp, __u64 bit)
{
- struct bmap_rb_extent *rcursor;
- struct rb_node *parent = NULL;
+ struct bmap_rb_extent *rcursor, *next_ext = NULL;
+ struct rb_node *parent = NULL, *next;
struct rb_node **n = &bp->root.rb_node;
struct bmap_rb_extent *ext;
- rcursor = *bp->rcursor;
+ rcursor = bp->rcursor;
if (!rcursor)
goto search_tree;
return 1;
}
- rcursor = *bp->wcursor;
+ next_ext = bp->rcursor_next;
+ if (!next_ext) {
+ next = ext2fs_rb_next(&rcursor->node);
+ if (next)
+ next_ext = node_to_extent(next);
+ bp->rcursor_next = next_ext;
+ }
+ if (next_ext) {
+ if ((bit >= rcursor->start + rcursor->count) &&
+ (bit < next_ext->start)) {
+#ifdef BMAP_STATS_OPS
+ bp->test_hit++;
+#endif
+ return 0;
+ }
+ }
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+
+ rcursor = bp->wcursor;
if (!rcursor)
goto search_tree;
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (bit < ext->start)
n = &(*n)->rb_left;
else if (bit >= (ext->start + ext->count))
n = &(*n)->rb_right;
else {
- *bp->rcursor = ext;
+ bp->rcursor = ext;
+ bp->rcursor_next = NULL;
return 1;
}
}
struct bmap_rb_extent *ext;
int retval = 0;
- ext = *bp->wcursor;
+ bp->rcursor_next = NULL;
+ ext = bp->wcursor;
if (ext) {
if (start >= ext->start &&
start <= (ext->start + ext->count)) {
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
new_node = &new_ext->node;
ext2fs_rb_link_node(new_node, parent, n);
ext2fs_rb_insert_color(new_node, root);
- *bp->wcursor = new_ext;
+ bp->wcursor = new_ext;
node = ext2fs_rb_prev(new_node);
if (node) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count) == start) {
start = ext->start;
count += ext->count;
/* See if we can merge extent to the right */
for (node = ext2fs_rb_next(new_node); node != NULL; node = next) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
if ((ext->start + ext->count) <= start)
continue;
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
continue;
/* See if we should delete or truncate extent on the right */
for (; parent != NULL; parent = node) {
node = ext2fs_rb_next(parent);
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if ((ext->start + ext->count) <= start)
continue;
*/
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
} else if (start >= (ext->start + ext->count)) {
node = parent;
while (node) {
next = ext2fs_rb_next(node);
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
node = next;
if ((ext->start + ext->count) <= start)
__u64 start, size_t num, void *in)
{
struct ext2fs_rb_private *bp;
+ unsigned char *cp = in;
size_t i;
- int ret;
+ int first_set = -1;
bp = (struct ext2fs_rb_private *) bitmap->private;
for (i = 0; i < num; i++) {
- ret = ext2fs_test_bit(i, in);
- if (ret)
- rb_insert_extent(start + i - bitmap->start, 1, bp);
+ if ((i & 7) == 0) {
+ unsigned char c = cp[i/8];
+ if (c == 0xFF) {
+ if (first_set == -1)
+ first_set = i;
+ i += 7;
+ continue;
+ }
+ if ((c == 0x00) && (first_set == -1)) {
+ i += 7;
+ continue;
+ }
+ }
+ if (ext2fs_test_bit(i, in)) {
+ if (first_set == -1)
+ first_set = i;
+ continue;
+ }
+ if (first_set == -1)
+ continue;
+
+ rb_insert_extent(start + first_set - bitmap->start,
+ i - first_set, bp);
+ first_set = -1;
}
+ if (first_set != -1)
+ rb_insert_extent(start + first_set - bitmap->start,
+ num - first_set, bp);
return 0;
}
struct rb_node *parent = NULL, *next, **n;
struct ext2fs_rb_private *bp;
struct bmap_rb_extent *ext;
+ int count;
__u64 pos;
bp = (struct ext2fs_rb_private *) bitmap->private;
while (*n) {
parent = *n;
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
if (start < ext->start) {
n = &(*n)->rb_left;
} else if (start >= (ext->start + ext->count)) {
break;
}
- pos = start;
+ memset(out, 0, (num + 7) >> 3);
+
for (; parent != NULL; parent = next) {
next = ext2fs_rb_next(parent);
- ext = ext2fs_rb_entry(parent, struct bmap_rb_extent, node);
+ ext = node_to_extent(parent);
- while (((pos - start) < num) &&
- (pos < ext->start)) {
- ext2fs_fast_clear_bit64((pos - start), out);
- pos++;
+ pos = ext->start;
+ count = ext->count;
+ if (pos >= start + num)
+ break;
+ if (pos < start) {
+ count -= start - pos;
+ if (count < 0)
+ continue;
+ pos = start;
}
-
- if ((pos - start) >= num)
- return 0;
-
- while (((pos - start) < num) &&
- (pos < (ext->start + ext->count))) {
+ if (pos + count > start + num)
+ count = start + num - pos;
+
+ while (count > 0) {
+ if ((count >= 8) &&
+ ((pos - start) % 8) == 0) {
+ int nbytes = count >> 3;
+ int offset = (pos - start) >> 3;
+
+ memset(((char *) out) + offset, 0xFF, nbytes);
+ pos += nbytes << 3;
+ count -= nbytes << 3;
+ continue;
+ }
ext2fs_fast_set_bit64((pos - start), out);
pos++;
+ count--;
}
}
-
- while ((pos - start) < num) {
- ext2fs_fast_clear_bit64((pos - start), out);
- pos++;
- }
-
return 0;
}
bp = (struct ext2fs_rb_private *) bitmap->private;
rb_free_tree(&bp->root);
- *bp->rcursor = NULL;
- *bp->wcursor = NULL;
+ bp->rcursor = NULL;
+ bp->rcursor_next = NULL;
+ bp->wcursor = NULL;
}
#ifdef BMAP_STATS
node = ext2fs_rb_first(&bp->root);
for (node = ext2fs_rb_first(&bp->root); node != NULL;
node = ext2fs_rb_next(node)) {
- ext = ext2fs_rb_entry(node, struct bmap_rb_extent, node);
+ ext = node_to_extent(node);
count++;
if (ext->count > max_size)
max_size = ext->count;
extent.e_lblk, extent.e_pblk,
extent.e_len, blockcnt);
#endif
- if (extent.e_lblk + extent.e_len <= blockcnt)
+ if (extent.e_lblk + extent.e_len <= (blk64_t) blockcnt)
continue;
- if (extent.e_lblk > blockcnt)
+ if (extent.e_lblk > (blk64_t) blockcnt)
blockcnt = extent.e_lblk;
j = blockcnt - extent.e_lblk;
blk += j;
int *blocks_alloc,
blk_t nr, blk_t *ret_blk)
{
- blk_t b;
+ blk_t b = 0;
errcode_t retval;
blk_t addr_per_block;
int *blocks_alloc,
blk_t nr, blk_t *ret_blk)
{
- blk_t b;
+ blk_t b = 0;
errcode_t retval;
blk_t addr_per_block;
#include "ext2_fs.h"
#include "ext2fsP.h"
-static int test_root(int a, int b)
+static int test_root(unsigned int a, unsigned int b)
{
- if (a == 0)
- return 1;
while (1) {
- if (a == 1)
+ if (a < b)
+ return 0;
+ if (a == b)
return 1;
if (a % b)
return 0;
}
}
-int ext2fs_bg_has_super(ext2_filsys fs, int group_block)
+int ext2fs_bg_has_super(ext2_filsys fs, dgrp_t group)
{
if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) || group <= 1)
return 1;
-
- if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
- test_root(group_block, 7))
+ if (!(group & 1))
+ return 0;
+ if (test_root(group, 3) || (test_root(group, 5)) ||
+ test_root(group, 7))
return 1;
return 0;
crc = (__force uint32_t) __cpu_to_le32(crc);
p8 = buf;
- p32 = (uint32_t *)PTR_ALIGN(p8, 8);
+ p32 = (const uint32_t *)PTR_ALIGN(p8, 8);
init_bytes = min((uintptr_t)p32 - (uintptr_t)p8, len);
words = (len - init_bytes) >> 3;
end_bytes = (len - init_bytes) & 7;
#endif
}
- p8 = (uint8_t *)(++p32);
+ p8 = (const uint8_t *)(++p32);
for (i = 0; i < end_bytes; i++) {
#ifndef WORDS_BIGENDIAN
crc = (__force uint32_t) __cpu_to_be32(crc);
p8 = buf;
- p32 = (uint32_t *)PTR_ALIGN(p8, 8);
+ p32 = (const uint32_t *)PTR_ALIGN(p8, 8);
init_bytes = min((uintptr_t)p32 - (uintptr_t)p8, len);
words = (len - init_bytes) >> 3;
end_bytes = (len - init_bytes) & 7;
#endif
}
- p8 = (uint8_t *)(++p32);
+ p8 = (const uint8_t *)(++p32);
for (i = 0; i < end_bytes; i++) {
#ifndef WORDS_BIGENDIAN
be = ext2fs_crc32c_be(t->crc, test_buf + t->start, t->length);
if (le != t->crc_le) {
printf("Test %d LE fails, %x != %x\n",
- (t - test), le, t->crc_le);
+ (int) (t - test), le, t->crc_le);
failures++;
}
if (be != t->crc_be) {
printf("Test %d BE fails, %x != %x\n",
- (t - test), be, t->crc_be);
+ (int) (t - test), be, t->crc_be);
failures++;
}
t++;
{
__u16 crc1, crc2, crc3;
dgrp_t swabgroup;
- struct ext2_group_desc *desc = ext2fs_group_desc(fs, fs->group_desc, group);
+ struct ext2_group_desc *desc;
size_t size;
struct ext2_super_block *sb = fs->super;
int offset = offsetof(struct ext2_group_desc, bg_checksum);
struct ext4_group_desc swabdesc;
#endif
+ desc = ext2fs_group_desc(fs, fs->group_desc, group);
size = fs->super->s_desc_size;
if (size < EXT2_MIN_DESC_SIZE)
size = EXT2_MIN_DESC_SIZE;
if (offset < size)
crc3 = ext2fs_crc16(crc3, (char *)desc + offset, size - offset);
- printf("%s: UUID %s(%04x), grp %u(%04x): %04x=%04x\n",
+ printf("%s UUID %s=%04x, grp %u=%04x: %04x=%04x\n",
msg, e2p_uuid2str(sb->s_uuid), crc1, group, crc2, crc3,
ext2fs_group_desc_csum(fs, group));
}
struct ext2_db_entry2 *list,
ext2_dblist *ret_dblist)
{
- ext2_dblist dblist;
+ ext2_dblist dblist = NULL;
errcode_t retval;
ext2_ino_t num_dirs;
size_t len;
/* Image flags */
#define E2IMAGE_INSTALL_FLAG 1
#define E2IMAGE_SCRAMBLE_FLAG 2
-#define E2IMAGE_IS_QCOW2_FLAG 3
+#define E2IMAGE_IS_QCOW2_FLAG 4
struct ext2_image_hdr {
__u32 magic_number; /* This must be EXT2_ET_MAGIC_E2IMAGE */
ec EXT2_ET_MMP_OPEN_DIRECT,
"MMP: open with O_DIRECT failed"
+ec EXT2_ET_BAD_DESC_SIZE,
+ "Block group descriptor size incorrect"
+
+ec EXT2_ET_INODE_CSUM_INVALID,
+ "Inode checksum does not match inode"
+
+ec EXT2_ET_INODE_BITMAP_CSUM_INVALID,
+ "Inode bitmap checksum does not match bitmap"
+
+ec EXT2_ET_EXTENT_CSUM_INVALID,
+ "Extent block checksum does not match extent block"
+
+ec EXT2_ET_DIR_NO_SPACE_FOR_CSUM,
+ "Directory block does not have space for checksum"
+
+ec EXT2_ET_DIR_CSUM_INVALID,
+ "Directory block checksum does not match directory block"
+
+ec EXT2_ET_EXT_ATTR_CSUM_INVALID,
+ "Extended attribute block checksum does not match block"
+
+ec EXT2_ET_SB_CSUM_INVALID,
+ "Superblock checksum does not match superblock"
+
+ec EXT2_ET_UNKNOWN_CSUM,
+ "Unknown checksum algorithm"
+
+ec EXT2_ET_MMP_CSUM_INVALID,
+ "MMP block checksum does not match MMP block"
+
+ec EXT2_ET_FILE_EXISTS,
+ "Ext2 file already exists"
+
end
extern errcode_t ext2fs_close2(ext2_filsys fs, int flags);
extern errcode_t ext2fs_flush(ext2_filsys fs);
extern errcode_t ext2fs_flush2(ext2_filsys fs, int flags);
-extern int ext2fs_bg_has_super(ext2_filsys fs, int group_block);
+extern int ext2fs_bg_has_super(ext2_filsys fs, dgrp_t group_block);
extern errcode_t ext2fs_super_and_bgd_loc2(ext2_filsys fs,
dgrp_t group,
blk64_t *ret_super_blk,
extern void ext2fs_extent_free(ext2_extent_handle_t handle);
extern errcode_t ext2fs_extent_get(ext2_extent_handle_t handle,
int flags, struct ext2fs_extent *extent);
+extern errcode_t ext2fs_extent_node_split(ext2_extent_handle_t handle);
extern errcode_t ext2fs_extent_replace(ext2_extent_handle_t handle, int flags,
struct ext2fs_extent *extent);
extern errcode_t ext2fs_extent_insert(ext2_extent_handle_t handle, int flags,
struct ext2_extent_info *info);
extern errcode_t ext2fs_extent_goto(ext2_extent_handle_t handle,
blk64_t blk);
+extern errcode_t ext2fs_extent_goto2(ext2_extent_handle_t handle,
+ int leaf_level, blk64_t blk);
+extern errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle);
/* fileio.c */
extern errcode_t ext2fs_file_open2(ext2_filsys fs, ext2_ino_t ino,
extern ext2_ino_t ext2fs_get_icount_size(ext2_icount_t icount);
errcode_t ext2fs_icount_validate(ext2_icount_t icount, FILE *);
+/* inline.c */
+
+extern errcode_t ext2fs_get_memalign(unsigned long size,
+ unsigned long align, void *ptr);
+
/* inode.c */
extern errcode_t ext2fs_flush_icache(ext2_filsys fs);
extern errcode_t ext2fs_get_next_inode_full(ext2_inode_scan scan,
errcode_t ext2fs_unlink(ext2_filsys fs, ext2_ino_t dir, const char *name,
ext2_ino_t ino, int flags);
+/* symlink.c */
+errcode_t ext2fs_symlink(ext2_filsys fs, ext2_ino_t parent, ext2_ino_t ino,
+ const char *name, char *target);
+
/* mmp.c */
errcode_t ext2fs_mmp_read(ext2_filsys fs, blk64_t mmp_blk, void *buf);
errcode_t ext2fs_mmp_write(ext2_filsys fs, blk64_t mmp_blk, void *buf);
struct ext2_inode *f, int hostorder);
extern void ext2fs_swap_mmp(struct mmp_struct *mmp);
+/* unix_io.c */
+extern int ext2fs_open_file(const char *pathname, int flags, mode_t mode);
+extern int ext2fs_stat(const char *path, ext2fs_struct_stat *buf);
+extern int ext2fs_fstat(int fd, ext2fs_struct_stat *buf);
+
/* valid_blk.c */
extern int ext2fs_inode_has_valid_blocks(struct ext2_inode *inode);
extern int ext2fs_inode_has_valid_blocks2(ext2_filsys fs,
/* inline functions */
+#ifdef NO_INLINE_FUNCS
extern errcode_t ext2fs_get_mem(unsigned long size, void *ptr);
-extern errcode_t ext2fs_get_memalign(unsigned long size,
- unsigned long align, void *ptr);
extern errcode_t ext2fs_get_memzero(unsigned long size, void *ptr);
extern errcode_t ext2fs_get_array(unsigned long count,
unsigned long size, void *ptr);
struct ext2_inode *inode);
extern unsigned int ext2fs_div_ceil(unsigned int a, unsigned int b);
extern __u64 ext2fs_div64_ceil(__u64 a, __u64 b);
-extern int ext2fs_open_file(const char *pathname, int flags, mode_t mode);
-extern int ext2fs_stat(const char *path, ext2fs_struct_stat *buf);
-extern int ext2fs_fstat(int fd, ext2fs_struct_stat *buf);
+#endif
/*
* The actual inlined functions definitions themselves...
#ifdef INCLUDE_INLINE_FUNCS
#define _INLINE_ extern
#else
+#if (__STDC_VERSION__ >= 199901L)
+#define _INLINE_ inline
+#else
#ifdef __GNUC__
#define _INLINE_ extern __inline__
#else /* For Watcom C */
#define _INLINE_ extern inline
-#endif
+#endif /* __GNUC__ */
+#endif /* __STDC_VERSION__ >= 199901L */
#endif
#ifndef EXT2_CUSTOM_MEMORY_ROUTINES
* If "blk" has no mapping (hole) then handle is left at last
* extent before blk.
*/
-static errcode_t extent_goto(ext2_extent_handle_t handle,
- int leaf_level, blk64_t blk)
+errcode_t ext2fs_extent_goto2(ext2_extent_handle_t handle,
+ int leaf_level, blk64_t blk)
{
struct ext2fs_extent extent;
errcode_t retval;
errcode_t ext2fs_extent_goto(ext2_extent_handle_t handle,
blk64_t blk)
{
- return extent_goto(handle, 0, blk);
+ return ext2fs_extent_goto2(handle, 0, blk);
}
/*
* Safe to call for any position in node; if not at the first entry,
* will simply return.
*/
-static errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
+errcode_t ext2fs_extent_fix_parents(ext2_extent_handle_t handle)
{
int retval = 0;
+ int orig_height;
blk64_t start;
struct extent_path *path;
struct ext2fs_extent extent;
+ struct ext2_extent_info info;
EXT2_CHECK_MAGIC(handle, EXT2_ET_MAGIC_EXTENT_HANDLE);
/* modified node's start block */
start = extent.e_lblk;
+ if ((retval = ext2fs_extent_get_info(handle, &info)))
+ return retval;
+ orig_height = info.max_depth - info.curr_level;
+
/* traverse up until index not first, or startblk matches, or top */
while (handle->level > 0 &&
(path->left == path->entries - 1)) {
}
/* put handle back to where we started */
- retval = ext2fs_extent_goto(handle, start);
+ retval = ext2fs_extent_goto2(handle, orig_height, start);
done:
return retval;
}
*
* handle will be left pointing at original record.
*/
-static errcode_t extent_node_split(ext2_extent_handle_t handle)
+errcode_t ext2fs_extent_node_split(ext2_extent_handle_t handle)
{
errcode_t retval = 0;
blk64_t new_node_pblk;
goto done;
goal_blk = extent.e_pblk;
- retval = extent_node_split(handle);
+ retval = ext2fs_extent_node_split(handle);
if (retval)
goto done;
/* get handle back to our original split position */
- retval = extent_goto(handle, orig_height, orig_lblk);
+ retval = ext2fs_extent_goto2(handle, orig_height, orig_lblk);
if (retval)
goto done;
}
if (log_flex)
group = group & ~((1 << (log_flex)) - 1);
- goal_blk = (group * handle->fs->super->s_blocks_per_group) +
- handle->fs->super->s_first_data_block;
+ goal_blk = ext2fs_group_first_block2(handle->fs, group);
}
retval = ext2fs_alloc_block2(handle->fs, goal_blk, block_buf,
&new_node_pblk);
}
/* get handle back to our original position */
- retval = extent_goto(handle, orig_height, orig_lblk);
+ retval = ext2fs_extent_goto2(handle, orig_height, orig_lblk);
if (retval)
goto done;
printf("node full (level %d) - splitting\n",
handle->level);
#endif
- retval = extent_node_split(handle);
+ retval = ext2fs_extent_node_split(handle);
if (retval)
return retval;
path = handle->path + handle->level;
/* get handle back to its position */
if (orig_height > handle->max_depth)
orig_height = handle->max_depth; /* In case we shortened the tree */
- extent_goto(handle, orig_height, orig_lblk);
+ ext2fs_extent_goto2(handle, orig_height, orig_lblk);
return retval;
}
}
#ifdef DEBUG
-
-#include "ss/ss.h"
-
-#include "debugfs.h"
-
/*
- * Hook in new commands into debugfs
+ * Override debugfs's prompt
*/
const char *debug_prog_name = "tst_extents";
-extern ss_request_table extent_cmds;
-ss_request_table *extra_cmds = &extent_cmds;
-
-ext2_ino_t current_ino = 0;
-ext2_extent_handle_t current_handle;
-
-int common_extent_args_process(int argc, char *argv[], int min_argc,
- int max_argc, const char *cmd,
- const char *usage, int flags)
-{
- if (common_args_process(argc, argv, min_argc, max_argc, cmd,
- usage, flags))
- return 1;
-
- if (!current_handle) {
- com_err(cmd, 0, "Extent handle not open");
- return 1;
- }
- return 0;
-}
-
-void do_inode(int argc, char *argv[])
-{
- ext2_ino_t inode;
- int i;
- struct ext3_extent_header *eh;
- errcode_t retval;
-
- if (check_fs_open(argv[0]))
- return;
-
- if (argc == 1) {
- if (current_ino)
- printf("Current inode is %d\n", current_ino);
- else
- printf("No current inode\n");
- return;
- }
-
- if (common_inode_args_process(argc, argv, &inode, 0)) {
- return;
- }
-
- current_ino = 0;
-
- retval = ext2fs_extent_open(current_fs, inode, ¤t_handle);
- if (retval) {
- com_err(argv[1], retval, "while opening extent handle");
- return;
- }
-
- current_ino = inode;
-
- printf("Loaded inode %d\n", current_ino);
-
- return;
-}
-
-void generic_goto_node(char *cmd_name, int op)
-{
- struct ext2fs_extent extent;
- errcode_t retval;
-
- if (check_fs_open(cmd_name))
- return;
-
- if (!current_handle) {
- com_err(cmd_name, 0, "Extent handle not open");
- return;
- }
-
- retval = ext2fs_extent_get(current_handle, op, &extent);
- if (retval) {
- com_err(cmd_name, retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
-}
-
-void do_current_node(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_CURRENT);
-}
-
-void do_root_node(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_ROOT);
-}
-
-void do_last_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_LAST_LEAF);
-}
-
-void do_first_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_FIRST_SIB);
-}
-
-void do_last_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_LAST_SIB);
-}
-
-void do_next_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT_SIB);
-}
-
-void do_prev_sib(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV_SIB);
-}
-
-void do_next_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT_LEAF);
-}
-
-void do_prev_leaf(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV_LEAF);
-}
-
-void do_next(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_NEXT);
-}
-
-void do_prev(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_PREV);
-}
-
-void do_up(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_UP);
-}
-
-void do_down(int argc, char *argv[])
-{
- generic_goto_node(argv[0], EXT2_EXTENT_DOWN);
-}
-
-void do_delete_node(int argc, char *argv[])
-{
- errcode_t retval;
- int err;
-
- if (common_extent_args_process(argc, argv, 1, 1, "delete_node",
- "", CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- retval = ext2fs_extent_delete(current_handle, 0);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- if (current_handle->path && current_handle->path[0].curr)
- do_current_node(argc, argv);
-}
-
-void do_replace_node(int argc, char *argv[])
-{
- const char *usage = "[--uninit] <lblk> <len> <pblk>";
- errcode_t retval;
- struct ext2fs_extent extent;
- int err;
-
- if (common_extent_args_process(argc, argv, 3, 5, "replace_node",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- extent.e_flags = 0;
-
- if (!strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
- }
-
- if (argc != 4) {
- fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
- return;
- }
-
- extent.e_lblk = parse_ulong(argv[1], argv[0], "logical block", &err);
- if (err)
- return;
-
- extent.e_len = parse_ulong(argv[2], argv[0], "logical block", &err);
- if (err)
- return;
-
- extent.e_pblk = parse_ulong(argv[3], argv[0], "logical block", &err);
- if (err)
- return;
- retval = ext2fs_extent_replace(current_handle, 0, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_split_node(int argc, char *argv[])
-{
- errcode_t retval;
- struct ext2fs_extent extent;
- int err;
-
- if (common_extent_args_process(argc, argv, 1, 1, "split_node",
- "", CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- retval = extent_node_split(current_handle);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_insert_node(int argc, char *argv[])
-{
- const char *usage = "[--after] [--uninit] <lblk> <len> <pblk>";
- errcode_t retval;
- struct ext2fs_extent extent;
- char *cmd;
- int err;
- int flags = 0;
-
- if (common_extent_args_process(argc, argv, 3, 6, "insert_node",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- cmd = argv[0];
-
- extent.e_flags = 0;
-
- while (argc > 2) {
- if (!strcmp(argv[1], "--after")) {
- argc--;
- argv++;
- flags |= EXT2_EXTENT_INSERT_AFTER;
- continue;
- }
- if (!strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- extent.e_flags |= EXT2_EXTENT_FLAGS_UNINIT;
- continue;
- }
- break;
- }
-
- if (argc != 4) {
- fprintf(stderr, "usage: %s %s\n", cmd, usage);
- return;
- }
-
- extent.e_lblk = parse_ulong(argv[1], cmd,
- "logical block", &err);
- if (err)
- return;
-
- extent.e_len = parse_ulong(argv[2], cmd,
- "length", &err);
- if (err)
- return;
-
- extent.e_pblk = parse_ulong(argv[3], cmd,
- "pysical block", &err);
- if (err)
- return;
-
- retval = ext2fs_extent_insert(current_handle, flags, &extent);
- if (retval) {
- com_err(cmd, retval, 0);
- return;
- }
- do_current_node(argc, argv);
-}
-
-void do_set_bmap(int argc, char **argv)
-{
- const char *usage = "[--uninit] <lblk> <pblk>";
- errcode_t retval;
- blk_t logical;
- blk_t physical;
- char *cmd = argv[0];
- int flags = 0;
- int err;
-
- if (common_extent_args_process(argc, argv, 3, 5, "set_bmap",
- usage, CHECK_FS_RW | CHECK_FS_BITMAPS))
- return;
-
- if (argc > 2 && !strcmp(argv[1], "--uninit")) {
- argc--;
- argv++;
- flags |= EXT2_EXTENT_SET_BMAP_UNINIT;
- }
-
- if (argc != 3) {
- fprintf(stderr, "Usage: %s %s\n", cmd, usage);
- return;
- }
-
- logical = parse_ulong(argv[1], cmd,
- "logical block", &err);
- if (err)
- return;
-
- physical = parse_ulong(argv[2], cmd,
- "physical block", &err);
- if (err)
- return;
-
- retval = ext2fs_extent_set_bmap(current_handle, logical,
- (blk64_t) physical, flags);
- if (retval) {
- com_err(cmd, retval, 0);
- return;
- }
- if (current_handle->path && current_handle->path[0].curr)
- do_current_node(argc, argv);
-}
-
-void do_print_all(int argc, char **argv)
-{
- const char *usage = "[--leaf-only|--reverse|--reverse-leaf]";
- struct ext2fs_extent extent;
- errcode_t retval;
- errcode_t end_err = EXT2_ET_EXTENT_NO_NEXT;
- int op = EXT2_EXTENT_NEXT;
- int first_op = EXT2_EXTENT_ROOT;
-
-
- if (common_extent_args_process(argc, argv, 1, 2, "print_all",
- usage, 0))
- return;
-
- if (argc == 2) {
- if (!strcmp(argv[1], "--leaf-only"))
- op = EXT2_EXTENT_NEXT_LEAF;
- else if (!strcmp(argv[1], "--reverse")) {
- op = EXT2_EXTENT_PREV;
- first_op = EXT2_EXTENT_LAST_LEAF;
- end_err = EXT2_ET_EXTENT_NO_PREV;
- } else if (!strcmp(argv[1], "--reverse-leaf")) {
- op = EXT2_EXTENT_PREV_LEAF;
- first_op = EXT2_EXTENT_LAST_LEAF;
- end_err = EXT2_ET_EXTENT_NO_PREV;
- } else {
- fprintf(stderr, "Usage: %s %s\n", argv[0], usage);
- return;
- }
- }
-
- retval = ext2fs_extent_get(current_handle, first_op, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
-
- while (1) {
- retval = ext2fs_extent_get(current_handle, op, &extent);
- if (retval == end_err)
- break;
-
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
- dbg_print_extent(0, &extent);
- }
-}
-
-void do_info(int argc, char **argv)
-{
- struct ext2fs_extent extent;
- struct ext2_extent_info info;
- errcode_t retval;
-
- if (common_extent_args_process(argc, argv, 1, 1, "info", "", 0))
- return;
-
- retval = ext2fs_extent_get_info(current_handle, &info);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
-
- retval = ext2fs_extent_get(current_handle,
- EXT2_EXTENT_CURRENT, &extent);
- if (retval) {
- com_err(argv[0], retval, 0);
- return;
- }
-
- dbg_print_extent(0, &extent);
-
- printf("Current handle location: %d/%d (max: %d, bytes %d), level %d/%d\n",
- info.curr_entry, info.num_entries, info.max_entries,
- info.bytes_avail, info.curr_level, info.max_depth);
- printf("\tmax lblk: %llu, max pblk: %llu\n", info.max_lblk,
- info.max_pblk);
- printf("\tmax_len: %u, max_uninit_len: %u\n", info.max_len,
- info.max_uninit_len);
-}
-
-void do_goto_block(int argc, char **argv)
-{
- struct ext2fs_extent extent;
- errcode_t retval;
- int op = EXT2_EXTENT_NEXT_LEAF;
- blk64_t blk;
- int level = 0, err;
-
- if (common_extent_args_process(argc, argv, 2, 3, "goto_block",
- "block [level]", 0))
- return;
-
- if (strtoblk(argv[0], argv[1], &blk))
- return;
-
- if (argc == 3) {
- level = parse_ulong(argv[2], argv[0], "level", &err);
- if (err)
- return;
- }
-
- retval = extent_goto(current_handle, level, (blk64_t) blk);
-
- if (retval) {
- com_err(argv[0], retval,
- "while trying to go to block %llu, level %d",
- (unsigned long long) blk, level);
- return;
- }
-
- generic_goto_node(argv[0], EXT2_EXTENT_CURRENT);
-}
#endif
}
#ifdef BMAP_STATS
-void ext2fs_print_bmap_statistics(ext2fs_generic_bitmap bitmap)
+static void ext2fs_print_bmap_statistics(ext2fs_generic_bitmap bitmap)
{
struct ext2_bmap_statistics *stats = &bitmap->stats;
#ifdef BMAP_STATS_OPS
int ext2fs_test_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return EINVAL;
INC_STAT(bmap, test_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
+ if ((block < bmap->start) || (block+num-1 > bmap->end)) {
+ ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_TEST, block,
+ bmap->description);
+ return EINVAL;
+ }
+
return bmap->bitmap_ops->test_clear_bmap_extent(bmap, block, num);
}
void ext2fs_mark_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return;
INC_STAT(bmap, mark_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
if ((block < bmap->start) || (block+num-1 > bmap->end)) {
ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_MARK, block,
bmap->description);
void ext2fs_unmark_block_bitmap_range2(ext2fs_block_bitmap bmap,
blk64_t block, unsigned int num)
{
+ __u64 end = block + num;
+
if (!bmap)
return;
INC_STAT(bmap, unmark_ext_count);
+ /* convert to clusters if necessary */
+ block >>= bmap->cluster_bits;
+ end += (1 << bmap->cluster_bits) - 1;
+ end >>= bmap->cluster_bits;
+ num = end - block;
+
if ((block < bmap->start) || (block+num-1 > bmap->end)) {
ext2fs_warn_bitmap(EXT2_ET_BAD_BLOCK_UNMARK, block,
bmap->description);
* Returns the number of blocks in a partition
*/
errcode_t ext2fs_get_device_size2(const char *file, int blocksize,
- blk64_t *retblocks)
+ blk64_t *retblocks)
{
int fd, rc = 0;
- int valid_blkgetsize64 = 1;
-#ifdef __linux__
- struct utsname ut;
-#endif
unsigned long long size64;
- unsigned long size;
ext2_loff_t high, low;
-#ifdef FDGETPRM
- struct floppy_struct this_floppy;
-#endif
-#ifdef HAVE_SYS_DISKLABEL_H
- int part;
- struct disklabel lab;
- struct partition *pp;
- char ch;
-#endif /* HAVE_SYS_DISKLABEL_H */
fd = ext2fs_open_file(file, O_RDONLY, 0);
if (fd < 0)
#endif
#ifdef BLKGETSIZE64
+ {
+ int valid_blkgetsize64 = 1;
#ifdef __linux__
- if ((uname(&ut) == 0) &&
- ((ut.release[0] == '2') && (ut.release[1] == '.') &&
- (ut.release[2] < '6') && (ut.release[3] == '.')))
- valid_blkgetsize64 = 0;
+ struct utsname ut;
+
+ if ((uname(&ut) == 0) &&
+ ((ut.release[0] == '2') && (ut.release[1] == '.') &&
+ (ut.release[2] < '6') && (ut.release[3] == '.')))
+ valid_blkgetsize64 = 0;
#endif
- if (valid_blkgetsize64 &&
- ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
- *retblocks = size64 / blocksize;
- goto out;
+ if (valid_blkgetsize64 &&
+ ioctl(fd, BLKGETSIZE64, &size64) >= 0) {
+ *retblocks = size64 / blocksize;
+ goto out;
+ }
}
#endif /* BLKGETSIZE64 */
#ifdef BLKGETSIZE
- if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
- *retblocks = size / (blocksize / 512);
- goto out;
+ {
+ unsigned long size;
+
+ if (ioctl(fd, BLKGETSIZE, &size) >= 0) {
+ *retblocks = size / (blocksize / 512);
+ goto out;
+ }
}
#endif
#ifdef FDGETPRM
- if (ioctl(fd, FDGETPRM, &this_floppy) >= 0) {
- *retblocks = this_floppy.size / (blocksize / 512);
- goto out;
+ {
+ struct floppy_struct this_floppy;
+
+ if (ioctl(fd, FDGETPRM, &this_floppy) >= 0) {
+ *retblocks = this_floppy.size / (blocksize / 512);
+ goto out;
+ }
}
#endif
#ifdef HAVE_SYS_DISKLABEL_H
-#if defined(DIOCGMEDIASIZE)
{
- off_t ms;
- u_int bs;
- if (ioctl(fd, DIOCGMEDIASIZE, &ms) >= 0) {
- *retblocks = ms / blocksize;
- goto out;
- }
- }
+ int part;
+ struct disklabel lab;
+ struct partition *pp;
+ char ch;
+
+#if defined(DIOCGMEDIASIZE)
+ {
+ off_t ms;
+ u_int bs;
+ if (ioctl(fd, DIOCGMEDIASIZE, &ms) >= 0) {
+ *retblocks = ms / blocksize;
+ goto out;
+ }
+ }
#elif defined(DIOCGDINFO)
- /* old disklabel interface */
- part = strlen(file) - 1;
- if (part >= 0) {
- ch = file[part];
- if (isdigit(ch))
- part = 0;
- else if (ch >= 'a' && ch <= 'h')
- part = ch - 'a';
- else
- part = -1;
- }
- if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
- pp = &lab.d_partitions[part];
- if (pp->p_size) {
- *retblocks = pp->p_size / (blocksize / 512);
- goto out;
+ /* old disklabel interface */
+ part = strlen(file) - 1;
+ if (part >= 0) {
+ ch = file[part];
+ if (isdigit(ch))
+ part = 0;
+ else if (ch >= 'a' && ch <= 'h')
+ part = ch - 'a';
+ else
+ part = -1;
+ }
+ if (part >= 0 && (ioctl(fd, DIOCGDINFO, (char *)&lab) >= 0)) {
+ pp = &lab.d_partitions[part];
+ if (pp->p_size) {
+ *retblocks = pp->p_size / (blocksize / 512);
+ goto out;
+ }
}
- }
#endif /* defined(DIOCG*) */
+ }
#endif /* HAVE_SYS_DISKLABEL_H */
{
* find the size of the partition.
*/
low = 0;
- for (high = 1024; valid_offset (fd, high); high *= 2)
+ for (high = 1024; valid_offset(fd, high); high *= 2)
low = high;
- while (low < high - 1)
- {
+ while (low < high - 1) {
const ext2_loff_t mid = (low + high) / 2;
if (valid_offset (fd, mid))
else
high = mid;
}
- valid_offset (fd, 0);
+ valid_offset(fd, 0);
size64 = low + 1;
*retblocks = size64 / blocksize;
out:
errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
{
ext2fs_generic_bitmap bmap;
- errcode_t err, retval;
+ errcode_t retval;
ssize_t actual;
__u32 itr, cnt, size;
int c, total_size;
return retval;
}
bmap = fs->inode_map;
- err = EXT2_ET_MAGIC_INODE_BITMAP;
itr = 1;
cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
return retval;
}
bmap = fs->block_map;
- err = EXT2_ET_MAGIC_BLOCK_BITMAP;
itr = fs->super->s_first_data_block;
cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
{
ext2fs_generic_bitmap bmap;
- errcode_t err, retval;
+ errcode_t retval;
__u32 itr, cnt;
char buf[1024];
unsigned int size;
return retval;
}
bmap = fs->inode_map;
- err = EXT2_ET_MAGIC_INODE_BITMAP;
itr = 1;
cnt = EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count;
size = (EXT2_INODES_PER_GROUP(fs->super) / 8);
return retval;
}
bmap = fs->block_map;
- err = EXT2_ET_MAGIC_BLOCK_BITMAP;
itr = fs->super->s_first_data_block;
cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
unsigned reserved_inos;
char *buf = 0;
char c;
+ double reserved_ratio;
if (!param || !ext2fs_blocks_count(param))
return EXT2_ET_INVALID_ARGUMENT;
super->s_log_block_size;
if (bigalloc_flag) {
+ unsigned long long bpg;
+
if (param->s_blocks_per_group &&
param->s_clusters_per_group &&
((param->s_clusters_per_group * EXT2FS_CLUSTER_RATIO(fs)) !=
super->s_clusters_per_group =
param->s_blocks_per_group /
EXT2FS_CLUSTER_RATIO(fs);
- else
+ else if (super->s_log_cluster_size + 15 < 32)
super->s_clusters_per_group = fs->blocksize * 8;
+ else
+ super->s_clusters_per_group = (fs->blocksize - 1) * 8;
if (super->s_clusters_per_group > EXT2_MAX_CLUSTERS_PER_GROUP(super))
super->s_clusters_per_group = EXT2_MAX_CLUSTERS_PER_GROUP(super);
- super->s_blocks_per_group = EXT2FS_C2B(fs,
- super->s_clusters_per_group);
+ bpg = EXT2FS_C2B(fs,
+ (unsigned long long) super->s_clusters_per_group);
+ if (bpg >= (((unsigned long long) 1) << 32)) {
+ retval = EXT2_ET_INVALID_ARGUMENT;
+ goto cleanup;
+ }
+ super->s_blocks_per_group = bpg;
} else {
set_field(s_blocks_per_group, fs->blocksize * 8);
if (super->s_blocks_per_group > EXT2_MAX_BLOCKS_PER_GROUP(super))
goto cleanup;
}
+ set_field(s_mmp_update_interval, 0);
+
/*
* If we're creating an external journal device, we don't need
* to bother with the rest.
if (rem && (rem < overhead+50)) {
ext2fs_blocks_count_set(super, ext2fs_blocks_count(super) -
rem);
+ /*
+ * If blocks count is changed, we need to recalculate
+ * reserved blocks count not to exceed 50%.
+ */
+ reserved_ratio = 100.0 * ext2fs_r_blocks_count(param) /
+ ext2fs_blocks_count(param);
+ ext2fs_r_blocks_count_set(super, reserved_ratio *
+ ext2fs_blocks_count(super) / 100.0);
goto retry;
}
if (!retval && !isaligned(ptr, align))
retval = EINVAL;
free(ptr);
- printf("tst_memliagn(%lu): %s\n", align,
+ printf("tst_memalign(%lu) is %s\n", align,
retval ? error_message(retval) : "OK");
return retval;
}
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
/* Check to see if user has an override function */
- if (fs->read_inode) {
+ if (fs->read_inode &&
+ ((bufsize == sizeof(struct ext2_inode)) ||
+ (EXT2_INODE_SIZE(fs->super) == sizeof(struct ext2_inode)))) {
retval = (fs->read_inode)(fs, ino, inode);
if (retval != EXT2_ET_CALLBACK_NOTHANDLED)
return retval;
int fd;
*mount_flags = 0;
- if ((f = setmntent (mtab_file, "r")) == NULL)
- return (errno == ENOENT ? EXT2_NO_MTAB_FILE : errno);
+ if ((f = setmntent (mtab_file, "r")) == NULL) {
+ if (errno == ENOENT) {
+ if (getenv("EXT2FS_NO_MTAB_OK"))
+ return 0;
+ else
+ return EXT2_NO_MTAB_FILE;
+ }
+ return errno;
+ }
if (stat(file, &st_buf) == 0) {
if (S_ISBLK(st_buf.st_mode)) {
#ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */
errcode_t ext2fs_check_mount_point(const char *device, int *mount_flags,
char *mtpt, int mtlen)
{
- struct stat st_buf;
errcode_t retval = 0;
- int fd;
if (is_swap_device(device)) {
*mount_flags = EXT2_MF_MOUNTED | EXT2_MF_SWAP;
return retval;
#ifdef __linux__ /* This only works on Linux 2.6+ systems */
- if ((stat(device, &st_buf) != 0) ||
- !S_ISBLK(st_buf.st_mode))
- return 0;
- fd = open(device, O_RDONLY | O_EXCL);
- if (fd < 0) {
- if (errno == EBUSY)
- *mount_flags |= EXT2_MF_BUSY;
- } else
- close(fd);
+ {
+ struct stat st_buf;
+
+ if (stat(device, &st_buf) == 0 && S_ISBLK(st_buf.st_mode)) {
+ int fd = open(device, O_RDONLY | O_EXCL);
+
+ if (fd >= 0)
+ close(fd);
+ else if (errno == EBUSY)
+ *mount_flags |= EXT2_MF_BUSY;
+ }
+ }
#endif
return 0;
#define JFS_HAS_COMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_compat & ext2fs_cpu_to_be32((mask))))
#define JFS_HAS_RO_COMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_ro_compat & ext2fs_cpu_to_be32((mask))))
#define JFS_HAS_INCOMPAT_FEATURE(j,mask) \
((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
+ ((j)->j_superblock->s_feature_incompat & ext2fs_cpu_to_be32((mask))))
#define JFS_FEATURE_COMPAT_CHECKSUM 0x00000001
ext2_loff_t ext2fs_llseek (int fd, ext2_loff_t offset, int origin)
{
+#if SIZEOF_OFF_T >= SIZEOF_LONG_LONG
+ return lseek (fd, offset, origin);
+#else
ext2_loff_t result;
static int do_compat = 0;
- if ((sizeof(off_t) >= sizeof(ext2_loff_t)) ||
- (offset < ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1))))
- return lseek(fd, (off_t) offset, origin);
-
- if (do_compat) {
- errno = EINVAL;
- return -1;
- }
+ if (do_compat)
+ goto fallback;
result = my_llseek (fd, offset, origin);
if (result == -1 && errno == ENOSYS) {
* which does not support the llseek system call
*/
do_compat++;
+ fallback:
+ if (offset < ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1)))
+ return lseek(fd, (off_t) offset, origin);
errno = EINVAL;
+ return -1;
}
return result;
+#endif
}
#else /* !linux */
ext2fs_bg_free_blocks_count(fs, group))
group = i;
- es.goal = (fs->super->s_blocks_per_group * group) +
- fs->super->s_first_data_block;
-
+ es.goal = ext2fs_group_first_block2(fs, group);
retval = ext2fs_block_iterate3(fs, journal_ino, BLOCK_FLAG_APPEND,
0, mkjournal_proc, &es);
if (es.err) {
ext2_ino_t journal_ino;
struct stat st;
char jfile[1024];
- int mount_flags, f;
+ int mount_flags;
int fd = -1;
if (flags & EXT2_MKJOURNAL_NO_MNT_CHECK)
return retval;
if (mount_flags & EXT2_MF_MOUNTED) {
+#if HAVE_EXT2_IOCTLS
+ int f = 0;
+#endif
strcat(jfile, "/.journal");
/*
#if HAVE_EXT2_IOCTLS
fd = open(jfile, O_RDONLY);
if (fd >= 0) {
- f = 0;
ioctl(fd, EXT2_IOC_SETFLAGS, &f);
close(fd);
}
* Copyright (C) 2011 Whamcloud, Inc.
*
* %Begin-Header%
- * This file may be redistributed under the terms of the GNU Public
- * License.
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
* %End-Header%
*/
return retval;
}
- if (ext2fs_llseek(fs->mmp_fd, mmp_blk * fs->blocksize, SEEK_SET) !=
+ if ((blk64_t) ext2fs_llseek(fs->mmp_fd, mmp_blk * fs->blocksize,
+ SEEK_SET) !=
mmp_blk * fs->blocksize) {
retval = EXT2_ET_LLSEEK_FAILED;
goto out;
errcode_t retval;
unsigned long i, first_meta_bg;
__u32 features;
- unsigned int groups_per_block, blocks_per_group, io_flags;
+ unsigned int blocks_per_group, io_flags;
blk64_t group_block, blk;
char *dest, *cp;
#ifdef WORDS_BIGENDIAN
+ unsigned int groups_per_block;
struct ext2_group_desc *gdp;
int j;
#endif
if (group_block == 0 && fs->blocksize == 1024)
group_block = 1; /* Deal with 1024 blocksize && bigalloc */
dest = (char *) fs->group_desc;
+#ifdef WORDS_BIGENDIAN
groups_per_block = EXT2_DESC_PER_BLOCK(fs->super);
+#endif
if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
first_meta_bg = fs->super->s_first_meta_bg;
else
ext2fs_mark_super_dirty(fs);
}
- fs->flags &= ~EXT2_FLAG_NOFREE_ON_ERROR;
- *ret_fs = fs;
-
if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) &&
!(flags & EXT2_FLAG_SKIP_MMP) &&
(flags & (EXT2_FLAG_RW | EXT2_FLAG_EXCLUSIVE))) {
}
}
+ fs->flags &= ~EXT2_FLAG_NOFREE_ON_ERROR;
+ *ret_fs = fs;
+
return 0;
cleanup:
if (flags & EXT2_FLAG_NOFREE_ON_ERROR)
#include "ext2fs.h"
#include "ext2fsP.h"
+#include <time.h>
+
static char spaces[80], backspaces[80];
+static time_t last_update;
static int int_log10(unsigned int arg)
{
spaces[sizeof(spaces)-1] = 0;
memset(backspaces, '\b', sizeof(backspaces)-1);
backspaces[sizeof(backspaces)-1] = 0;
- progress->skip_progress = 0;
+
+ memset(progress, 0, sizeof(*progress));
if (getenv("E2FSPROGS_SKIP_PROGRESS"))
progress->skip_progress++;
- memset(progress, 0, sizeof(*progress));
/*
* Figure out how many digits we need
fputs(label, stdout);
fflush(stdout);
}
+ last_update = 0;
}
void ext2fs_numeric_progress_update(ext2_filsys fs,
struct ext2fs_numeric_progress_struct * progress,
__u64 val)
{
+ time_t now;
+
if (!(fs->flags & EXT2_FLAG_PRINT_PROGRESS))
return;
if (progress->skip_progress)
return;
+ now = time(0);
+ if (now == last_update)
+ return;
+ last_update = now;
printf("%*llu/%*llu", progress->log_max, val,
progress->log_max, progress->max);
errcode_t ret = 0;
unsigned int l1_index, l2_index;
ext2_off64_t offset;
- blk64_t *l1_table, *l2_table;
+ blk64_t *l1_table, *l2_table = NULL;
void *copy_buf = NULL;
size_t size;
return n;
}
-struct rb_node *ext2fs_rb_next(const struct rb_node *node)
+struct rb_node *ext2fs_rb_next(struct rb_node *node)
{
struct rb_node *parent;
return parent;
}
-struct rb_node *ext2fs_rb_prev(const struct rb_node *node)
+struct rb_node *ext2fs_rb_prev(struct rb_node *node)
{
struct rb_node *parent;
rb_augment_f func, void *data);
/* Find logical next and previous nodes in a tree */
-extern struct rb_node *ext2fs_rb_next(const struct rb_node *);
-extern struct rb_node *ext2fs_rb_prev(const struct rb_node *);
+extern struct rb_node *ext2fs_rb_next(struct rb_node *);
+extern struct rb_node *ext2fs_rb_prev(struct rb_node *);
extern struct rb_node *ext2fs_rb_first(const struct rb_root *);
extern struct rb_node *ext2fs_rb_last(const struct rb_root *);
int block_nbytes = EXT2_CLUSTERS_PER_GROUP(fs->super) / 8;
int inode_nbytes = EXT2_INODES_PER_GROUP(fs->super) / 8;
int csum_flag = 0;
- int do_image = fs->flags & EXT2_FLAG_IMAGE_FILE;
unsigned int cnt;
blk64_t blk;
blk64_t blk_itr = EXT2FS_B2C(fs, fs->super->s_first_data_block);
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
- if ((block_nbytes > fs->blocksize) || (inode_nbytes > fs->blocksize))
+ if ((block_nbytes > (int) fs->blocksize) ||
+ (inode_nbytes > (int) fs->blocksize))
return EXT2_ET_CORRUPT_SUPERBLOCK;
fs->write_bitmaps = ext2fs_write_bitmaps;
+++ /dev/null
-/*
- * sparse.c --- find the groups in an ext2 filesystem with metadata backups
- *
- * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
- * Copyright (C) 2002 Andreas Dilger.
- *
- * %Begin-Header%
- * This file may be redistributed under the terms of the GNU Library
- * General Public License, version 2.
- * %End-Header%
- */
-
-#include "config.h"
-#include <stdio.h>
-
-#include "ext2_fs.h"
-#include "ext2fsP.h"
-
-static int test_root(int a, int b)
-{
- if (a == 0)
- return 1;
- while (1) {
- if (a == 1)
- return 1;
- if (a % b)
- return 0;
- a = a / b;
- }
-}
-
-int ext2fs_bg_has_super(ext2_filsys fs, int group_block)
-{
- if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
- return 1;
-
- if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
- test_root(group_block, 7))
- return 1;
-
- return 0;
-}
-
-/*
- * Iterate through the groups which hold BACKUP superblock/GDT copies in an
- * ext3 filesystem. The counters should be initialized to 1, 5, and 7 before
- * calling this for the first time. In a sparse filesystem it will be the
- * sequence of powers of 3, 5, and 7: 1, 3, 5, 7, 9, 25, 27, 49, 81, ...
- * For a non-sparse filesystem it will be every group: 1, 2, 3, 4, ...
- */
-unsigned int ext2fs_list_backups(ext2_filsys fs, unsigned int *three,
- unsigned int *five, unsigned int *seven)
-{
- unsigned int *min = three;
- int mult = 3;
- unsigned int ret;
-
- if (!(fs->super->s_feature_ro_compat &
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)) {
- ret = *min;
- *min += 1;
- return ret;
- }
-
- if (*five < *min) {
- min = five;
- mult = 5;
- }
- if (*seven < *min) {
- min = seven;
- mult = 7;
- }
-
- ret = *min;
- *min *= mult;
-
- return ret;
-}
--- /dev/null
+/*
+ * symlink.c --- make a symlink in the filesystem, based on mkdir.c
+ *
+ * Copyright (c) 2012, Intel Corporation.
+ * All Rights Reserved.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <string.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <fcntl.h>
+#include <time.h>
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+errcode_t ext2fs_symlink(ext2_filsys fs, ext2_ino_t parent, ext2_ino_t ino,
+ const char *name, char *target)
+{
+ ext2_extent_handle_t handle;
+ errcode_t retval;
+ struct ext2_inode inode;
+ ext2_ino_t scratch_ino;
+ blk64_t blk;
+ int fastlink;
+ unsigned int target_len;
+ char *block_buf = 0;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ /* The Linux kernel doesn't allow for links longer than a block */
+ target_len = strlen(target);
+ if (target_len > fs->blocksize) {
+ retval = EXT2_ET_INVALID_ARGUMENT;
+ goto cleanup;
+ }
+
+ /*
+ * Allocate a data block for slow links
+ */
+ fastlink = (target_len < sizeof(inode.i_block));
+ if (!fastlink) {
+ retval = ext2fs_new_block2(fs, 0, 0, &blk);
+ if (retval)
+ goto cleanup;
+ retval = ext2fs_get_mem(fs->blocksize, &block_buf);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Allocate an inode, if necessary
+ */
+ if (!ino) {
+ retval = ext2fs_new_inode(fs, parent, LINUX_S_IFLNK | 0755,
+ 0, &ino);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Create the inode structure....
+ */
+ memset(&inode, 0, sizeof(struct ext2_inode));
+ inode.i_mode = LINUX_S_IFLNK | 0777;
+ inode.i_uid = inode.i_gid = 0;
+ ext2fs_iblk_set(fs, &inode, fastlink ? 0 : 1);
+ inode.i_links_count = 1;
+ inode.i_size = target_len;
+ /* The time fields are set by ext2fs_write_new_inode() */
+
+ if (fastlink) {
+ /* Fast symlinks, target stored in inode */
+ strcpy((char *)&inode.i_block, target);
+ } else {
+ /* Slow symlinks, target stored in the first block */
+ memset(block_buf, 0, fs->blocksize);
+ strcpy(block_buf, target);
+ if (fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ /*
+ * The extent bmap is setup after the inode and block
+ * have been written out below.
+ */
+ inode.i_flags |= EXT4_EXTENTS_FL;
+ } else {
+ inode.i_block[0] = blk;
+ }
+ }
+
+ /*
+ * Write out the inode and inode data block. The inode generation
+ * number is assigned by write_new_inode, which means that the
+ * operations using ino must come after it.
+ */
+ retval = ext2fs_write_new_inode(fs, ino, &inode);
+ if (retval)
+ goto cleanup;
+
+ if (!fastlink) {
+ retval = io_channel_write_blk(fs->io, blk, 1, block_buf);
+ if (retval)
+ goto cleanup;
+
+ if (fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_EXTENTS) {
+ retval = ext2fs_extent_open2(fs, ino, &inode, &handle);
+ if (retval)
+ goto cleanup;
+ retval = ext2fs_extent_set_bmap(handle, 0, blk, 0);
+ ext2fs_extent_free(handle);
+ if (retval)
+ goto cleanup;
+ }
+ }
+
+ /*
+ * Link the symlink into the filesystem hierarchy
+ */
+ if (name) {
+ retval = ext2fs_lookup(fs, parent, name, strlen(name), 0,
+ &scratch_ino);
+ if (!retval) {
+ retval = EXT2_ET_FILE_EXISTS;
+ goto cleanup;
+ }
+ if (retval != EXT2_ET_FILE_NOT_FOUND)
+ goto cleanup;
+ retval = ext2fs_link(fs, parent, name, ino, EXT2_FT_SYMLINK);
+ if (retval)
+ goto cleanup;
+ }
+
+ /*
+ * Update accounting....
+ */
+ if (!fastlink)
+ ext2fs_block_alloc_stats2(fs, blk, +1);
+ ext2fs_inode_alloc_stats2(fs, ino, +1, 0);
+
+cleanup:
+ if (block_buf)
+ ext2fs_free_mem(&block_buf);
+ return retval;
+}
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#include <stdio.h>
#include <string.h>
#if HAVE_UNISTD_H
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
void setup_cmd(int argc, char **argv)
{
- errcode_t retval;
- int i, c, err;
+ int c, err;
unsigned int blocks = 128;
unsigned int inodes = 0;
unsigned int type = EXT2FS_BMAP64_BITARRAY;
for (i=0; i < len; i++)
printf("%02x", buf[i]);
printf("\n");
+ printf("bits set: %u\n", ext2fs_bitcount(buf, len));
free(buf);
}
{
unsigned int block, num;
int err;
- int test_result, op_result;
+ int test_result;
if (check_fs_open(argv[0]))
return;
{
unsigned int inode;
int err;
- int test_result, op_result;
+ int test_result;
if (check_fs_open(argv[0]))
return;
blocks = parse_ulong(optarg, argv[0],
"number of blocks", &err);
if (err)
- return;
+ exit(1);
break;
case 'i':
inodes = parse_ulong(optarg, argv[0],
"number of blocks", &err);
if (err)
- return;
+ exit(1);
break;
case 'l': /* Legacy bitmaps */
flags = 0;
type = parse_ulong(optarg, argv[0],
"bitmap backend type", &err);
if (err)
- return;
+ exit(1);
break;
case 'R':
request = optarg;
testi 17
testi 6
testi 4
+clearb 7 12
+dump_bb
+setb 1
+dump_bb
+setb 2
+dump_bb
+setb 3
+dump_bb
+setb 4
+dump_bb
+setb 5
+dump_bb
+setb 6
+dump_bb
+setb 7
+dump_bb
+setb 8
+dump_bb
+setb 10
+setb 12
+setb 14
+setb 17
+setb 19
+setb 24
+setb 26
+setb 27
+setb 30
+setb 31
+setb 32
+setb 35
+setb 39
+setb 40
+setb 44
+setb 46
+setb 47
+setb 49
+setb 51
+setb 52
+clearb 2
+clearb 3
+clearb 7
+dump_bb
quit
Block 16 is set
tst_bitmaps: dump_bb
block bitmap: 00f80000000000000000000000000000
+bits set: 5
tst_bitmaps: ffzb 11 16
First unmarked block is 11
tst_bitmaps: ffzb 12 16
Marking blocks 12 to 18
tst_bitmaps: dump_bb
block bitmap: 00f80300000000000000000000000000
+bits set: 7
tst_bitmaps: seti 2
Setting inode 2, was clear before
tst_bitmaps: seti 5
Inode 1 is clear
tst_bitmaps: dump_ib
inode bitmap: 1e000000
+bits set: 4
tst_bitmaps: ffzi 1 6
First unmarked inode is 1
tst_bitmaps: ffzi 2 5
Inode 6 is clear
tst_bitmaps: testi 4
Inode 4 is clear
+tst_bitmaps: clearb 7 12
+Clearing blocks 7 to 18
+tst_bitmaps: dump_bb
+block bitmap: 00000000000000000000000000000000
+bits set: 0
+tst_bitmaps: setb 1
+Setting block 1, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 01000000000000000000000000000000
+bits set: 1
+tst_bitmaps: setb 2
+Setting block 2, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 03000000000000000000000000000000
+bits set: 2
+tst_bitmaps: setb 3
+Setting block 3, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 07000000000000000000000000000000
+bits set: 3
+tst_bitmaps: setb 4
+Setting block 4, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 0f000000000000000000000000000000
+bits set: 4
+tst_bitmaps: setb 5
+Setting block 5, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 1f000000000000000000000000000000
+bits set: 5
+tst_bitmaps: setb 6
+Setting block 6, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 3f000000000000000000000000000000
+bits set: 6
+tst_bitmaps: setb 7
+Setting block 7, was clear before
+tst_bitmaps: dump_bb
+block bitmap: 7f000000000000000000000000000000
+bits set: 7
+tst_bitmaps: setb 8
+Setting block 8, was clear before
+tst_bitmaps: dump_bb
+block bitmap: ff000000000000000000000000000000
+bits set: 8
+tst_bitmaps: setb 10
+Setting block 10, was clear before
+tst_bitmaps: setb 12
+Setting block 12, was clear before
+tst_bitmaps: setb 14
+Setting block 14, was clear before
+tst_bitmaps: setb 17
+Setting block 17, was clear before
+tst_bitmaps: setb 19
+Setting block 19, was clear before
+tst_bitmaps: setb 24
+Setting block 24, was clear before
+tst_bitmaps: setb 26
+Setting block 26, was clear before
+tst_bitmaps: setb 27
+Setting block 27, was clear before
+tst_bitmaps: setb 30
+Setting block 30, was clear before
+tst_bitmaps: setb 31
+Setting block 31, was clear before
+tst_bitmaps: setb 32
+Setting block 32, was clear before
+tst_bitmaps: setb 35
+Setting block 35, was clear before
+tst_bitmaps: setb 39
+Setting block 39, was clear before
+tst_bitmaps: setb 40
+Setting block 40, was clear before
+tst_bitmaps: setb 44
+Setting block 44, was clear before
+tst_bitmaps: setb 46
+Setting block 46, was clear before
+tst_bitmaps: setb 47
+Setting block 47, was clear before
+tst_bitmaps: setb 49
+Setting block 49, was clear before
+tst_bitmaps: setb 51
+Setting block 51, was clear before
+tst_bitmaps: setb 52
+Setting block 52, was clear before
+tst_bitmaps: clearb 2
+Clearing block 2, was set before
+tst_bitmaps: clearb 3
+Clearing block 3, was set before
+tst_bitmaps: clearb 7
+Clearing block 7, was set before
+tst_bitmaps: dump_bb
+block bitmap: b92a85e6c4680d000000000000000000
+bits set: 25
tst_bitmaps: quit
tst_bitmaps:
struct ext2_inode_large inode;
+#ifndef offsetof
#define offsetof(type, member) __builtin_offsetof(type, member)
+#endif
+
#define check_field(x, s) cur_offset = do_field(#x, s, sizeof(inode.x), \
offsetof(struct ext2_inode_large, x), \
cur_offset)
struct sb_struct sb;
+#ifndef offsetof
#define offsetof(type, member) __builtin_offsetof (type, member)
+#endif
+
#define check_field(x, s) cur_offset = do_field(#x, s, sizeof(sb.x), \
offsetof(struct sb_struct, x), \
cur_offset)
io_channel io = NULL;
struct unix_private_data *data = NULL;
errcode_t retval;
- int open_flags, zeroes = 0;
+ int open_flags;
int f_nocache = 0;
ext2fs_struct_stat st;
#ifdef __linux__
memset(data, 0, sizeof(struct unix_private_data));
data->magic = EXT2_ET_MAGIC_UNIX_IO_CHANNEL;
data->io_stats.num_fields = 2;
+ data->dev = -1;
open_flags = (flags & IO_FLAG_RW) ? O_RDWR : O_RDONLY;
if (flags & IO_FLAG_EXCLUSIVE)
}
#ifdef BLKDISCARDZEROES
- ioctl(data->dev, BLKDISCARDZEROES, &zeroes);
- if (zeroes)
- io->flags |= CHANNEL_FLAGS_DISCARD_ZEROES;
+ {
+ int zeroes = 0;
+ if (ioctl(data->dev, BLKDISCARDZEROES, &zeroes) == 0 &&
+ zeroes)
+ io->flags |= CHANNEL_FLAGS_DISCARD_ZEROES;
+ }
#endif
#if defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
/* Is the block device actually writable? */
error = ioctl(data->dev, BLKROGET, &readonly);
if (!error && readonly) {
- close(data->dev);
retval = EPERM;
goto cleanup;
}
cleanup:
if (data) {
+ if (data->dev >= 0)
+ close(data->dev);
free_cache(data);
ext2fs_free_mem(&data);
}
- if (io)
+ if (io) {
+ if (io->name) {
+ ext2fs_free_mem(&io->name);
+ }
ext2fs_free_mem(&io);
+ }
return retval;
}
unsigned long long count)
{
struct unix_private_data *data;
- __uint64_t range[2];
int ret;
EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
if (channel->flags & CHANNEL_FLAGS_BLOCK_DEVICE) {
#ifdef BLKDISCARD
+ __uint64_t range[2];
+
range[0] = (__uint64_t)(block) * channel->block_size;
range[1] = (__uint64_t)(count) * channel->block_size;
#ELF_IMAGE = libquota
#ELF_MYDIR = quota
#ELF_INSTALL_DIR = $(root_libdir)
-#ELF_OTHER_LIBS = -L../.. -lext2fs
+#ELF_OTHER_LIBS = -lext2fs
#BSDLIB_VERSION = 1.0
#BSDLIB_IMAGE = libquota
# endif
#endif
-#define log_err(format, ...) fprintf(stderr, \
- "[ERROR] %s:%d:%s:: " format "\n", \
- __FILE__, __LINE__, __func__, __VA_ARGS__)
+#define log_err(format, arg ...) \
+ fprintf(stderr, "[ERROR] %s:%d:%s:: " format "\n", \
+ __FILE__, __LINE__, __func__, ## arg)
#ifdef DEBUG_QUOTA
-# define log_debug(format, ...) fprintf(stderr, \
- "[DEBUG] %s:%d:%s:: " format "\n", \
- __FILE__, __LINE__, __func__, __VA_ARGS__)
+# define log_debug(format, arg ...) \
+ fprintf(stderr, "[DEBUG] %s:%d:%s:: " format "\n", \
+ __FILE__, __LINE__, __func__, ## arg)
#else
# define log_debug(format, ...)
#endif
#define UINT_TO_VOIDPTR(val) ((void *)(intptr_t)(val))
#define VOIDPTR_TO_UINT(ptr) ((unsigned int)(intptr_t)(ptr))
+#if DEBUG_QUOTA
static void print_inode(struct ext2_inode *inode)
{
if (!inode)
return;
}
+#endif
/*
* Returns 0 if not able to find the quota file, otherwise returns its
int retval = 0, i;
dict_t *dict;
ext2_filsys fs;
- struct quota_handle *h;
+ struct quota_handle *h = NULL;
int fmt = QFMT_VFS_V1;
if (!qctx)
fs = qctx->fs;
retval = ext2fs_get_mem(sizeof(struct quota_handle), &h);
if (retval) {
- log_err("Unable to allocate quota handle", "");
+ log_err("Unable to allocate quota handle");
goto out;
}
retval = quota_file_create(h, fs, i, fmt);
if (retval < 0) {
- log_err("Cannot initialize io on quotafile", "");
+ log_err("Cannot initialize io on quotafile");
continue;
}
err = ext2fs_get_mem(sizeof(struct quota_ctx), &ctx);
if (err) {
- log_err("Failed to allocate quota context", "");
+ log_err("Failed to allocate quota context");
return err;
}
continue;
err = ext2fs_get_mem(sizeof(dict_t), &dict);
if (err) {
- log_err("Failed to allocate dictionary", "");
+ log_err("Failed to allocate dictionary");
return err;
}
ctx->quota_dict[i] = dict;
dq = dnode_get(n);
else {
if (ext2fs_get_mem(sizeof(struct dquot), &dq)) {
- log_err("Unable to allocate dquot", "");
+ log_err("Unable to allocate dquot");
return NULL;
}
memset(dq, 0, sizeof(struct dquot));
scan_data->usage_is_inconsistent = 1;
fprintf(stderr, "[QUOTA WARNING] Usage inconsistent for ID %d:"
"actual (%llu, %llu) != expected (%llu, %llu)\n",
- dq->dq_id, dq->dq_dqb.dqb_curspace,
- dq->dq_dqb.dqb_curinodes, dquot->dq_dqb.dqb_curspace,
- dquot->dq_dqb.dqb_curinodes);
+ dq->dq_id, (long long)dq->dq_dqb.dqb_curspace,
+ (long long)dq->dq_dqb.dqb_curinodes,
+ (long long)dquot->dq_dqb.dqb_curspace,
+ (long long)dquot->dq_dqb.dqb_curinodes);
}
if (scan_data->update_limits) {
/*
* Write all memory dquots into quota file
*/
+#if 0 /* currently unused, but may be useful in the future? */
static errcode_t quota_write_all_dquots(struct quota_handle *qh,
quota_ctx_t qctx)
{
ext2fs_write_bitmaps(qctx->fs);
return 0;
}
+#endif
/*
* Updates the in-memory quota limits from the given quota inode.
err = ext2fs_get_mem(sizeof(struct quota_handle), &qh);
if (err) {
- log_err("Unable to allocate quota handle", "");
+ log_err("Unable to allocate quota handle");
return err;
}
err = quota_file_open(qh, qctx->fs, qf_ino, type, -1, 0);
if (err) {
- log_err("Open quota file failed", "");
+ log_err("Open quota file failed");
goto out;
}
fs->super->s_grp_quota_inum;
err = quota_file_open(&qh, fs, qf_ino, qtype, -1, 0);
if (err) {
- log_err("Open quota file failed", "");
+ log_err("Open quota file failed");
goto out;
}
scan_data.usage_is_inconsistent = 0;
err = qh.qh_ops->scan_dquots(&qh, scan_dquots_callback, &scan_data);
if (err) {
- log_err("Error scanning dquots", "");
+ log_err("Error scanning dquots");
goto out;
}
*usage_inconsistent = scan_data.usage_is_inconsistent;
int ref_offset EXT2FS_ATTR((unused)),
void *private)
{
- blk64_t block;
blk64_t *num_blocks = private;
*num_blocks += 1;
{
struct ext2_inode inode;
errcode_t err;
- int i;
if ((err = ext2fs_read_inode(fs, ino, &inode)))
return err;
if (h->qh_ops->check_file &&
(h->qh_ops->check_file(h, type, fmt) == 0)) {
- log_err("qh_ops->check_file failed", "");
+ log_err("qh_ops->check_file failed");
ext2fs_file_close(e2_file);
return -1;
}
if (h->qh_ops->init_io && (h->qh_ops->init_io(h) < 0)) {
- log_err("qh_ops->init_io failed", "");
+ log_err("qh_ops->init_io failed");
ext2fs_file_close(e2_file);
return -1;
}
err = ext2fs_read_inode(fs, ino, &inode);
if (err) {
- log_err("ex2fs_read_inode failed", "");
+ log_err("ex2fs_read_inode failed");
return err;
}
err = quota_inode_init_new(fs, qf_inum);
if (err) {
- log_err("init_new_quota_inode failed", "");
+ log_err("init_new_quota_inode failed");
goto out_err;
}
h->qh_qf.ino = qf_inum;
h->qh_ops = "afile_ops_2;
if (h->qh_ops->new_io && (h->qh_ops->new_io(h) < 0)) {
- log_err("qh_ops->new_io failed", "");
+ log_err("qh_ops->new_io failed");
goto out_err1;
}
struct dquot *dquot;
if (ext2fs_get_memzero(sizeof(struct dquot), &dquot)) {
- log_err("Failed to allocate dquot", "");
+ log_err("Failed to allocate dquot");
return NULL;
}
/* This might go into a special header file but that sounds a bit silly... */
extern struct quotafile_ops quotafile_ops_meta;
-static inline void mark_quotafile_info_dirty(struct quota_handle *h)
-{
- h->qh_io_flags |= IOFL_INFODIRTY;
-}
-
/* Open existing quotafile of given type (and verify its format) on given
* filesystem. */
errcode_t quota_file_open(struct quota_handle *h, ext2_filsys fs,
{
dqbuf_t buf;
if (ext2fs_get_memzero(QT_BLKSIZE, &buf)) {
- log_err("Failed to allocate dqbuf", "");
+ log_err("Failed to allocate dqbuf");
return NULL;
}
return (id >> ((QT_TREEDEPTH - depth - 1) * 8)) & 0xff;
}
+static inline void mark_quotafile_info_dirty(struct quota_handle *h)
+{
+ h->qh_io_flags |= IOFL_INFODIRTY;
+}
+
/* Read given block */
static void read_blk(struct quota_handle *h, uint blk, dqbuf_t buf)
{
if (write_blk(h, info->dqi_blocks, buf) < 0) {
freedqbuf(buf);
log_err("Cannot allocate new quota block "
- "(out of disk space).", "");
+ "(out of disk space).");
return -ENOSPC;
}
blk = info->dqi_blocks++;
ddquot += info->dqi_entry_size;
if (i == qtree_dqstr_in_blk(info))
- log_err("find_free_dqentry(): Data block full but it "
- "shouldn't.", "");
+ log_err("find_free_dqentry(): Data block full unexpectedly.");
write_blk(h, blk, buf);
dquot->dq_dqb.u.v2_mdqb.dqb_off =
if (ext2fs_le32_to_cpu(dqh.dqh_magic) != file_magics[type]) {
if (ext2fs_be32_to_cpu(dqh.dqh_magic) == file_magics[type])
- log_err("Your quota file is stored in wrong "
- "endianity.", "");
+ log_err("Your quota file is stored in wrong endianity");
return 0;
}
if (V2_VERSION != ext2fs_le32_to_cpu(dqh.dqh_version))
*/
static int v2_report(struct quota_handle *h, int verbose)
{
- log_err("Not Implemented.", "");
+ log_err("Not Implemented.");
return -1;
}
ELF_IMAGE = libss
ELF_MYDIR = ss
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -lcom_err $(DLOPEN_LIB)
+ELF_OTHER_LIBS = -lcom_err $(DLOPEN_LIB)
BSDLIB_VERSION = 1.0
BSDLIB_IMAGE = libss
*/
#include "config.h"
+#if HAVE_SECURE_GETENV
+#define _GNU_SOURCE
+#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#endif
#endif
-#ifdef HAVE___SECURE_GETENV
+#if defined(HAVE_SECURE_GETENV)
+ return secure_getenv(arg);
+#elif defined(HAVE___SECURE_GETENV)
return __secure_getenv(arg);
#else
return getenv(arg);
{
int i, n = nbytes, fd = get_random_fd();
int lose_counter = 0;
- unsigned char *cp = (unsigned char *) buf;
- unsigned short tmp_seed[3];
+ unsigned char *cp = buf;
if (fd >= 0) {
while (n > 0) {
for (cp = buf, i = 0; i < nbytes; i++)
*cp++ ^= (rand() >> 7) & 0xFF;
#ifdef DO_JRAND_MIX
- memcpy(tmp_seed, jrand_seed, sizeof(tmp_seed));
- jrand_seed[2] = jrand_seed[2] ^ syscall(__NR_gettid);
- for (cp = buf, i = 0; i < nbytes; i++)
- *cp++ ^= (jrand48(tmp_seed) >> 7) & 0xFF;
- memcpy(jrand_seed, tmp_seed,
- sizeof(jrand_seed)-sizeof(unsigned short));
+ {
+ unsigned short tmp_seed[3];
+
+ memcpy(tmp_seed, jrand_seed, sizeof(tmp_seed));
+ jrand_seed[2] = jrand_seed[2] ^ syscall(__NR_gettid);
+ for (cp = buf, i = 0; i < nbytes; i++)
+ *cp++ ^= (jrand48(tmp_seed) >> 7) & 0xFF;
+ memcpy(jrand_seed, tmp_seed,
+ sizeof(jrand_seed) - sizeof(unsigned short));
+ }
#endif
return;
uuid_t buf, tst;
char str[100];
struct timeval tv;
- time_t time_reg;
+ time_t time_reg, time_gen;
unsigned char *cp;
int i;
int failed = 0;
printf("%02x", *cp++);
}
printf("\n");
- type = uuid_type(buf); variant = uuid_variant(buf);
+ type = uuid_type(buf);
+ variant = uuid_variant(buf);
printf("UUID type = %d, UUID variant = %d\n", type, variant);
if (variant != UUID_VARIANT_DCE) {
printf("Incorrect UUID Variant; was expecting DCE!\n");
}
printf("\n");
+ time_gen = time(0);
uuid_generate_time(buf);
uuid_unparse(buf, str);
printf("UUID string = %s\n", str);
printf("%02x", *cp++);
}
printf("\n");
- type = uuid_type(buf); variant = uuid_variant(buf);
+ type = uuid_type(buf);
+ variant = uuid_variant(buf);
printf("UUID type = %d, UUID variant = %d\n", type, variant);
if (variant != UUID_VARIANT_DCE) {
printf("Incorrect UUID Variant; was expecting DCE!\n");
"1 (time-based type)!\\n");
failed++;
}
+
tv.tv_sec = 0;
tv.tv_usec = 0;
time_reg = uuid_time(buf, &tv);
- printf("UUID time is: (%ld, %ld): %s\n", tv.tv_sec, tv.tv_usec,
- ctime(&time_reg));
+ printf("UUID generated at %lu reports %lu (%ld.%ld)\n",
+ time_gen, time_reg, tv.tv_sec, tv.tv_usec);
+ /* allow 1s margin in case of rollover between sampling
+ * the current time and when the UUID is generated. */
+ if (time_reg > time_gen + 1) {
+ printf("UUID time comparison failed!\n");
+ failed++;
+ } else {
+ printf("UUID time comparison succeeded.\n");
+ }
+
uuid_parse(str, tst);
- if (!uuid_compare(buf, tst))
+ if (!uuid_compare(buf, tst)) {
printf("UUID parse and compare succeeded.\n");
- else {
+ } else {
printf("UUID parse and compare failed!\n");
failed++;
}
printf("UUID copy and compare failed!\n");
failed++;
}
+
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981b", 1);
failed += test_uuid("84949CC5-4701-4A84-895B-354C584A981B", 1);
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981bc", 0);
profiled/ismounted.o
PROFILED_BLKID_OBJS= profiled/blkid.o
PROFILED_FILEFRAG_OBJS= profiled/filefrag.o
+PROFILED_E2FREEFRAG_OBJS= profiled/e2freefrag.o
PROFILED_E2UNDO_OBJS= profiled/e2undo.o
PROFILED_E4DEFRAG_OBJS= profiled/e4defrag.o
@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
- e2image.profiled e4defrag.profiled
+ e2image.profiled e4defrag.profiled e2freefrag.profiled
profiled:
@PROFILE_CMT@ $(E) " MKDIR $@"
$(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
$(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL)
-tune2fs.profiled: $(PROFILED_TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
+tune2fs.profiled: $(TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_E2P) $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) \
$(DEPPROFILED_LIBQUOTA)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o blkid.static $(BLKID_OBJS) $(STATIC_LIBS) \
$(STATIC_LIBBLKID) $(LIBINTL)
-blkid.profiled: $(PROFILED_BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \
+blkid.profiled: $(BLKID_OBJS) $(DEPPROFILED_LIBBLKID) \
$(PROFILED_LIBEXT2FS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o blkid.profiled $(PROFILED_BLKID_OBJS) \
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o e2image $(E2IMAGE_OBJS) $(LIBS) $(LIBINTL)
-e2image.profiled: $(PROFILED_E2IMAGE_OBJS) $(PROFILED_DEPLIBS)
+e2image.profiled: $(E2IMAGE_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2image.profiled \
$(PROFILED_E2IMAGE_OBJS) $(PROFILED_LIBS) $(LIBINTL)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o e2undo $(E2UNDO_OBJS) $(LIBS) $(LIBINTL)
-e2undo.profiled: $(PROFILED_E2UNDO_OBJS) $(PROFILED_DEPLIBS)
+e2undo.profiled: $(E2UNDO_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2undo.profiled \
$(PROFILED_E2UNDO_OBJS) $(PROFILED_LIBS) $(LIBINTL)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o e4defrag $(E4DEFRAG_OBJS) $(LIBS)
-e4defrag.profiled: $(PROFILED_E4DEFRAG_OBJS) $(PROFILED_DEPLIBS)
+e4defrag.profiled: $(E4DEFRAG_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e4defrag.profiled \
$(PROFILED_E4DEFRAG_OBJS) $(PROFILED_LIBS)
$(STATIC_LIBQUOTA) $(STATIC_LIBS) $(STATIC_LIBE2P) \
$(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(LIBINTL)
-mke2fs.profiled: $(PROFILED_MKE2FS_OBJS) $(PROFILED_DEPLIBS) \
+mke2fs.profiled: $(MKE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_LIBE2P) $(PROFILED_DEPLIBBLKID) $(PROFILED_DEPLIBUUID) \
$(PROFILED_LIBQUOTA)
$(E) " LD $@"
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o uuidgen $(UUIDGEN_OBJS) $(LIBUUID) $(LIBINTL)
-uuidgen.profiled: $(PROFILED_UUIDGEN_OBJS) $(PROFILED_DEPLIBUUID)
+uuidgen.profiled: $(UUIDGEN_OBJS) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o uuidgen.profiled \
$(PROFILED_UUIDGEN_OBJS) $(PROFILED_LIBUUID) $(LIBINTL)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o uuidd $(UUIDD_OBJS) $(LIBUUID) $(LIBINTL)
-uuidd.profiled: $(PROFILED_UUIDD_OBJS) $(PROFILED_DEPLIBUUID)
+uuidd.profiled: $(UUIDD_OBJS) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o uuidd.profiled $(PROFILED_UUIDD_OBJS) \
$(PROFILED_LIBUUID) $(LIBINTL)
$(Q) $(CC) $(ALL_LDFLAGS) -o dumpe2fs $(DUMPE2FS_OBJS) $(LIBS) \
$(LIBS_E2P) $(LIBUUID) $(LIBINTL)
-dumpe2fs.profiled: $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_DEPLIBS) \
+dumpe2fs.profiled: $(DUMPE2FS_OBJS) $(PROFILED_DEPLIBS) \
$(PROFILED_LIBE2P) $(PROFILED_DEPLIBUUID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o dumpe2fs.profiled \
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL)
-fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
+fsck.profiled: $(FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o fsck.profiled $(PROFILED_FSCK_OBJS) \
$(PROFILED_LIBBLKID) $(LIBINTL)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o badblocks $(BADBLOCKS_OBJS) $(LIBS) $(LIBINTL)
-badblocks.profiled: $(PROFILED_BADBLOCKS_OBJS) $(PROFILED_DEPLIBS)
+badblocks.profiled: $(BADBLOCKS_OBJS) $(PROFILED_DEPLIBS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o badblocks.profiled \
$(PROFILED_BADBLOCKS_OBJS) $(PROFILED_LIBS) $(LIBINTL)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o logsave logsave.o
-logsave.profiled: profiled/logsave.o
+logsave.profiled: logsave.o
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o logsave.profiled profiled/logsave.o
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o e2freefrag $(E2FREEFRAG_OBJS) $(LIBS)
+e2freefrag.profiled: $(E2FREEFRAG_OBJS) $(PROFILED_DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o e2freefrag.profiled \
+ $(PROFILED_E2FREEFRAG_OBJS) $(PROFILED_LIBS)
+
filefrag: $(FILEFRAG_OBJS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS)
-filefrag.profiled: $(PROFILED_FILEFRAG_OBJS)
+filefrag.profiled: $(FILEFRAG_OBJS)
$(E) " LD $@"
$(Q) $(CC) $(ALL_LDFLAGS) -g -pg -o filefrag.profiled \
$(PROFILED_FILEFRAG_OBJS)
logsave.o: $(srcdir)/logsave.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h
filefrag.o: $(srcdir)/filefrag.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
+ $(top_builddir)/lib/ext2fs/ext2_types.h $(top_srcdir)/lib/ext2fs/ext2_fs.h \
+ $(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/ext2fs/fiemap.h
base_device.o: $(srcdir)/base_device.c $(top_builddir)/lib/config.h \
$(top_builddir)/lib/dirpaths.h $(srcdir)/fsck.h
const char * program_name = "badblocks";
const char * done_string = N_("done \n");
-static int v_flag = 0; /* verbose */
-static int w_flag = 0; /* do r/w test: 0=no, 1=yes,
+static int v_flag; /* verbose */
+static int w_flag; /* do r/w test: 0=no, 1=yes,
* 2=non-destructive */
-static int s_flag = 0; /* show progress of test */
-static int force = 0; /* force check of mounted device */
-static int t_flag = 0; /* number of test patterns */
-static int t_max = 0; /* allocated test patterns */
-static unsigned int *t_patts = NULL; /* test patterns */
-static int current_O_DIRECT = 0; /* Current status of O_DIRECT flag */
-static int use_buffered_io = 0;
-static int exclusive_ok = 0;
-static unsigned int max_bb = 0; /* Abort test if more than this number of bad blocks has been encountered */
-static unsigned int d_flag = 0; /* delay factor between reads */
+static int s_flag; /* show progress of test */
+static int force; /* force check of mounted device */
+static int t_flag; /* number of test patterns */
+static int t_max; /* allocated test patterns */
+static unsigned int *t_patts; /* test patterns */
+static int use_buffered_io;
+static int exclusive_ok;
+static unsigned int max_bb; /* Abort test if more than this number of bad blocks has been encountered */
+static unsigned int d_flag; /* delay factor between reads */
static struct timeval time_start;
#define T_INC 32
ext2_loff_t offset)
{
#ifdef O_DIRECT
+ static int current_O_DIRECT; /* Current status of O_DIRECT flag */
int new_flag = O_DIRECT;
int flag;
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing - got +
blocks_at_once;
continue;
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
} else if (currently_testing == recover_block) {
try = blocks_at_once;
- recover_block = ~0;
+ recover_block = ~0U;
}
for (i=0; i < got; i++) {
if (memcmp(read_buffer + i * block_size,
errcode_t errcode;
unsigned long buf_used;
static unsigned int bb_count;
- int granularity = blocks_at_once;
- blk_t recover_block = ~0;
+ unsigned int granularity = blocks_at_once;
+ blk_t recover_block = ~0U;
bb_count = 0;
errcode = ext2fs_badblocks_list_iterate_begin(bb_list,&bb_iter);
got = do_read (dev, save_ptr, try, block_size,
currently_testing);
if (got == 0) {
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing +
blocks_at_once;
if (granularity != 1) {
currently_testing += got;
if (got != try) {
try = 1;
- if (recover_block == ~0)
+ if (recover_block == ~0U)
recover_block = currently_testing -
got + blocks_at_once;
continue;
maintained by Theodore Ts'o <tytso@alum.mit.edu>.
.SH BUGS AND LIMITATIONS
The `c', 's', and `u' attributes are not honored
-by the ext2 and ext3 filesystems as implemented in the current mainline
-Linux kernels.
+by the ext2, ext3, and ext4 filesystems as implemented in the current
+mainline Linux kernels.
.PP
The `j' option is only useful if the filesystem is mounted as ext3.
.PP
{
unsigned long flags;
STRUCT_STAT st;
- int extent_file = 0;
if (LSTAT (name, &st) == -1) {
if (!silent)
_("while reading flags on %s"), name);
return -1;
}
- if (flags & EXT4_EXTENTS_FL)
- extent_file = 1;
if (set) {
- if (extent_file && !(sf & EXT4_EXTENTS_FL)) {
- if (!silent)
- com_err(program_name, 0,
- _("Clearing extent flag not supported on %s"),
- name);
- return -1;
- }
if (verbose) {
printf (_("Flags of %s set as "), name);
print_flags (stdout, sf, 0);
flags &= ~rf;
if (add)
flags |= af;
- if (extent_file && !(flags & EXT4_EXTENTS_FL)) {
- if (!silent)
- com_err(program_name, 0,
- _("Clearing extent flag not supported on %s"),
- name);
- return -1;
- }
if (verbose) {
printf(_("Flags of %s set as "), name);
print_flags(stdout, flags, 0);
static void open_device(char *device_name, ext2_filsys *fs)
{
int retval;
- int flag = EXT2_FLAG_FORCE;
+ int flag = EXT2_FLAG_FORCE | EXT2_FLAG_64BITS;
retval = ext2fs_open(device_name, flag, 0, 0, unix_io_manager, fs);
if (retval) {
com_err(device_name, retval, "while opening filesystem");
exit(1);
}
+ (*fs)->default_bitmap_type = EXT2FS_BMAP64_RBTREE;
}
#endif
.SH SYNOPSIS
.B e2image
[
-.B \-rsI
+.B \-rsIQa
]
.I device
.I image-file
such as for example
.BR qemu-img .
.PP
+You can convert a qcow2 image into a raw image with:
+.PP
+.br
+\ \fBe2image \-r hda1.qcow2 hda1.raw\fR
+.br
+.PP
+This can be useful to write a qcow2 image containing all data to a
+sparse image file where it can be loop mounted, or to a disk partition.
+Note that this may not work with qcow2 images not generated by e2image.
+.PP
+.SH INCLUDING DATA
+Normally
+.B e2image
+only includes fs metadata, not regular file data. The
+.B \-a
+option can be specified to include all data. This will
+give an image that is suitable to use to clone the entire FS or
+for backup purposes. Note that this option only works with the
+raw or QCOW2 formats.
+.PP
.SH AUTHOR
.B e2image
was written by Theodore Ts'o (tytso@mit.edu).
const char * program_name = "e2image";
char * device_name = NULL;
+char all_data;
+char output_is_blk;
+/* writing to blk device: don't skip zeroed blocks */
static void lseek_error_and_exit(int errnum)
{
static void usage(void)
{
- fprintf(stderr, _("Usage: %s [-rsIQ] device image_file\n"),
+ fprintf(stderr, _("Usage: %s [-rsIQa] device image_file\n"),
program_name);
exit (1);
}
int ref_offset EXT2FS_ATTR((unused)),
void *priv_data EXT2FS_ATTR((unused)))
{
- if (blockcnt < 0) {
+ if (blockcnt < 0 || all_data) {
ext2fs_mark_block_bitmap2(meta_block_map, *block_nr);
meta_blocks_count++;
}
/*
* Mark the blocks used for the inode table
*/
- if (!ext2fs_bg_flags_test(fs, i, EXT2_BG_INODE_UNINIT) &&
+ if ((output_is_blk ||
+ !ext2fs_bg_flags_test(fs, i, EXT2_BG_INODE_UNINIT)) &&
ext2fs_inode_table_loc(fs, i)) {
unsigned int end = (unsigned) fs->inode_blocks_per_group;
/* skip unused blocks */
- if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ if (!output_is_blk &&
+ EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM))
end -= (ext2fs_bg_itable_unused(fs, i) /
EXT2_INODES_PER_BLOCK(fs->super));
char *cp = buf;
int left = blocksize;
+ if (output_is_blk)
+ return 0;
while (left > 0) {
if (*cp++)
return 0;
#endif
continue;
}
- if (dirent->name_len + 8 > rec_len) {
+ if (dirent->name_len + 8U > rec_len) {
printf("Corrupt directory block %lu: "
"bad name_len (%d)\n", (unsigned long) blk,
dirent->name_len);
if ((inode.i_flags & EXT4_EXTENTS_FL) ||
inode.i_block[EXT2_IND_BLOCK] ||
inode.i_block[EXT2_DIND_BLOCK] ||
- inode.i_block[EXT2_TIND_BLOCK]) {
+ inode.i_block[EXT2_TIND_BLOCK] || all_data) {
retval = ext2fs_block_iterate3(fs,
ino, BLOCK_FLAG_READ_ONLY, block_buf,
process_file_block, &pb);
{
errcode_t retval;
ext2_filsys fs;
- int open_flag = EXT2_FLAG_IMAGE_FILE;
+ int open_flag = EXT2_FLAG_IMAGE_FILE | EXT2_FLAG_64BITS;
int fd = 0;
io_manager io_ptr;
io_channel io;
}
ext2fs_close (fs);
- exit (0);
}
static struct ext2_qcow2_hdr *check_qcow2_image(int *fd, char *name)
int qcow2_fd = 0;
int fd = 0;
int ret = 0;
+ struct stat st;
#ifdef ENABLE_NLS
setlocale(LC_MESSAGES, "");
if (argc && *argv)
program_name = *argv;
add_error_table(&et_ext2_error_table);
- while ((c = getopt(argc, argv, "rsIQ")) != EOF)
+ while ((c = getopt(argc, argv, "rsIQa")) != EOF)
switch (c) {
case 'I':
flags |= E2IMAGE_INSTALL_FLAG;
case 's':
flags |= E2IMAGE_SCRAMBLE_FLAG;
break;
+ case 'a':
+ all_data = 1;
+ break;
default:
usage();
}
if (optind != argc - 2 )
usage();
+
+ if (all_data && !img_type) {
+ com_err(program_name, 0, "-a option can only be used "
+ "with raw or QCOW2 images.");
+ exit(1);
+ }
+
device_name = argv[optind];
image_fn = argv[optind+1];
"the stdout!\n");
exit(1);
}
-
+ if (fd != 1) {
+ if (fstat(fd, &st)) {
+ com_err(program_name, 0, "Can not stat output\n");
+ exit(1);
+ }
+ if (S_ISBLK(st.st_mode))
+ output_is_blk = 1;
+ }
if (flags & E2IMAGE_IS_QCOW2_FLAG) {
ret = qcow2_write_raw_image(qcow2_fd, fd, header);
if (ret) {
#include "../version.h"
#include "nls-enable.h"
-const char * program_name = "get_fstab";
+const char * program_name = "e2initrd_helper";
char * device_name;
static int open_flag;
static int root_type;
usage();
device_name = blkid_get_devname(NULL, argv[optind], NULL);
if (!device_name) {
- com_err("tune2fs", 0, _("Unable to resolve '%s'"),
+ com_err(program_name, 0, _("Unable to resolve '%s'"),
argv[optind]);
exit(1);
}
int ret;
retval = get_file(fs, "/etc/fstab", &file);
+ if (retval) {
+ com_err(program_name, retval, "couldn't open /etc/fstab");
+ exit(1);
+ }
while (!mem_file_eof(&file)) {
buf = get_line(&file);
.SH SYNOPSIS
.B filefrag
[
-.B \-Bbsvx
+.BI \-b blocksize
+]
+[
+.B \-BeksvxX
]
[
.I files...
Force the use of the older FIBMAP ioctl instead of the FIEMAP ioctl for
testing purposes.
.TP
-.B \-b
-Use 1024 byte blocksize for the output.
+.BI \-b blocksize
+Use
+.I blocksize
+in bytes for output instead of the filesystem blocksize.
+For compatibility with earlier versions of
+.BR filefrag ,
+if
+.I blocksize
+is unspecified it defaults to 1024 bytes.
+.TP
+.B \-e
+Print output in extent format, even for block-mapped files.
+.TP
+.BI \-k
+Use 1024\-byte blocksize for output (identical to '\-b 1024').
.TP
.B \-s
Sync the file before requesting the mapping.
.TP
.B \-x
Display mapping of extended attributes.
+.TP
+.B \-X
+Display extent block numbers in hexadecimal format.
.SH AUTHOR
.B filefrag
was written by Theodore Ts'o <tytso@mit.edu>.
#include <unistd.h>
int main(void) {
- fputs("This program is only supported on Linux!\n", stderr);
- exit(EXIT_FAILURE);
+ fputs("This program is only supported on Linux!\n", stderr);
+ exit(EXIT_FAILURE);
}
#else
#define _LARGEFILE64_SOURCE
#include <sys/vfs.h>
#include <sys/ioctl.h>
#include <linux/fd.h>
+#include <ext2fs/ext2fs.h>
#include <ext2fs/ext2_types.h>
#include <ext2fs/fiemap.h>
int verbose = 0;
-int no_bs = 0; /* Don't use the files blocksize, use 1K blocksize */
+int blocksize; /* Use specified blocksize (default 1kB) */
int sync_file = 0; /* fsync file before getting the mapping */
int xattr_map = 0; /* get xattr mapping */
-int force_bmap = 0;
-int logical_width = 12;
-int physical_width = 14;
-unsigned long long filesize;
+int force_bmap; /* force use of FIBMAP instead of FIEMAP */
+int force_extent; /* print output in extent format always */
+int logical_width = 8;
+int physical_width = 10;
+const char *ext_fmt = "%4d: %*llu..%*llu: %*llu..%*llu: %6llu: %s\n";
+const char *hex_fmt = "%4d: %*llx..%*llx: %*llx..%*llx: %6llx: %s\n";
#define FILEFRAG_FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR)
#define FIBMAP _IO(0x00, 1) /* bmap access */
#define FIGETBSZ _IO(0x00, 2) /* get the block size used for bmap */
+#define LUSTRE_SUPER_MAGIC 0x0BD00BD0
+
#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
#define EXT3_IOC_GETFLAGS _IOR('f', 1, long)
if (errno == EPERM) {
fprintf(stderr, "No permission to use FIBMAP ioctl; "
"must have root privileges\n");
- exit(1);
}
- perror("FIBMAP");
}
*phy_blk = b;
return ret;
}
+static void print_extent_header(void)
+{
+ printf(" ext: %*s %*s length: %*s flags:\n",
+ logical_width * 2 + 3,
+ "logical_offset:",
+ physical_width * 2 + 3, "physical_offset:",
+ physical_width + 1,
+ "expected:");
+}
+
static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
- unsigned long long expected, int blk_shift)
+ unsigned long long expected, int blk_shift,
+ ext2fs_struct_stat *st)
{
- __u64 phy_blk;
+ unsigned long long physical_blk;
unsigned long long logical_blk;
- unsigned long ext_len;
+ unsigned long long ext_len;
+ unsigned long long ext_blks;
char flags[256] = "";
- /* For inline data all offsets should be in terms of bytes, not blocks */
+ /* For inline data all offsets should be in bytes, not blocks */
if (fm_extent->fe_flags & FIEMAP_EXTENT_DATA_INLINE)
blk_shift = 0;
ext_len = fm_extent->fe_length >> blk_shift;
+ ext_blks = (fm_extent->fe_length - 1) >> blk_shift;
logical_blk = fm_extent->fe_logical >> blk_shift;
- phy_blk = fm_extent->fe_physical >> blk_shift;
+ physical_blk = fm_extent->fe_physical >> blk_shift;
+
+ if (expected)
+ sprintf(flags, ext_fmt == hex_fmt ? "%*llx: " : "%*llu: ",
+ physical_width, expected >> blk_shift);
+ else
+ sprintf(flags, "%.*s ", physical_width, " ");
if (fm_extent->fe_flags & FIEMAP_EXTENT_UNKNOWN)
strcat(flags, "unknown,");
if (fm_extent->fe_flags & FIEMAP_EXTENT_MERGED)
strcat(flags, "merged,");
- if (fm_extent->fe_logical + fm_extent->fe_length >= filesize)
+ if (fm_extent->fe_logical + fm_extent->fe_length >= (__u64) st->st_size)
strcat(flags, "eof,");
/* Remove trailing comma, if any */
if (flags[0])
flags[strlen(flags) - 1] = '\0';
- if (expected)
- printf("%4d %*llu %*llu %*llu %6lu %s\n",
- cur_ex, logical_width, logical_blk,
- physical_width, phy_blk, physical_width, expected,
- ext_len, flags);
- else
- printf("%4d %*llu %*llu %*s %6lu %s\n",
- cur_ex, logical_width, logical_blk,
- physical_width, phy_blk, physical_width, "",
- ext_len, flags);
+ printf(ext_fmt, cur_ex, logical_width, logical_blk,
+ logical_width, logical_blk + ext_blks,
+ physical_width, physical_blk,
+ physical_width, physical_blk + ext_blks,
+ ext_len, flags);
}
-static int filefrag_fiemap(int fd, int blk_shift, int *num_extents)
+static int filefrag_fiemap(int fd, int blk_shift, int *num_extents,
+ ext2fs_struct_stat *st)
{
- char buf[4096] = "";
+ char buf[16384];
struct fiemap *fiemap = (struct fiemap *)buf;
struct fiemap_extent *fm_ext = &fiemap->fm_extents[0];
int count = (sizeof(buf) - sizeof(*fiemap)) /
break;
if (verbose && !fiemap_header_printed) {
- printf(" ext %*s %*s %*s length flags\n", logical_width,
- "logical", physical_width, "physical",
- physical_width, "expected");
+ print_extent_header();
fiemap_header_printed = 1;
}
for (i = 0; i < fiemap->fm_mapped_extents; i++) {
- __u64 phy_blk, logical_blk;
- unsigned long ext_len;
-
- phy_blk = fm_ext[i].fe_physical >> blk_shift;
- ext_len = fm_ext[i].fe_length >> blk_shift;
- logical_blk = fm_ext[i].fe_logical >> blk_shift;
-
- if (logical_blk && phy_blk != expected) {
+ if (fm_ext[i].fe_logical != 0 &&
+ fm_ext[i].fe_physical != expected) {
tot_extents++;
} else {
expected = 0;
}
if (verbose)
print_extent_info(&fm_ext[i], n, expected,
- blk_shift);
+ blk_shift, st);
- expected = phy_blk + ext_len;
+ expected = fm_ext[i].fe_physical + fm_ext[i].fe_length;
if (fm_ext[i].fe_flags & FIEMAP_EXTENT_LAST)
last = 1;
n++;
}
- fiemap->fm_start = (fm_ext[i-1].fe_logical +
- fm_ext[i-1].fe_length);
+ fiemap->fm_start = (fm_ext[i - 1].fe_logical +
+ fm_ext[i - 1].fe_length);
} while (last == 0);
*num_extents = tot_extents;
-out:
+
return 0;
}
#define EXT2_DIRECT 12
+static int filefrag_fibmap(int fd, int blk_shift, int *num_extents,
+ ext2fs_struct_stat *st,
+ unsigned long numblocks, int is_ext2)
+{
+ struct fiemap_extent fm_ext;
+ unsigned long i, last_block;
+ unsigned long long logical;
+ /* Blocks per indirect block */
+ const long bpib = st->st_blksize / 4;
+ int count;
+
+ if (force_extent) {
+ memset(&fm_ext, 0, sizeof(fm_ext));
+ fm_ext.fe_flags = FIEMAP_EXTENT_MERGED;
+ }
+
+ if (sync_file)
+ fsync(fd);
+
+ for (i = 0, logical = 0, *num_extents = 0, count = last_block = 0;
+ i < numblocks;
+ i++, logical += st->st_blksize) {
+ unsigned long block = 0;
+ int rc;
+
+ if (is_ext2 && last_block) {
+ if (((i - EXT2_DIRECT) % bpib) == 0)
+ last_block++;
+ if (((i - EXT2_DIRECT - bpib) % (bpib * bpib)) == 0)
+ last_block++;
+ if (((i - EXT2_DIRECT - bpib - bpib * bpib) %
+ (((unsigned long long)bpib) * bpib * bpib)) == 0)
+ last_block++;
+ }
+ rc = get_bmap(fd, i, &block);
+ if (rc < 0)
+ return rc;
+ if (block == 0)
+ continue;
+ if (*num_extents == 0) {
+ (*num_extents)++;
+ if (force_extent) {
+ print_extent_header();
+ fm_ext.fe_physical = block * st->st_blksize;
+ }
+ }
+ count++;
+ if (force_extent && last_block != 0 &&
+ (block != last_block + 1 ||
+ fm_ext.fe_logical + fm_ext.fe_length != logical)) {
+ print_extent_info(&fm_ext, *num_extents - 1,
+ (last_block + 1) * st->st_blksize,
+ blk_shift, st);
+ fm_ext.fe_logical = logical;
+ fm_ext.fe_physical = block * st->st_blksize;
+ fm_ext.fe_length = 0;
+ (*num_extents)++;
+ } else if (verbose && last_block && (block != last_block + 1)) {
+ printf("Discontinuity: Block %ld is at %lu (was %lu)\n",
+ i, block, last_block + 1);
+ (*num_extents)++;
+ }
+ fm_ext.fe_length += st->st_blksize;
+ last_block = block;
+ }
+
+ if (force_extent)
+ print_extent_info(&fm_ext, *num_extents - 1,
+ last_block * st->st_blksize, blk_shift, st);
+
+ return count;
+}
+
static void frag_report(const char *filename)
{
- struct statfs fsinfo;
-#ifdef HAVE_FSTAT64
- struct stat64 fileinfo;
-#else
- struct stat fileinfo;
-#endif
- int bs;
+ static struct statfs fsinfo;
+ ext2fs_struct_stat st;
+ int blk_shift;
long fd;
- unsigned long block, last_block = 0, numblocks, i, count = 0;
- long bpib; /* Blocks per indirect block */
- long cylgroups;
- int num_extents = 0, expected;
+ unsigned long numblocks;
+ int data_blocks_per_cyl = 1;
+ int num_extents = 1, expected = ~0;
int is_ext2 = 0;
- static int once = 1;
+ static dev_t last_device;
unsigned int flags;
- int rc;
+ int width;
-#ifdef HAVE_OPEN64
+#if defined(HAVE_OPEN64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
fd = open64(filename, O_RDONLY);
#else
fd = open(filename, O_RDONLY);
return;
}
- if (statfs(filename, &fsinfo) < 0) {
- perror("statfs");
- return;
- }
-#ifdef HAVE_FSTAT64
- if (stat64(filename, &fileinfo) < 0) {
+#if defined(HAVE_FSTAT64) && !defined(__OSX_AVAILABLE_BUT_DEPRECATED)
+ if (fstat64(fd, &st) < 0) {
#else
- if (stat(filename, &fileinfo) < 0) {
+ if (fstat(fd, &st) < 0) {
#endif
perror("stat");
return;
}
+
+ if (last_device != st.st_dev) {
+ if (fstatfs(fd, &fsinfo) < 0) {
+ perror("fstatfs");
+ return;
+ }
+ if (verbose)
+ printf("Filesystem type is: %lx\n",
+ (unsigned long) fsinfo.f_type);
+ }
+ st.st_blksize = fsinfo.f_bsize;
if (ioctl(fd, EXT3_IOC_GETFLAGS, &flags) < 0)
flags = 0;
if (!(flags & EXT4_EXTENTS_FL) &&
((fsinfo.f_type == 0xef51) || (fsinfo.f_type == 0xef52) ||
(fsinfo.f_type == 0xef53)))
is_ext2++;
- if (verbose && once)
- printf("Filesystem type is: %lx\n",
- (unsigned long) fsinfo.f_type);
-
- cylgroups = div_ceil(fsinfo.f_blocks, fsinfo.f_bsize*8);
- if (verbose && is_ext2 && once)
- printf("Filesystem cylinder groups is approximately %ld\n",
- cylgroups);
-
- physical_width = int_log10(fsinfo.f_blocks);
- if (physical_width < 8)
- physical_width = 8;
-
- if (ioctl(fd, FIGETBSZ, &bs) < 0) { /* FIGETBSZ takes an int */
- perror("FIGETBSZ");
- close(fd);
- return;
+
+ if (is_ext2) {
+ long cylgroups = div_ceil(fsinfo.f_blocks, fsinfo.f_bsize * 8);
+
+ if (verbose && last_device != st.st_dev)
+ printf("Filesystem cylinder groups approximately %ld\n",
+ cylgroups);
+
+ data_blocks_per_cyl = fsinfo.f_bsize * 8 -
+ (fsinfo.f_files / 8 / cylgroups) - 3;
}
+ last_device = st.st_dev;
+
+ width = int_log10(fsinfo.f_blocks);
+ if (width > physical_width)
+ physical_width = width;
- if (no_bs)
- bs = 1024;
+ numblocks = (st.st_size + fsinfo.f_bsize - 1) / fsinfo.f_bsize;
+ if (blocksize != 0)
+ blk_shift = int_log2(blocksize);
+ else
+ blk_shift = int_log2(fsinfo.f_bsize);
- bpib = bs / 4;
- numblocks = (fileinfo.st_size + (bs-1)) / bs;
- logical_width = int_log10(numblocks);
- if (logical_width < 7)
- logical_width = 7;
- filesize = (long long)fileinfo.st_size;
+ width = int_log10(numblocks);
+ if (width > logical_width)
+ logical_width = width;
if (verbose)
- printf("File size of %s is %lld (%ld block%s, blocksize %d)\n",
- filename, (long long) fileinfo.st_size, numblocks,
- numblocks == 1 ? "" : "s", bs);
+ printf("File size of %s is %llu (%lu block%s of %d bytes)\n",
+ filename, (unsigned long long)st.st_size,
+ numblocks * fsinfo.f_bsize >> blk_shift,
+ numblocks == 1 ? "" : "s", 1 << blk_shift);
+
if (force_bmap ||
- filefrag_fiemap(fd, int_log2(bs), &num_extents) != 0) {
- for (i = 0, count = 0; i < numblocks; i++) {
- if (is_ext2 && last_block) {
- if (((i-EXT2_DIRECT) % bpib) == 0)
- last_block++;
- if (((i-EXT2_DIRECT-bpib) % (bpib*bpib)) == 0)
- last_block++;
- if (((i-EXT2_DIRECT-bpib-bpib*bpib) %
- (((__u64) bpib)*bpib*bpib)) == 0)
- last_block++;
- }
- rc = get_bmap(fd, i, &block);
- if (block == 0)
- continue;
- if (!num_extents)
- num_extents++;
- count++;
- if (last_block && (block != last_block+1) ) {
- if (verbose)
- printf("Discontinuity: Block %ld is at "
- "%lu (was %lu)\n",
- i, block, last_block+1);
- num_extents++;
+ filefrag_fiemap(fd, blk_shift, &num_extents, &st) != 0) {
+ expected = filefrag_fibmap(fd, blk_shift, &num_extents,
+ &st, numblocks, is_ext2);
+ if (expected < 0) {
+ if (errno == EINVAL || errno == ENOTTY) {
+ fprintf(stderr, "%s: FIBMAP unsupported\n",
+ filename);
+ } else if (errno != EPERM) {
+ fprintf(stderr, "%s: FIBMAP error: %s",
+ filename, strerror(errno));
}
- last_block = block;
+ goto out_close;
}
+ expected = expected / data_blocks_per_cyl + 1;
}
+
if (num_extents == 1)
printf("%s: 1 extent found", filename);
else
printf("%s: %d extents found", filename, num_extents);
/* count, and thus expected, only set for indirect FIBMAP'd files */
- if (is_ext2) {
- expected = (count/((bs*8)-(fsinfo.f_files/8/cylgroups)-3))+1;
- if (expected && expected < num_extents)
- printf(", perfection would be %d extent%s\n", expected,
- (expected>1) ? "s" : "");
- } else
+ if (is_ext2 && expected && expected < num_extents)
+ printf(", perfection would be %d extent%s\n", expected,
+ (expected > 1) ? "s" : "");
+ else
fputc('\n', stdout);
+out_close:
close(fd);
- once = 0;
}
static void usage(const char *progname)
{
- fprintf(stderr, "Usage: %s [-Bbvsx] file ...\n", progname);
+ fprintf(stderr, "Usage: %s [-b{blocksize}] [-BeklsvxX] file ...\n",
+ progname);
exit(1);
}
char **cpp;
int c;
- while ((c = getopt(argc, argv, "Bbsvx")) != EOF)
+ while ((c = getopt(argc, argv, "Bb::eksvxX")) != EOF)
switch (c) {
case 'B':
force_bmap++;
break;
case 'b':
- no_bs++;
+ if (optarg) {
+ char *end;
+ blocksize = strtoul(optarg, &end, 0);
+ if (end) {
+ switch (end[0]) {
+ case 'g':
+ case 'G':
+ blocksize *= 1024;
+ /* no break */
+ case 'm':
+ case 'M':
+ blocksize *= 1024;
+ /* no break */
+ case 'k':
+ case 'K':
+ blocksize *= 1024;
+ break;
+ default:
+ break;
+ }
+ }
+ } else { /* Allow -b without argument for compat. Remove
+ * this eventually so "-b {blocksize}" works */
+ fprintf(stderr, "%s: -b needs a blocksize "
+ "option, assuming 1024-byte blocks.\n",
+ argv[0]);
+ blocksize = 1024;
+ }
break;
- case 'v':
- verbose++;
+ case 'e':
+ force_extent++;
+ if (!verbose)
+ verbose++;
+ break;
+ case 'k':
+ blocksize = 1024;
break;
case 's':
sync_file++;
break;
+ case 'v':
+ verbose++;
+ break;
case 'x':
xattr_map++;
break;
+ case 'X':
+ ext_fmt = hex_fmt;
+ break;
default:
usage(argv[0]);
break;
#include "et/com_err.h"
+#ifdef HAVE_SETMNTENT
static char *skip_over_blank(char *cp)
{
while (*cp && isspace(*cp))
*buf = next;
return word;
}
+#endif
/*
* Helper function which checks a file in /etc/mtab format to see if a
this option is specified twice, then a slower read-write
test is used instead of a fast read-only test.
.TP
+.B \-C " cluster-size"
+Specify the size of cluster in bytes for filesystems using the bigalloc
+feature. Valid cluster-size values are from 2048 to 256M bytes per
+cluster. By default (if bigalloc is enabled and no cluster size is
+otherwise specified using this option), the cluster size will be 16
+times the block size.
+.TP
.B \-D
Use direct I/O when writing to the disk. This avoids mke2fs dirtying a
lot of buffer cache memory, which may impact other applications running
entirely one time. If the option value is omitted, it defaults to 1 to
enable lazy journal inode zeroing.
.TP
+.BI root_owner [=uid:gid]
+Specify the numeric user and group ID of the root directory. If no UID:GID
+is specified, use the user and group ID of the user running \fBmke2fs\fR.
+In \fBmke2fs\fR 1.42 and earlier the UID and GID of the root directory were
+set by default to the UID and GID of the user running the mke2fs command.
+The \fBroot_owner=\fR option allows explicitly specifying these values,
+and avoid side-effects for users that do not expect the contents of the
+filesystem to change based on the user running \fBmke2fs\fR.
+.TP
.B test_fs
Set a flag in the filesystem superblock indicating that it may be
mounted using experimental kernel code, such as the ext4dev filesystem.
option rather than manipulating the number of blocks per group.)
This option is generally used by developers who
are developing test cases.
+.IP
+If the bigalloc feature is enabled, the
+.B \-g
+option will specify the number of clusters in a block group.
.TP
.BI \-G " number-of-groups"
Specify the number of block groups that will be packed together to
pseudo-filesystem feature "none" will clear all filesystem features.
.RS 1.2i
.TP
+.B bigalloc
+This feature enables clustered allocation, so that the unit of
+allocation is a power of two number of blocks. That is, each bit in the
+what had traditionally been known as the block allocation bitmap now
+indicates whether a cluster is in use or not, where a cluster is by
+default composed of 16 blocks. This feature can decrease the time
+spent on doing block allocation and brings smaller fragmentation, especially
+for large files. The size can be specified using the
+.B \-C option.
+.IP
+.B Warning:
+The bigalloc feature is still under development, and may not be fully
+supported with your kernel or may have various bugs. Please see the web
+page http://ext4.wiki.kernel.org/index.php/Bigalloc for details.
+.TP
.B dir_index
Use hashed b-trees to speed up lookups in large directories.
.TP
-.B extent
+.B extents
Instead of using the indirect block scheme for storing the location of
data blocks in an inode, use extents instead. This is a much more
efficient encoding which speeds up filesystem access, especially for
-large files.
+large files. (Note: both extent and extents are accepted for
+historical/backwards compatibility reasons.)
.TP
.B filetype
Store file type information in directory entries.
will pick a default either via how
the command was run (for example, using a name of the form mkfs.ext2,
mkfs.ext3, etc.) or via a default as defined by the
-.BR /etc/mke2fs.conf (5)
+.B /etc/mke2fs.conf
file. This option controls which filesystem options are used by
default, based on the
.B fstypes
configuration stanza in
-.BR /etc/mke2fs.conf (5).
+.BR /etc/mke2fs.conf .
.sp
If the
.B \-O
.B mke2fs
can choose optimal filesystem parameters for that use. The usage
types that are supported are defined in the configuration file
-.BR /etc/mke2fs.conf (5).
+.BR /etc/mke2fs.conf .
The user may specify one or more usage types
using a comma separated list.
.sp
int direct_io;
int force;
int noaction;
+uid_t root_uid;
+gid_t root_gid;
int journal_size;
int journal_flags;
int lazy_itable_init;
return l;
}
+#ifdef __linux__
static int parse_version_number(const char *s)
{
int major, minor, rev;
return 0;
return ((((major * 256) + minor) * 256) + rev);
}
+#endif
/*
* Helper function for read_bb_file and test_disk
com_err("ext2fs_mkdir", retval, _("while creating root dir"));
exit(1);
}
- if (geteuid()) {
+ if (root_uid != 0 || root_gid != 0) {
retval = ext2fs_read_inode(fs, EXT2_ROOT_INO, &inode);
if (retval) {
com_err("ext2fs_read_inode", retval,
_("while reading root inode"));
exit(1);
}
- uid = getuid();
- inode.i_uid = uid;
- ext2fs_set_i_uid_high(inode, uid >> 16);
- if (uid) {
- gid = getgid();
- inode.i_gid = gid;
- ext2fs_set_i_gid_high(inode, gid >> 16);
- }
+
+ inode.i_uid = root_uid;
+ ext2fs_set_i_uid_high(inode, root_uid >> 16);
+ inode.i_gid = root_gid;
+ ext2fs_set_i_gid_high(inode, root_gid >> 16);
+
retval = ext2fs_write_new_inode(fs, EXT2_ROOT_INO, &inode);
if (retval) {
com_err("ext2fs_write_inode", retval,
ext2fs_r_blocks_count(s),
100.0 * ext2fs_r_blocks_count(s) / ext2fs_blocks_count(s));
printf(_("First data block=%u\n"), s->s_first_data_block);
+ if (root_uid != 0 || root_gid != 0)
+ printf(_("Root directory owner=%u:%u\n"), root_uid, root_gid);
if (s->s_reserved_gdt_blocks)
printf(_("Maximum filesystem blocks=%lu\n"),
(s->s_reserved_gdt_blocks + fs->desc_blocks) *
EXT2_MKJOURNAL_LAZYINIT : 0;
else
journal_flags |= EXT2_MKJOURNAL_LAZYINIT;
+ } else if (!strcmp(token, "root_owner")) {
+ if (arg) {
+ root_uid = strtoul(arg, &p, 0);
+ if (*p != ':') {
+ fprintf(stderr,
+ _("Invalid root_owner: '%s'\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ p++;
+ root_gid = strtoul(p, &p, 0);
+ if (*p) {
+ fprintf(stderr,
+ _("Invalid root_owner: '%s'\n"),
+ arg);
+ r_usage++;
+ continue;
+ }
+ } else {
+ root_uid = getuid();
+ root_gid = getgid();
+ }
} else if (!strcmp(token, "discard")) {
discard = 1;
} else if (!strcmp(token, "nodiscard")) {
"\tresize=<resize maximum size in blocks>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+ "\troot_uid=<uid of root directory>\n"
+ "\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
/*
* Return TRUE if the profile has the given subsection
*/
-static int profile_has_subsection(profile_t profile, const char *section,
+static int profile_has_subsection(profile_t prof, const char *section,
const char *subsection)
{
void *state;
names[1] = subsection;
names[2] = 0;
- if (profile_iterator_create(profile, names,
+ if (profile_iterator_create(prof, names,
PROFILE_ITER_LIST_SECTION |
PROFILE_ITER_RELATIONS_ONLY, &state))
return 0;
static char **parse_fs_type(const char *fs_type,
const char *usage_types,
- struct ext2_super_block *fs_param,
+ struct ext2_super_block *sb,
blk64_t fs_blocks_count,
char *progname)
{
}
}
- meg = (1024 * 1024) / EXT2_BLOCK_SIZE(fs_param);
+ meg = (1024 * 1024) / EXT2_BLOCK_SIZE(sb);
if (fs_blocks_count < 3 * meg)
size_type = "floppy";
else if (fs_blocks_count < 512 * meg)
}
if (t)
cp = t+1;
- else {
- cp = "";
+ else
break;
- }
}
free(parse_str);
free(profile_type);
return (list.list);
}
-static char *get_string_from_profile(char **fs_types, const char *opt,
+static char *get_string_from_profile(char **types, const char *opt,
const char *def_val)
{
char *ret = 0;
int i;
- for (i=0; fs_types[i]; i++);
+ for (i=0; types[i]; i++);
for (i-=1; i >=0 ; i--) {
- profile_get_string(profile, "fs_types", fs_types[i],
+ profile_get_string(profile, "fs_types", types[i],
opt, 0, &ret);
if (ret)
return ret;
return (ret);
}
-static int get_int_from_profile(char **fs_types, const char *opt, int def_val)
+static int get_int_from_profile(char **types, const char *opt, int def_val)
{
int ret;
char **cpp;
profile_get_integer(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_integer(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
-static double get_double_from_profile(char **fs_types, const char *opt,
+static double get_double_from_profile(char **types, const char *opt,
double def_val)
{
double ret;
char **cpp;
profile_get_double(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_double(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
-static int get_bool_from_profile(char **fs_types, const char *opt, int def_val)
+static int get_bool_from_profile(char **types, const char *opt, int def_val)
{
int ret;
char **cpp;
profile_get_boolean(profile, "defaults", opt, 0, def_val, &ret);
- for (cpp = fs_types; *cpp; cpp++)
+ for (cpp = types; *cpp; cpp++)
profile_get_boolean(profile, "fs_types", *cpp, opt, ret, &ret);
return ret;
}
"b:cg:i:jl:m:no:qr:s:t:vC:DE:FG:I:J:KL:M:N:O:R:ST:U:V")) != EOF) {
switch (c) {
case 'b':
- blocksize = strtol(optarg, &tmp, 0);
+ blocksize = parse_num_blocks2(optarg, -1);
b = (blocksize > 0) ? blocksize : -blocksize;
if (b < EXT2_MIN_BLOCK_SIZE ||
- b > EXT2_MAX_BLOCK_SIZE || *tmp) {
+ b > EXT2_MAX_BLOCK_SIZE) {
com_err(program_name, 0,
_("invalid block size - %s"), optarg);
exit(1);
cflag++;
break;
case 'C':
- cluster_size = strtoul(optarg, &tmp, 0);
- if (cluster_size < EXT2_MIN_CLUSTER_SIZE ||
- cluster_size > EXT2_MAX_CLUSTER_SIZE || *tmp) {
+ cluster_size = parse_num_blocks2(optarg, -1);
+ if (cluster_size <= EXT2_MIN_CLUSTER_SIZE ||
+ cluster_size > EXT2_MAX_CLUSTER_SIZE) {
com_err(program_name, 0,
_("invalid cluster size - %s"),
optarg);
case 'D':
direct_io = 1;
break;
+ case 'R':
+ com_err(program_name, 0,
+ _("'-R' is deprecated, use '-E' instead"));
+ /* fallthrough */
+ case 'E':
+ extended_opts = optarg;
+ break;
+ case 'F':
+ force++;
+ break;
case 'g':
fs_param.s_blocks_per_group = strtoul(optarg, &tmp, 0);
if (*tmp) {
exit(1);
}
break;
+ case 'I':
+ inode_size = strtoul(optarg, &tmp, 0);
+ if (*tmp) {
+ com_err(program_name, 0,
+ _("invalid inode size - %s"), optarg);
+ exit(1);
+ }
+ break;
+ case 'j':
+ if (!journal_size)
+ journal_size = -1;
+ break;
case 'J':
parse_journal_opts(optarg);
break;
"instead!\n"));
discard = 0;
break;
- case 'j':
- if (!journal_size)
- journal_size = -1;
- break;
case 'l':
bad_blocks_filename = malloc(strlen(optarg)+1);
if (!bad_blocks_filename) {
}
strcpy(bad_blocks_filename, optarg);
break;
+ case 'L':
+ volume_label = optarg;
+ break;
case 'm':
reserved_ratio = strtod(optarg, &tmp);
if ( *tmp || reserved_ratio > 50 ||
exit(1);
}
break;
+ case 'M':
+ mount_dir = optarg;
+ break;
case 'n':
noaction++;
break;
+ case 'N':
+ num_inodes = strtoul(optarg, &tmp, 0);
+ if (*tmp) {
+ com_err(program_name, 0,
+ _("bad num inodes - %s"), optarg);
+ exit(1);
+ }
+ break;
case 'o':
creator_os = optarg;
break;
+ case 'O':
+ fs_features = optarg;
+ break;
case 'q':
quiet = 1;
break;
case 's': /* deprecated */
s_opt = atoi(optarg);
break;
- case 'I':
- inode_size = strtoul(optarg, &tmp, 0);
- if (*tmp) {
- com_err(program_name, 0,
- _("invalid inode size - %s"), optarg);
- exit(1);
- }
- break;
- case 'v':
- verbose = 1;
- break;
- case 'F':
- force++;
- break;
- case 'L':
- volume_label = optarg;
- break;
- case 'M':
- mount_dir = optarg;
- break;
- case 'N':
- num_inodes = strtoul(optarg, &tmp, 0);
- if (*tmp) {
- com_err(program_name, 0,
- _("bad num inodes - %s"), optarg);
- exit(1);
- }
- break;
- case 'O':
- fs_features = optarg;
- break;
- case 'E':
- case 'R':
- extended_opts = optarg;
- break;
case 'S':
super_only = 1;
break;
case 'U':
fs_uuid = optarg;
break;
+ case 'v':
+ verbose = 1;
+ break;
case 'V':
/* Print version number and exit */
show_version_only++;
blocksize*16);
fs_param.s_log_cluster_size =
int_log2(cluster_size >> EXT2_MIN_CLUSTER_LOG_SIZE);
+ if (fs_param.s_log_cluster_size &&
+ fs_param.s_log_cluster_size < fs_param.s_log_block_size) {
+ com_err(program_name, 0,
+ _("The cluster size may not be "
+ "smaller than the block size.\n"));
+ exit(1);
+ }
+ } else if (cluster_size) {
+ com_err(program_name, 0,
+ _("specifying a cluster size requires the "
+ "bigalloc feature"));
+ exit(1);
} else
fs_param.s_log_cluster_size = fs_param.s_log_block_size;
blocksize = EXT2_BLOCK_SIZE(&fs_param);
+ /*
+ * Initialize s_desc_size so that the parse_extended_opts()
+ * can correctly handle "-E resize=NNN" if the 64-bit option
+ * is set.
+ */
+ if (fs_param.s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ fs_param.s_desc_size = EXT2_MIN_DESC_SIZE_64BIT;
+
/* This check should happen beyond the last assignment to blocksize */
if (blocksize > sys_page_size) {
if (!force) {
if (extended_opts)
parse_extended_opts(&fs_param, extended_opts);
+ /* Can't support bigalloc feature without extents feature */
+ if ((fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) &&
+ !(fs_param.s_feature_incompat & EXT3_FEATURE_INCOMPAT_EXTENTS)) {
+ com_err(program_name, 0,
+ _("Can't support bigalloc feature without "
+ "extents feature"));
+ exit(1);
+ }
+
+ if (!quiet &&
+ (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC))
+ fprintf(stderr, _("\nWarning: the bigalloc feature is still "
+ "under development\n"
+ "See https://ext4.wiki.kernel.org/"
+ "index.php/Bigalloc for more information\n\n"));
+
+ if (!quiet &&
+ (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA))
+ fprintf(stderr, _("\nWarning: the quota feature is still "
+ "under development\n"
+ "See https://ext4.wiki.kernel.org/"
+ "index.php/Quota for more information\n\n"));
+
/* Since sparse_super is the default, we would only have a problem
* here if it was explicitly disabled.
*/
}
}
+ /*
+ * If the bigalloc feature is enabled, then the -g option will
+ * specify the number of clusters per group.
+ */
+ if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) {
+ fs_param.s_clusters_per_group = fs_param.s_blocks_per_group;
+ fs_param.s_blocks_per_group = 0;
+ }
+
if (inode_size == 0)
inode_size = get_int_from_profile(fs_types, "inode_size", 0);
if (!flex_bg_size && (fs_param.s_feature_incompat &
fs_param.s_inodes_count = num_inodes ? num_inodes :
(ext2fs_blocks_count(&fs_param) * blocksize) / inode_ratio;
- if ((((long long)fs_param.s_inodes_count) *
+ if ((((unsigned long long)fs_param.s_inodes_count) *
(inode_size ? inode_size : EXT2_GOOD_OLD_INODE_SIZE)) >=
((ext2fs_blocks_count(&fs_param)) *
EXT2_BLOCK_SIZE(&fs_param))) {
{
errcode_t retval = ENOMEM;
char *tdb_dir = NULL, *tdb_file = NULL;
- char *device_name, *tmp_name;
+ char *dev_name, *tmp_name;
int free_tdb_dir = 0;
/*
tmp_name = strdup(name);
if (!tmp_name)
goto errout;
- device_name = basename(tmp_name);
- tdb_file = malloc(strlen(tdb_dir) + 8 + strlen(device_name) + 7 + 1);
+ dev_name = basename(tmp_name);
+ tdb_file = malloc(strlen(tdb_dir) + 8 + strlen(dev_name) + 7 + 1);
if (!tdb_file) {
free(tmp_name);
goto errout;
}
- sprintf(tdb_file, "%s/mke2fs-%s.e2undo", tdb_dir, device_name);
+ sprintf(tdb_file, "%s/mke2fs-%s.e2undo", tdb_dir, dev_name);
free(tmp_name);
if (!access(tdb_file, F_OK)) {
static void fix_cluster_bg_counts(ext2_filsys fs)
{
blk64_t cluster, num_clusters, tot_free;
- int grp_free, num_free, group, num;
+ unsigned num = 0;
+ int grp_free, num_free, group;
num_clusters = EXT2FS_B2C(fs, ext2fs_blocks_count(fs->super));
- tot_free = num_free = num = group = grp_free = 0;
+ tot_free = num_free = group = grp_free = 0;
for (cluster = EXT2FS_B2C(fs, fs->super->s_first_data_block);
cluster < num_clusters; cluster++) {
if (!ext2fs_test_block_bitmap2(fs->block_map,
exit(1);
}
+ /* Calculate journal blocks */
+ if (!journal_device && ((journal_size) ||
+ (fs_param.s_feature_compat &
+ EXT3_FEATURE_COMPAT_HAS_JOURNAL)))
+ journal_blocks = figure_journal_size(journal_size, fs);
+
/* Can't undo discard ... */
if (!noaction && discard && (io_ptr != undo_io_manager)) {
retval = mke2fs_discard_device(fs);
} else if ((journal_size) ||
(fs_param.s_feature_compat &
EXT3_FEATURE_COMPAT_HAS_JOURNAL)) {
- journal_blocks = figure_journal_size(journal_size, fs);
-
if (super_only) {
printf(_("Skipping journal creation in super-only mode\n"));
fs->super->s_journal_inum = EXT2_JOURNAL_INO;
.BR mke2fs (8).
It controls the default parameters used by
.BR mke2fs (8)
-when it is creating ext2 or ext3 filesystems.
+when it is creating ext2, ext3, or ext4 filesystems.
.PP
The
.I mke2fs.conf
EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
- EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER |
- EXT4_FEATURE_RO_COMPAT_QUOTA
+#ifdef CONFIG_QUOTA
+ EXT4_FEATURE_RO_COMPAT_QUOTA |
+#endif
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER
};
static __u32 clear_ok_features[3] = {
EXT4_FEATURE_RO_COMPAT_HUGE_FILE|
EXT4_FEATURE_RO_COMPAT_DIR_NLINK|
EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE|
- EXT4_FEATURE_RO_COMPAT_GDT_CSUM |
- EXT4_FEATURE_RO_COMPAT_QUOTA
+#ifdef CONFIG_QUOTA
+ EXT4_FEATURE_RO_COMPAT_QUOTA |
+#endif
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM
};
/*
struct ext2_super_block *sb = fs->super;
struct ext2_group_desc *gd;
__u32 old_features[3];
- int i, type_err;
+ dgrp_t i;
+ int type_err;
unsigned int mask_err;
#define FEATURE_ON(type, mask) (!(old_features[(type)] & (mask)) && \
return 1;
}
-void handle_quota_options(ext2_filsys fs)
+static void handle_quota_options(ext2_filsys fs)
{
quota_ctx_t qctx;
ext2_ino_t qf_ino;
quota_release_context(&qctx);
if ((usrquota == QOPT_ENABLE) || (grpquota == QOPT_ENABLE)) {
+ fprintf(stderr, _("\nWarning: the quota feature is still "
+ "under development\n"
+ "See https://ext4.wiki.kernel.org/"
+ "index.php/Quota for more information\n\n"));
fs->super->s_feature_ro_compat |= EXT4_FEATURE_RO_COMPAT_QUOTA;
ext2fs_mark_super_dirty(fs);
} else if (!fs->super->s_usr_quota_inum &&
return;
}
-void parse_quota_opts(const char *opts)
+static void parse_quota_opts(const char *opts)
{
char *buf, *token, *next, *p;
int len;
*io_options++ = 0;
device_name = blkid_get_devname(NULL, argv[optind], NULL);
if (!device_name) {
- com_err("tune2fs", 0, _("Unable to resolve '%s'"),
+ com_err(program_name, 0, _("Unable to resolve '%s'"),
argv[optind]);
exit(1);
}
strcmp(token, "clear_mmp") == 0) {
clear_mmp = 1;
} else if (strcmp(token, "mmp_update_interval") == 0) {
- unsigned long interval;
+ unsigned long intv;
if (!arg) {
r_usage++;
continue;
}
- interval = strtoul(arg, &p, 0);
+ intv = strtoul(arg, &p, 0);
if (*p) {
fprintf(stderr,
_("Invalid mmp_update_interval: %s\n"),
r_usage++;
continue;
}
- if (interval == 0) {
- interval = EXT4_MMP_UPDATE_INTERVAL;
- } else if (interval > EXT4_MMP_MAX_UPDATE_INTERVAL) {
+ if (intv == 0) {
+ intv = EXT4_MMP_UPDATE_INTERVAL;
+ } else if (intv > EXT4_MMP_MAX_UPDATE_INTERVAL) {
fprintf(stderr,
_("mmp_update_interval too big: %lu\n"),
- interval);
+ intv);
r_usage++;
continue;
}
printf(P_("Setting multiple mount protection update "
"interval to %lu second\n",
"Setting multiple mount protection update "
- "interval to %lu seconds\n", interval),
- interval);
- fs->super->s_mmp_update_interval = interval;
+ "interval to %lu seconds\n", intv),
+ intv);
+ fs->super->s_mmp_update_interval = intv;
ext2fs_mark_super_dirty(fs);
} else if (!strcmp(token, "test_fs")) {
fs->super->s_flags |= EXT2_FLAGS_TEST_FILESYS;
rc = 1;
goto closefs;
}
+ if (new_inode_size > fs->blocksize) {
+ fprintf(stderr, _("Invalid inode size %lu (max %d)\n"),
+ new_inode_size, fs->blocksize);
+ rc = 1;
+ goto closefs;
+ }
/*
* If inode resize is requested use the
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42.2\n"
+"Project-Id-Version: e2fsprogs 1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-10 20:44+0200\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-19 21:51+0100\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Špatný blok %u mimo rozsah; ignorován.\n"
msgstr "při čtení iuzlu špatných bloků"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "při pokusu otevřít %s"
msgid "while trying popen '%s'"
msgstr "při pokusu popen „%s“"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
msgstr "při načítání seznamu špatných bloků ze souboru"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Varování: v iuzlu špatných bloků nalezen nepovolený blok %u. Vymazán.\n"
+msgstr "Varování: v iuzlu špatných bloků nalezen nepovolený blok %u. Vymazán.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Použití: %s [-F] [-I bloky_inode_bufferů] zařízení\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
msgstr "při otevírání %s pro synchronizaci"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "při pokusu synchronizovat %s"
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Superblok žurnálu systému souborů je neznámého typu %N (nepodporováno).\n"
-"Je pravděpodobné, že vaše kopie e2fsck je stará a/nebo nepodporuje tento "
-"formát žurnálu.\n"
+"Je pravděpodobné, že vaše kopie e2fsck je stará a/nebo nepodporuje tento formát žurnálu.\n"
"Je také možné, že superblok žurnálu je poškozen.\n"
#. @-expanded: journal superblock is corrupt.\n
#: e2fsck/problem.c:226
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr ""
-"Příznak superbloku has_journal (má_žurnál) není nastaven, avšak žurnálový %s "
-"je přítomen.\n"
+msgstr "Příznak superbloku has_journal (má_žurnál) není nastaven, avšak žurnálový %s je přítomen.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
#: e2fsck/problem.c:231
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr ""
-"Superblok má nastaven příznak needs_recovery (potřebuje_obnovit), avšak "
-"žádný žurnál neexistuje.\n"
+msgstr "Superblok má nastaven příznak needs_recovery (potřebuje_obnovit), avšak žádný žurnál neexistuje.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:236
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr ""
-"Příznak superbloku needs_recovery (potřebuje_obnovit) není nastaven, avšak "
-"žurnál obsahuje data.\n"
+msgstr "Příznak superbloku needs_recovery (potřebuje_obnovit) není nastaven, avšak žurnál obsahuje data.\n"
#. @-expanded: Clear journal
#: e2fsck/problem.c:241
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:246 e2fsck/problem.c:695
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-"Systém souborů má příznak(y) vlastností nastaveny, ačkoliv se jedná o revizi "
-"0. "
+msgstr "Systém souborů má příznak(y) vlastností nastaveny, ačkoliv se jedná o revizi 0. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:251
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:276
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr ""
-"Superblok žurnálu má nastaven příznak neznámé vlastnosti „jen pro čtení“.\n"
+msgstr "Superblok žurnálu má nastaven příznak neznámé vlastnosti „jen pro čtení“.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:281
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr ""
-"Superblok žurnálu má nastaven příznak neznámé vlastnosti „nekompatibilní“.\n"
+msgstr "Superblok žurnálu má nastaven příznak neznámé vlastnosti „nekompatibilní“.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:286
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
#: e2fsck/problem.c:312
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr ""
-"Příznak obnovení není nastaven v záložním superbloku, takže přesto spouštím "
-"žurnál.\n"
+msgstr "Příznak obnovení není nastaven v záložním superbloku, takže přesto spouštím žurnál.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
#: e2fsck/problem.c:362
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr ""
-"Deskriptor skupiny %g označen jako neinicializovaný bez sady vlastností.\n"
+msgstr "Deskriptor skupiny %g označen jako neinicializovaný bez sady vlastností.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
#: e2fsck/problem.c:367
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Čas posledního připojení superbloku leží v budoucnosti.\n"
-"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové "
-"hodiny "
+"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové hodiny "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Čas posledního zápisu superbloku leží v budoucnosti.\n"
-"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové "
-"hodiny. "
+"\t(rozdíl menší než den, pravděpodobně jsou chybně nastaveny hardwarové hodiny. "
#. @-expanded: One or more block group descriptor checksums are invalid.
#: e2fsck/problem.c:398
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr ""
-"Jeden nebo více kontrolních součtů deskriptoru skupiny bloků je chybných. "
+msgstr "Jeden nebo více kontrolních součtů deskriptoru skupiny bloků je chybných. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
#: e2fsck/problem.c:403
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"Iuzly kvóty se označují jako za skryté.\n"
-"\n"
+msgstr "Iuzel kvóty %i (%Q) se označuje jako skrytý.\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:474
msgid "@g %g's @b @B at %b @C.\n"
-msgstr ""
-"Bitmapa bloků skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr "Bitmapa bloků skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:479
msgid "@g %g's @i @B at %b @C.\n"
-msgstr ""
-"Bitmapa iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr "Bitmapa iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:484
msgid "@g %g's @i table at %b @C.\n"
-msgstr ""
-"Tabulka iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
+msgstr "Tabulka iuzlů skupiny %g v %b koliduje s jiným blokem systému souborů.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
#: e2fsck/problem.c:489
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr ""
-"Blok %b v primárních deskriptorech skupin je na seznamu špatných bloků\n"
+msgstr "Blok %b v primárních deskriptorech skupin je na seznamu špatných bloků\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:583
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr ""
-"Varování: Kopie deskriptorů skupin ve skupině %g má špatný blok (%b).\n"
+msgstr "Varování: Kopie deskriptorů skupin ve skupině %g má špatný blok (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr ""
-"Chyba při programování? Blok #%b bezdůvodně použit v process_bad_blocks.\n"
+msgstr "Chyba při programování? Blok #%b bezdůvodně použit v process_bad_blocks.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:655
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr ""
-"Chyba při ukládání informace o četnosti iuzlu (iuzel=%i, počet=%N): %m\n"
+msgstr "Chyba při ukládání informace o četnosti iuzlu (iuzel=%i, počet=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr ""
-"Chyba při ukládání informace o bloku adresáře (iuzel=%i, blok=%b, čís=%N): "
-"%m\n"
+msgstr "Chyba při ukládání informace o bloku adresáře (iuzel=%i, blok=%b, čís=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Speciální (zařízení/socket/fifo/symbolický odkaz) soubor (iuzel %i) má "
-"nastaven\n"
+"Speciální (zařízení/socket/fifo/symbolický odkaz) soubor (iuzel %i) má nastaven\n"
"příznak immutable nebo append-only. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
#: e2fsck/problem.c:685
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr ""
-"Iuzel %i má nastaven příznak komprimace na systému souborů bez podpory "
-"komprimace. "
+msgstr "Iuzel %i má nastaven příznak komprimace na systému souborů bez podpory komprimace. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
#: e2fsck/problem.c:690
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:716
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr ""
-"Nalezeny iuzly, které byly součástí poškozeného spojového seznamu osiřelých. "
+msgstr "Nalezeny iuzly, které byly součástí poškozeného spojového seznamu osiřelých. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:721
#: e2fsck/problem.c:795
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr ""
-"Iuzel %i má nastaven příznak INDEX_FL na systému souborů bez podpory htree.\n"
+msgstr "Iuzel %i má nastaven příznak INDEX_FL na systému souborů bez podpory htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
#: e2fsck/problem.c:800
#: e2fsck/problem.c:815
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr ""
-"Iuzel HTREE adresáře %i používá nekompatibilní příznak kořenového uzlu "
-"htree.\n"
+msgstr "Iuzel HTREE adresáře %i používá nekompatibilní příznak kořenového uzlu htree.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
#: e2fsck/problem.c:820
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr ""
-"Iuzel HTREE adresáře %i má hloubku stromu (%N), která je příliš velká\n"
+msgstr "Iuzel HTREE adresáře %i má hloubku stromu (%N), která je příliš velká\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
#: e2fsck/problem.c:846
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr ""
-"Rozšířený atribut v iuzlu %i má pozici hodnoty (%N), která není platná\n"
+msgstr "Rozšířený atribut v iuzlu %i má pozici hodnoty (%N), která není platná\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:851
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr ""
-"Rozšířený atribut v iuzlu %i má blok hodnot (%N), který není platný (musí "
-"být 0)\n"
+msgstr "Rozšířený atribut v iuzlu %i má blok hodnot (%N), který není platný (musí být 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
#: e2fsck/problem.c:856
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr ""
-"Rozšířený atribut v iuzlu %i má velikost hodnoty (%N), která není platná\n"
+msgstr "Rozšířený atribut v iuzlu %i má velikost hodnoty (%N), která není platná\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
#: e2fsck/problem.c:861
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"Iuzel %i má nastaven příznak EXTENTS_FL na systému souborů bez podpory "
-"rozsahů.\n"
+msgstr "Iuzel %i má nastaven příznak EXTENTS_FL na systému souborů bez podpory rozsahů.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:989 e2fsck/problem.c:1304
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr ""
-"Chyba při úpravě počtu odkazů bloku rozšířených atributů %b (iuzel %i): %m\n"
+msgstr "Chyba při úpravě počtu odkazů bloku rozšířených atributů %b (iuzel %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
#: e2fsck/problem.c:994
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:1070
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr ""
-"Položka „%Dn“ v %p (%i) ukazuje na iuzel (%Di) umístěný ve špatném bloku.\n"
+msgstr "Položka „%Dn“ v %p (%i) ukazuje na iuzel (%Di) umístěný ve špatném bloku.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
#: e2fsck/problem.c:1075
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:1100
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr ""
-"První položka „%Dn“ (iuzel=%Di) v iuzlu adresáře %i (%p) by měla být „.“\n"
+msgstr "První položka „%Dn“ (iuzel=%Di) v iuzlu adresáře %i (%p) by měla být „.“\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
#: e2fsck/problem.c:1105
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1270
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr ""
-"Systém souborů obsahuje velké soubory, ale v superbloku nemá příznak "
-"LARGE_FILE.\n"
+msgstr "Systém souborů obsahuje velké soubory, ale v superbloku nemá příznak LARGE_FILE.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
#: e2fsck/problem.c:1275
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
#: e2fsck/problem.c:1358
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr ""
-"Položka „%Di“ v %p (%i) odkazuje na iuzel %Di ve skupině %g, kde je "
-"nastaveno _INODE_UNINIT.\n"
+msgstr "Položka „%Di“ v %p (%i) odkazuje na iuzel %Di ve skupině %g, kde je nastaveno _INODE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr ""
-"Položka „%Dn“ v %p (%i) odkazuje na iuzel %Di nalezený ve skupině %g oblasti "
-"nepoužitých iuzlů.\n"
+msgstr "Položka „%Dn“ v %p (%i) odkazuje na iuzel %Di nalezený ve skupině %g oblasti nepoužitých iuzlů.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
#: e2fsck/problem.c:1435
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr ""
-"ext2fs_new_dir_block: %m při pokusu vytváření nového adresáře /lost+found\n"
+msgstr "ext2fs_new_dir_block: %m při pokusu vytváření nového adresáře /lost+found\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
#: e2fsck/problem.c:1440
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"CHYBA PŘI PROGRAMOVÁNÍ: hranice (%b, %c) bitmapy systému souborů (#%N) "
-"neodpovídají vypočteným hranicím bitmapy (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "CHYBA PŘI PROGRAMOVÁNÍ: hranice (%b, %c) bitmapy systému souborů (#%N) neodpovídají vypočteným hranicím bitmapy (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1679
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr ""
-"Blok(y) skupiny %g je/jsou používán(y), ale skupina je označena jako "
-"BLOCK_UNINIT\n"
+msgstr "Blok(y) skupiny %g je/jsou používán(y), ale skupina je označena jako BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
#: e2fsck/problem.c:1684
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr ""
-"Iuzel/iuzly skupiny %g je/jsou používán(y), ale skupina je označena jako "
-"INODE_UNINIT\n"
+msgstr "Iuzel/iuzly skupiny %g je/jsou používán(y), ale skupina je označena jako INODE_UNINIT\n"
#. @-expanded: Recreate journal
#: e2fsck/problem.c:1691
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Aktualizovat údaje o kvótách pro druh kvót %N"
#: e2fsck/problem.c:1815
#, c-format
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
" -p Automatická oprava (žádné otázky)\n"
" -n Neprovádět žádné změny systému souborů\n"
" -y Předpokládat „ano“ u všech otázek\n"
-" -c Hledat špatné bloky a přidat je do seznamu špatných "
-"bloků\n"
-" -f Vynutit kontrolu, i když je systém souborů označen "
-"čistý\n"
+" -c Hledat špatné bloky a přidat je do seznamu špatných bloků\n"
+" -f Vynutit kontrolu, i když je systém souborů označen čistý\n"
#: e2fsck/unix.c:86
#, c-format
msgstr ""
" -v Být podrobný\n"
" -b superblok Použít alternativní superblok\n"
-" -B velikost_bloku Vnutit velikost bloku při hledání superbloku\n"
+" -B velikost_bloku Vnutit velikost bloku při hledání superbloku\n"
" -j externí_žurnál Nastavit umístění externího žurnálu\n"
" -l soubor_špatných_bloků\n"
" Přidat do seznamu špatných bloků\n"
" -L soubor_špatných_bloků\n"
" Nastavit seznam špatných bloků\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %'u/%'u souborů (%0d,%d %% nesouvislých), %'llu/%'llu bloků\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u použitý iuzel (%2.2f %%)\n"
+"%12u použitý iuzel (%2.2f %% z %u)\n"
msgstr[1] ""
"\n"
-"%8u použité iuzly (%2.2f %%)\n"
+"%12u použité iuzly (%2.2f %% z %u)\n"
msgstr[2] ""
"\n"
-"%8u použitých iuzlů (%2.2f %%)\n"
+"%12u použitých iuzlů (%2.2f %% z %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u nesouvislý soubor (%0d,%d %%)\n"
-msgstr[1] "%8u nesouvislé soubory (%0d,%d %%)\n"
-msgstr[2] "%8u nesouvislých souborů (%0d,%d %%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u nesouvislý soubor (%0d,%d %%)\n"
+msgstr[1] "%12u nesouvislé soubory (%0d,%d %%)\n"
+msgstr[2] "%12u nesouvislých souborů (%0d,%d %%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u nesouvislý adresář (%0d,%d %%)\n"
-msgstr[1] "%8u nesouvislé adresáře (%0d,%d %%)\n"
-msgstr[2] "%8u nesouvislých adresářů (%0d,%d %%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u nesouvislý adresář (%0d,%d %%)\n"
+msgstr[1] "%12u nesouvislé adresáře (%0d,%d %%)\n"
+msgstr[2] "%12u nesouvislých adresářů (%0d,%d %%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " Počet iuzlů s ind/dind/tind bloky: %'u/%'u/%'u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " Počet iuzlů s ind/dind/tind bloky: %'u/%'u/%'u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Histogram hloubky rozsahu: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram hloubky rozsahu: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu použitý blok (%2.2f %%)\n"
-msgstr[1] "%8llu použité bloky (%2.2f %%)\n"
-msgstr[2] "%8llu použitých bloků (%2.2f %%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu použitý blok (%2.2f %% z %llu)\n"
+msgstr[1] "%12llu použité bloky (%2.2f %% z %llu)\n"
+msgstr[2] "%12llu použitých bloků (%2.2f %% z %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u chybný blok\n"
-msgstr[1] "%8u chybné bloky\n"
-msgstr[2] "%8u chybných bloků\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u chybný blok\n"
+msgstr[1] "%12u chybné bloky\n"
+msgstr[2] "%12u chybných bloků\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u velký soubor\n"
-msgstr[1] "%8u velké soubory\n"
-msgstr[2] "%8u velkých souborů\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u velký soubor\n"
+msgstr[1] "%12u velké soubory\n"
+msgstr[2] "%12u velkých souborů\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u obyčejný soubor\n"
+"%12u obyčejný soubor\n"
msgstr[1] ""
"\n"
-"%8u obyčejné soubory\n"
+"%12u obyčejné soubory\n"
msgstr[2] ""
"\n"
-"%8u obyčejných souborů\n"
+"%12u obyčejných souborů\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u adresář\n"
-msgstr[1] "%8u adresáře\n"
-msgstr[2] "%8u adresářů\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u adresář\n"
+msgstr[1] "%12u adresáře\n"
+msgstr[2] "%12u adresářů\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u znakové zařízení\n"
-msgstr[1] "%8u znaková zařízení\n"
-msgstr[2] "%8u znakových zařízení\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u znakové zařízení\n"
+msgstr[1] "%12u znaková zařízení\n"
+msgstr[2] "%12u znakových zařízení\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blokové zařízení\n"
-msgstr[1] "%8u bloková zařízení\n"
-msgstr[2] "%8u blokových zařízení\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blokové zařízení\n"
+msgstr[1] "%12u bloková zařízení\n"
+msgstr[2] "%12u blokových zařízení\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u roura\n"
-msgstr[1] "%8u roury\n"
-msgstr[2] "%8u rour\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u roura\n"
+msgstr[1] "%12u roury\n"
+msgstr[2] "%12u rour\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u odkaz\n"
-msgstr[1] "%8u odkazy\n"
-msgstr[2] "%8u odkazů\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u odkaz\n"
+msgstr[1] "%12u odkazy\n"
+msgstr[2] "%12u odkazů\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolický odkaz"
-msgstr[1] "%8u symbolické odkazy"
-msgstr[2] "%8u symbolických odkazů"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolický odkaz"
+msgstr[1] "%12u symbolické odkazy"
+msgstr[2] "%12u symbolických odkazů"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[1] "(%u rychlé symbolické odkazy)\n"
msgstr[2] "(%u rychlých symbolických odkazů)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockety\n"
-msgstr[2] "%8u socketů\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockety\n"
+msgstr[2] "%12u socketů\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u soubor\n"
-msgstr[1] "%8u soubory\n"
-msgstr[2] "%8u souborů\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u soubor\n"
+msgstr[1] "%12u soubory\n"
+msgstr[2] "%12u souborů\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "při zjišťování, jestli je %s připojen."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Varování! %s je připojen.\n"
+msgstr "Pozor! %s je %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s je %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Nemohu pokračovat, končím.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
"***ZPŮSOBÍTE VÁŽNÉ*** poškození systému souborů.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Chcete opravdu pokračovat"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "kontrola přerušena.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " obsahuje systém souborů s chybami"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " nebyl čistě odpojen"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
msgstr " vlastnosti primárního superbloku se liší od záložního"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " byl připojen %ukrát bez kontroly"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
msgstr " má čas poslední kontroly systému souborů v budoucnosti"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " nebyl kontrolován %u dní"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", kontrola vynucena.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: čistý, %'u/%'u souborů, %'llu/%'llu bloků"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (kontrola odložena, běžím na baterii)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (kontrola po příštím připojení)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kontrola za %ld připojení)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "CHYBA: Nemohu otevřít /dev/null (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Neplatná verze EA.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Neznámý rozšířený přepínač: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"Syntaktická chyba v konfiguračním souboru e2fsck (%s, řádek č. %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Chyba při ověřování platnosti deskriptoru souboru %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "Neplatný deskriptor souborů informace o dokončení"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Může být zadán jen jeden z přepínačů -p/-a, -n nebo -y."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "Přepínač -t není v této verzi e2fsck podporován.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Nelze vyřešit „%s“"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
msgstr "Přepínače -n a -D se vzájemně vylučují."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
msgstr "Přepínače -n a -c se vzájemně vylučují."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
msgstr "Přepínače -n a -l/-L se vzájemně vylučují."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Přepínače -c a -l/-L nemohou být použity zároveň.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"E2FSCK_JBD_DEBUG „%s“ není celým číslem\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"Neplatný nečíselný argument u -%c („%s“)\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"Interval MMP je %u sekund a celková doba čekání je %u sekund. Prosím "
-"o strpení…\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "Interval MMP je %u sekund a celková doba čekání je %u sekund. Prosím o strpení…\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "při kontrole bloku MMP"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Jste-li si jisti, že souborový systém není používán na žádném uzlu, "
-"spusťte:\n"
+"Jste-li si jisti, že souborový systém není používán na žádném uzlu, spusťte:\n"
"„tune2fs -f -E clear_mmp ZAŘÍZENÍ“\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Chyba: stará verze knihovny ext2fs!\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "při pokusu inicializovat program"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tPoužívám %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
msgstr "pro interaktivní opravy potřebuji terminál"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s zkouším záložní bloky…\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Neplatný superblok,"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Deskriptory skupin vypadají špatně…"
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s: %s při použití záložních bloků"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: návrat k původnímu superbloku\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"(Nebo je superblok systému souborů poškozen)\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Mohl by toto být oddíl nulové délky?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Musíte mít přístup %s k systému souborů nebo být root\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
msgstr "Pravděpodobně neexistující nebo odkládací zařízení?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr "Systém souborů připojen nebo otevřen výlučně jiným programem?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Pravděpodobně neexistující zařízení?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
"Disk chráněn proti zápisu; použijte přepínač -n pro provedení\n"
"kontroly zařízení jen pro čtení.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
msgstr "Sežeňte novější verzi e2fsck!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "při kontrole žurnálu ext3 pro %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Varování: přeskakuji obnovu žurnálu, protože provádím kontrolu systému\n"
"souborů jen pro čtení.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "nemohu nastavit příznaky superbloku na %s\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "při obnově žurnálu ext3 %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s má nepodporovanou vlastnost(i):"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s: pozor: podpora komprese je experimentální.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"%s: E2fsck nepřeložen s podporou HTREE,\n"
"\tale systém souborů %s má adresáře HTREE.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s: %s při čtení iuzlu špatných bloků\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Toto nevypadá dobře, ale zkusíme pokračovat…\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Vytváří se žurnál (%d bloků): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr " Hotovo.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
"\n"
"*** žurnál by znovu vytvořen – souborový systém se opět stal ext3 ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Spouštím e2fsck od začátku…\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "při nulování kontextu"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck přerušen.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "přerušen"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** SYSTÉM SOUBORŮ BYL ZMĚNĚN *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** ZNOVU ZAVEĎTE LINUX *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s: ********** VAROVÁNÍ: Systém souborů má stále chyby **********\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
msgstr "při nastavování informace o kontrolním součtu skupiny bloků"
msgstr "Při alokaci nulovací vyrovnávací paměti"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"NEČEKANÁ NEKONZISTENCE: souborový systém je měněn, zatímco fsck běží.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "NEČEKANÁ NEKONZISTENCE: souborový systém je měněn, zatímco fsck běží.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Použití: %s [-RVf] [-+=AacDdeijsSu] [-v verze] soubory…\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Použití: %s [-RVf] [-+=AaCcDdeijsSu] [-v verze] soubory…\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "špatná verze – %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "při pokusu stat %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "při čtení příznaků %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr "Odstranění příznaku rozsahu není na %s podporováno"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Příznaky %s nastaveny na "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "při nastavování příznaků %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Verze %s nastavena na %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "při nastavování verze %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Nemohu alokovat proměnou path v chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
msgstr "= je neslučitelné s - a +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
msgstr "Musíte použít '-v', =, - nebo +\n"
"Začátek žurnálu: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Uživatelé žurnálu: %s\n"
+msgstr "Chybové číslo žurnálu: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
msgid "Journal users: %s\n"
msgstr "Uživatelé žurnálu: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Nemohu alokovat paměť pro zpracování přepínačů!\n"
"\tsuperblock=<číslo superbloku>\n"
"\tblocksize=<velikost bloku>\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tPoužívám %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: není systém souborů ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Varování: jmenovka příliš dlouhá, zkracuji.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: chyba při zápisu superbloku\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Použití: e2label zařízení [novájmenovka]\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
msgstr ""
"%s: přeskakuji chybný řádek v /etc/fstab: připojení typu bind s nenulovým\n"
"pořadím průchodu skrze fsck\n"
msgstr "--čekám-- (průchod %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Použití: fsck [-AMNPRTV] [-C [fd]] [-t typss] [přepínače-ss] "
-"[systémsouborů…]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Použití: fsck [-AMNPRTV] [-C [fd]] [-t typss] [přepínače-ss] [systémsouborů…]\n"
#: misc/fsck.c:1120
#, c-format
msgid "While reading version on %s"
msgstr "Při čtení verze %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
"Použití: %s [-c|-l názevsouboru] [-b velikost-bloku] [-C velkost-clusteru]\n"
"\t[-i bajtů-na-iuzel] [-I velikost-iuzlu] [-J přepínače-žurnálu]\n"
"\t[-E rozšířený-přepínač[,…]] [-t druh-ss] [-T způsob-použití] [-U UUID]\n"
"\t[-jnqvDFKSV] zařízení [počet-bloků]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Spouštím příkaz: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
msgstr "při pokusu spustit „%s“"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
msgstr "při zpracovávání seznamu špatných bloků z programu"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Blok %d v oblasti primárního superbloku/deskriptorů skupin špatný.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr "Bloky %u až %u musí být pro vytvoření systému souborů v pořádku.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Končím…\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tšpatné bloky.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "při označování špatných bloků jako použité"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Zapisuji tabulky iuzlů: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"\n"
"Nemohu zapsat %d bloků do tabulky iuzlů počínaje %llu: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "hotovo \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "při vytváření kořenového adresáře"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "při čtení kořenového iuzlu"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "při nastavování vlastnictví kořenového iuzlu"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "při vytváření /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "při vyhledávání /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "při zvětšování /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "při nastavování iuzlu špatných bloků"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Nedostatek paměti při mazání sektorů %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Varování: nemohu načíst blok 0: %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Varování: nemohu vymazat sektor %d: %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "při inicializaci superbloku žurnálu"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Nuluji zařízení žurnálu: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "při nulování zařízení žurnálu (blok %llu, počet %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "při zápisu superbloku žurnálu"
# TODO pluralize
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"pozor: nepoužito %'llu bloků.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Jmenovka systému souborů=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "Typ OS: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Velikost bloku=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Velikost clusteru=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Velikost fragmentu=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Krok=%u bloků, Šířka pásu=%u bloků\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u iuzlů, %llu bloků\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu bloků (%2.2f %%) rezervováno pro superuživatele\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "První blok dat=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximum bloků v systému souborů=%'lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u skupin bloků\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u skupina bloků\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u bloků ve skupině, %u clusterů ve skupině\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u bloků ve skupině, %u fragmentů ve skupině\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u iuzlů ve skupině\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Zálohy superbloku uloženy v blocích: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Neplatný interval_aktualizace_mmp: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Neplatný parametr kroku (stride): %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Neplatný parametr šířka-pásu (stripe-width): %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Neplatný parametr změny velikosti: %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr "Maximum změny velkosti musí být větší než velikost systému souborů.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr "Revize 0 souborového systému nepodporuje změnu velikosti za běhu\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Neplatný parametr druhu kvót: %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\tquotatype=<druh kvót: usr (uživatelé), nebo grp (skupiny)>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"Varování: šířka pruhu RAIDu %u není sudý násobek kroku (stride) %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"Chyba syntaxe v konfiguračním souboru mke2fs (%s, řádek č. %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Neplatný sada přepínačů systému souborů: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Nastaven neplatný přepínač připojení: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"\n"
"Váš soubor mke2fs.conf nedefinuje druh souborového systému %s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"Pravděpodobně potřebujete nainstalovat aktualizovaný soubor mke2fs.conf.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Přerušuje se…\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Pozor: fs_type (druh SS) %s není v mke2fs.conf definován\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Nemohu alokovat paměť pro novou proměnnou PATH.\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Profil nebylo možné správně inicializovat (chyba: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "špatná velikost bloku – %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Varování: velikost bloku %d není na většině systémů použitelná.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "špatná velikost clusteru – %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "Neplatný počet bloků ve skupině"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "bloky ve skupině musí být násobek 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Neplatné číslo pro velikost flex_bg"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "Velikost flex_bg musí být mocninou 2"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "špatný podíl iuzlů %s (min %d/max %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Pozor: Přepínač -K je zastaralý a neměl by se již používat. Místo něj "
-"použijte rozšířený přepínač „-E nodiscard“!\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Pozor: Přepínač -K je zastaralý a neměl by se již používat. Místo něj použijte rozšířený přepínač „-E nodiscard“!\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr "v malloc pro bad_blocks_filename"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "špatné procento rezervovaných bloků – %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "špatné číslo revize – %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "špatná velikost iuzlu – %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "chybný počet iuzlů – %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "Přepínač -t lze použít jen jednou"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "Přepínač -T lze použít jen jednou"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "při pokusu otevřít zařízení žurnálu %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr ""
-"Velikost bloku zařízení žurnálu (%d) menší než minimální velikost bloku %d\n"
+msgstr "Velikost bloku zařízení žurnálu (%d) menší než minimální velikost bloku %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Použiji velikost bloku žurnálovacího zařízení: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "špatné bloky „%s“ na zařízení „%s“"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "systém souborů"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
msgstr "při pokusu zjistit velikost systému souborů"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Nemohu zjistit velikost zařízení; musíte zadat\n"
"velikost systému souborů\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
" oddíl se používá. Možná budete muset pro opětovné načtení\n"
" své tabulky oddílů znovu zavést systém.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "Systém souborů větší než velikost zařízení."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Seznam druhů souborových systému se nezdařilo rozebrat\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%s: Velikost zařízení (0x%llx bloků) %s je příliš velká, aby byla\n"
"vyjádřena v 32 bitech za použití bloku o velikosti %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types (druhy SS) pro řešení v mke2fs.conf: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr "Vlastnosti systému souborů nejsou v revizi 0 podporovány\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr "Řídké superbloky systému souborů nejsou v revizi 0 podporovány\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Revize 0 systému souborů žurnály nepodporuje\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "špatné procento rezervovaných bloků – %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"Vlastnosti resize_inode a meta_bg nejsou slučitelné.\n"
"Obě nemohou být zapnuty současně.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
msgstr "při pokusu zjistit velikost hardwarového sektoru"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "při pokusu určit velikost fyzického sektoru"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
msgstr "při nastavování velikosti bloku; pro zařízení příliš malá hodnota\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Pozor: zadaná velikost bloku %d je menší než velikost fyzického sektoru %d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Pozor: zadaná velikost bloku %d je menší než velikost fyzického sektoru %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "varování: Není možné zjistit geometrii %s\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Zarovnání %s představuje posun o %'lu bajtů.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr ""
-"Toto může vést k velmi špatnému výkonu, doporučuje se (nové) vytvoření "
-"oddílů.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr "Toto může vést k velmi špatnému výkonu, doporučuje se (nové) vytvoření oddílů.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "%d-bajtové bloky příliš velké pro systém (max %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Varování: %d-bajtové bloky příliš velké pro systém (max %d), donucen "
-"pokračovat\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr "Varování: %d-bajtové bloky příliš velké pro systém (max %d), donucen pokračovat\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"bloky vyhrazené pro změnu velikosti za běhu nejsou podporovány na neřídkém\n"
"\tsystému souborů"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
msgstr "počet bloků ve skupině mimo rozsah"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr "Vlastnost flex_bg není povolena, takže její velikost nemůže být zadána"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "špatná velikost iuzlu %d (min %d/max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "příliš mnoho iuzlů (%'llu), zvýšit poměr iuzlů?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "příliš mnoho iuzlů (%'llu), zadejte < 2^32 iuzlů"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tsystém souborů s %'llu bloky, zadejte vyšší poměr_iuzlu (-i)\n"
"\tnebo snižte počet iuzlů (-N).\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
"Přepisuji existující systém souborů, toto může být odčiněno příkazem:\n"
" e2undo %s %s\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
msgstr "při pokusu nastavit soubor pro odvolání změn\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Zahazují se bloky zařízení: "
# Continuation of "Calling BLKDISCARD from %llu to %llu "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "selhalo – "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "při nastavování superbloku"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"Skartování (discard) uspělo a bude vráceno 0s – vynechá se výmaz tabulky "
-"iuzlů\n"
+msgstr "Skartování (discard) uspělo a bude vráceno 0s – vynechá se výmaz tabulky iuzlů\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "neznámý os – %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Alokují se tabulky skupin: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "při pokusu alokovat tabulky systému souborů"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\tpři převodu bitmapy subclusterů"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "při nulování bloku %llu na konci systému souborů"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "při rezervaci bloků pro změnu velikosti za běhu"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "žurnál"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Přidávám žurnál k zařízení %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
"\tpři pokusu přidat žurnál k zařízení %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "hotovo\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "V režimu jen-superdata bude vynechána tvorba žurnálu\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Vytváří se žurnál (%'u bloků): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
"\tpři pokusu vytvořit žurnál"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"Chyba při zapínání ochrany proti násobnému připojení."
# TODO: Pluralize
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr ""
-"Ochrana proti násobnému připojení je zapnuta s aktualizačním intervalem %d "
-"sekund.\n"
+msgstr "Ochrana proti násobnému připojení je zapnuta s aktualizačním intervalem %d sekund.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Zapisuji superbloky a účtovací informace systému souborů: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Varování, měl jsem problémy při zápisu superbloků."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
#: misc/tune2fs.c:456
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr ""
-"Ochrana před násobným připojením byla zapnuta s intervalem aktualizace "
-"%d s.\n"
+msgstr "Ochrana před násobným připojením byla zapnuta s intervalem aktualizace %d s.\n"
#: misc/tune2fs.c:465
msgid ""
#: misc/tune2fs.c:482
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr ""
-"Magické číslo v bloku MMP se neshoduje. Očekáváno: %x, skutečnost: %x\n"
+msgstr "Magické číslo v bloku MMP se neshoduje. Očekáváno: %x, skutečnost: %x\n"
#: misc/tune2fs.c:487
msgid "while reading MMP block."
"\n"
"\tpři pokusu vytvořit soubor žurnálu"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Nemohu alokovat paměť pro zpracování přepínačů kvóty!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Nemohu zpracovat určení data/času: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "špatný počet připojení - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "špatné chování při chybách - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "špatné gid/jméno skupiny - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "Špatný interval - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "špatný podíl rezervovaných bloků - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
msgstr "-o může být zadáno jen jednou"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
msgstr "-O může být zadáno jen jednou"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "špatný počet rezervovaných bloků - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "špatné uid/jméno uživatele - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "špatná velikost iuzlu – %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Velikost iuzlu musí být mocnina dvou – %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "interval_aktualizace_mmp je příliš velký: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
-"sekundu\n"
-msgstr[1] ""
-"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
-"sekundy\n"
-msgstr[2] ""
-"Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu "
-"sekund\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekundu\n"
+msgstr[1] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekundy\n"
+msgstr[2] "Nastavuje se interval aktualizace ochrany proti násobnému připojení na %'lu sekund\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Neplatný kroku (stride) RAIDu: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Neplatná šířka pruhu RAIDu (stripe-width): %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Neplatný hashovací algoritmus: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Implicitní hashovací algoritmus se nastavuje na %s (%d)\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
msgstr "Čtení bitmapy iuzlů selhalo.\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Čtení bitmapy bloků selhalo\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "bloky pro přesun"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr "Během zvětšování iuzlu selhala alokace bitmapy bloků\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Nedostatek místa pro zvětšení iuzlu\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Během změny velikosti iuzlu selhala realokace bloků\n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
"Chyba při měnění velikost iuzlu.\n"
"Spusťte e2undo, abyste vrátili změny provedené na systému souborů.\n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Nemohu alokovat paměť pro název souboru TDB\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "při pokusu smazat %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"Magické číslo bloku MMP je chybné. Můžete jej zkusit opravit pomocí:\n"
"„e2fsck -f %s“\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Velikost iuzlu již je %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "Zmenšování velikosti iuzlu není podporováno\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Nastavuje se maximální počet připojení na %d\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Nastavuje se aktuální počet připojení na %d\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Nastavuje se chování při chybách na %d\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Nastavuje se GID rezervovaných bloků na %lu\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "interval mezi kontrolami je příliš dlouhý (%'lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Interval mezi kontrolami se nastavuje na %'lu sekund\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Procento rezervovaných bloků se nastavuje na %g %% (%'llu bloků)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "počet rezervovaných bloků je příliš velký (%'llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Počet rezervovaných bloků se nastavuje na %'llu\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Systém souborů již má řídké superbloky.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"Příznak řídkých superbloků nastaven. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"\n"
"Odstranění superpříznaku řídkosti není podporováno.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Nastavuje se čas poslední kontroly systému souborů na %s\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Nastavuje se UID rezervovaných bloků na %lu\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Chybné použití clear_mmp. Je třeba jej použít s -f\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr "Vlastnost kvóty smí být změněna, jen když je systém souborů odpojen.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Neplatný formát UUID\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr "Velikost iuzlu smí být změněna, jen když je systém souborů odpojen.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-"Na souborových systémech se zapnutou vlastností flex_bg není změna "
-"velikosti\n"
+"Na souborových systémech se zapnutou vlastností flex_bg není změna velikosti\n"
"iuzlu podporována.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Velikost iuzlu se nastavuje na %lu\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "Změna velikosti iuzlu selhala.\n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Velikost kroku (stride) se nastavuje na %d\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Šířka pruhu (stripe width) se nastavuje na %d\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Implicitní rozšířené přepínače při přípojení se nastavují na „%s“\n"
"%g days, whichever comes first. Use tune2fs -c or -i to override.\n"
msgstr ""
"Tento systém souborů bude automaticky kontrolován každých %d připojení nebo\n"
-"%g dní, podle toho, co nastane dříve. Pro změnu použijte tune2fs -c nebo -"
-"i.\n"
+"%g dní, podle toho, co nastane dříve. Pro změnu použijte tune2fs -c nebo -i.\n"
#: misc/uuidd.c:48
#, c-format
msgid "while getting stat information for %s"
msgstr "při zjišťování stat informací o %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinace vlastností flex_bg a\n"
-"\t!resize_inode není podporována nástrojem resize2fs.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"Spusťte prosím nejdříve „e2fsck -f %s“.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Odhadovaná minimální velikost systému souborů: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Chybná nová velikost: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Nová velikost je příliš, aby byla vyjádřena ve 32 bitech\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Nová velikost je menší než minimum (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "Neplatná délka kroku"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"Požadovali jste novou velikost %'llu bloků.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"Souborový systém již je dlouhý %'llu bloků. Není co dělat!\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
+#, c-format
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
+msgstr ""
+"%s: Kombinace vlastností flex_bg a\n"
+"\t!resize_inode není podporována nástrojem resize2fs.\n"
+
+#: resize/main.c:463
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr "Velikost systému souborů %s se mění na %'llu (%dk) bloků.\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "při pokusu změnit velikost %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"Po přerušené změně velikosti, prosím, opravte souborový systém pomocí\n"
"„e2fsck -fy %s“\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"Systém souborů na %s je nyní %'llu bloků dlouhý.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "při pokusu zkrátit %s"
msgid "On-line shrinking not supported"
msgstr "Zmenšování za běhu není podporováno"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
msgstr "Systém souborů nepodporuje změnu velikosti za běhu"
-#: resize/online.c:70
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Nedostatek rezervovaných GDT bloků pro změnu velikosti za běhu"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Jádro nepodporuje změnu velikosti souborového systému na tuto velikost"
+
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "při pokusu otevřít přípojný bod %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Povolení ke změně velikosti systému souborů zamítnuto"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Při zjišťování podpory změny velikosti za běhu"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Jádro nepodporuje změnu velikosti souborového systému na tuto velikost"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "Jádro nepodporuje změnu velikost za běhu"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Mění se velikosti za běhu %s na %'llu (%dk) bloků.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Při pokusu rozšířit poslední skupinu"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Při pokusu přidat skupinu č. %d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"Systém souborů v %s je připojen do %s a změna velikost za běhu není na tomto "
-"systému podporována.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "Systém souborů v %s je připojen do %s a změna velikost za běhu není na tomto systému podporována.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "iuzlů (%'llu) musí být méně než %'u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "rezervované bloky"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "bloky meta-dat"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
-msgstr ""
-"Toto by se nikdy nemělo stát: iuzly pro změnu velikosti jsou poškozeny!\n"
+msgstr "Toto by se nikdy nemělo stát: iuzly pro změnu velikosti jsou poškozeny!\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "Knihovna EXT2FS verze 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "Knihovna EXT2FS verze 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Kvůli chybějícímu souboru mtab nelze zjistit, zda-li je systém souborů "
-"připojený"
+msgstr "Kvůli chybějícímu souboru mtab nelze zjistit, zda-li je systém souborů připojený"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr ""
-"Souborový systém je příliš velký na to, aby se použily zastaralé bitmapy"
+msgstr "Souborový systém je příliš velký na to, aby se použily zastaralé bitmapy"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
#~ msgstr "%s je připojen. "
#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-#~ msgstr ""
-#~ "Bitmapa bloků skupiny %g neinicializována, ačkoliv bitmapa iuzlů je "
-#~ "použita.\n"
+#~ msgstr "Bitmapa bloků skupiny %g neinicializována, ačkoliv bitmapa iuzlů je použita.\n"
#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-#~ msgstr ""
-#~ "Iuzel %i by neměl mít nastaveno EOFBLOCKS_FL (velikost %Is, lblk %r)\n"
+#~ msgstr "Iuzel %i by neměl mít nastaveno EOFBLOCKS_FL (velikost %Is, lblk %r)\n"
#~ msgid "Couldn't determine journal size"
#~ msgstr "Velikost žurnálu nelze určit"
#~ msgstr "ioctl BLKGETSIZE"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
-#~ msgstr ""
-#~ "Rozšířený atribut v iuzlu %i má hash (%N), který není platný (musí být "
-#~ "0)\n"
+#~ msgstr "Rozšířený atribut v iuzlu %i má hash (%N), který není platný (musí být 0)\n"
#~ msgid "while calling ext2fs_block_iterate"
#~ msgstr "při volání ext2fs_block_iterate"
#~ msgstr "Přehození bajtů"
#~ msgid "Byte-swapping filesystems not compiled in this version of e2fsck\n"
-#~ msgstr ""
-#~ "Přehození bajtů systémů souborů není zabudováno v této verzi e2fsck\n"
+#~ msgstr "Přehození bajtů systémů souborů není zabudováno v této verzi e2fsck\n"
#~ msgid "Incompatible options not allowed when byte-swapping.\n"
#~ msgstr "Při přehození bajtů nejsou dovoleny nekompatibilní přepínače.\n"
#~ "Filesystem too large. No more than 2**31-1 blocks\n"
#~ "\t (8TB using a blocksize of 4k) are currently supported."
#~ msgstr ""
-#~ "Souborový systém je příliš velký. V současnosti není podporováno více "
-#~ "jak\n"
+#~ "Souborový systém je příliš velký. V současnosti není podporováno více jak\n"
#~ "\t2**31-1 bloků (8 TB při 4k blocích)."
#~ msgid ""
#~ "\n"
#~ msgstr ""
#~ "\n"
-#~ "Varování: některá jádra z řady 2.4 nepodporují na ext3 bloky větší než "
-#~ "4096\n"
+#~ "Varování: některá jádra z řady 2.4 nepodporují na ext3 bloky větší než 4096\n"
#~ "\tJe-li to váš případ, použijte „-b 4096“.\n"
#~ "\n"
#~ msgstr "Duplikovaný/špatný blok(y) v inode %i:"
#~ msgid "Forcibly clearing HTREE flag on @i %d (%q). (Beta test code)\n"
-#~ msgstr ""
-#~ "Vynuceně mažu příznak HTREE v inode %d (%q). (Kód v beta testování)\n"
+#~ msgstr "Vynuceně mažu příznak HTREE v inode %d (%q). (Kód v beta testování)\n"
#~ msgid ""
#~ "%8d blocks used (%d%%)\n"
#
# Olaf Klemke <olke@users.sourceforge.net>,2002.
# Marc Langer <marc@marclanger.de>,2003.
-# Philipp Thomas <pth@suse.de>, 2007, 2008, 2009, 2010, 2011, 2012.
+# Philipp Thomas <pth@suse.de>, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
#
#. The strings in e2fsck's problem.c can be very hard to translate,
#. since the strings are expanded in two different ways. First of all,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.42.2\n"
+"Project-Id-Version: e2fsprogs-1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-13 12:41+0200\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2013-01-27 00:23+0100\n"
"Last-Translator: Philipp Thomas <pth@suse.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
-msgstr "Bad block %u außerhalb des gültigen Bereichs; ignoriert.\n"
+msgstr "„Bad block“ %u außerhalb des gültigen Bereichs; ignoriert.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
msgstr "während des Lesens des „Bad Block“-Inodes"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "beim Versuch, %s zu öffnen"
msgid "while trying popen '%s'"
msgstr "beim Versuch, „%s“ mittels „popen“ zu öffnen"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
msgstr "beim Lesen der „Bad Block“-Liste aus der Datei"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Warnung: Nicht zulässiger Block %u im „Bad Blocks“-Inode gefunden! "
-"Bereinigt.\n"
+msgstr "Warnung: Nicht zulässiger Block %u im „Bad Blocks“-Inode gefunden! Bereinigt.\n"
#: e2fsck/ehandler.c:55
#, c-format
#: e2fsck/extend.c:50
#, c-format
msgid "Couldn't allocate block buffer (size=%d)\n"
-msgstr "Konnte keinen Blockpuffer (Größe=%d) reservieren.\n"
+msgstr "Es konnte kein Blockpuffer (Größe=%d) reserviert werden\n"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Aufruf: %s [-F] [-I inode_buffer_blocks] Gerät\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
-msgstr "beim Öffnen von %s für die Puffer-Leerung."
+msgstr "beim Öffnen von %s für die Puffer-Leerung"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "während des Rückschreibeversuches auf %s"
#: e2fsck/message.c:113
msgid "aextended attribute"
-msgstr "aerweiterte Eigenschaft"
+msgstr "aerweiterte Attribute"
#: e2fsck/message.c:114
msgid "Aerror allocating"
-msgstr "AFehler beim Zuweisen"
+msgstr "AFehler beim Reservieren von Platz für"
#: e2fsck/message.c:115
msgid "bblock"
#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "CKonflikte mit anderen Dateisystemen @b"
+msgstr "CKonflikte mit einem anderen Dateisystemenblock"
#: e2fsck/message.c:119
msgid "iinode"
#: e2fsck/message.c:129
msgid "hHTREE @d @i"
-msgstr "hHTREE @d @i"
+msgstr "hHTREE @dinode"
#: e2fsck/message.c:130
msgid "llost+found"
#: e2fsck/message.c:131
msgid "Lis a link"
-msgstr "List ein Link"
+msgstr "List eine Verknüpfung"
#: e2fsck/message.c:132
msgid "mmultiply-claimed"
#: e2fsck/message.c:143
msgid "zzero-length"
-msgstr "zNull-Länge"
+msgstr "zmit Länge Null"
#: e2fsck/message.c:154
msgid "<The NULL inode>"
#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:729
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "interner Fehler; dup_blk für %llu wurde nicht gefunden\n"
+msgstr "interner Fehler: dup_blk für %llu wurde nicht gefunden\n"
#: e2fsck/pass1b.c:820
msgid "returned from clone_file_block"
#: e2fsck/pass1.c:1417
msgid "multiply claimed block map"
-msgstr "Den Eintrag in der Liste belegter Blöcke verdoppeln"
+msgstr "mehrfach referenzierte Blockliste"
#: e2fsck/pass1.c:1518
msgid "ext attr block map"
#: e2fsck/pass1.c:2627
msgid "block bitmap"
-msgstr "Block Bitmap"
+msgstr "Block-Bitmap"
#: e2fsck/pass1.c:2633
msgid "inode bitmap"
-msgstr "Inode Bitmap"
+msgstr "Inode-Bitmap"
#: e2fsck/pass1.c:2639
msgid "inode table"
#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr "Fortsetzung nicht möglich."
+msgstr "das Programm kann nicht fortfahren."
#: e2fsck/pass3.c:77
msgid "inode done bitmap"
#: e2fsck/problem.c:63
msgid "Split"
-msgstr "Aufsplitten"
+msgstr "Aufteilen"
#: e2fsck/problem.c:64
msgid "Continue"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "multiply claimed block map"
+msgstr "mehrfach referenzierte BLöcke werden geklont"
#: e2fsck/problem.c:66
msgid "Delete file"
#: e2fsck/problem.c:68
msgid "Unlink"
-msgstr "Unlink"
+msgstr "Trennen"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
#: e2fsck/problem.c:91
msgid "SPLIT"
-msgstr "ABGESPALTET"
+msgstr "ABGESPALTEn"
#: e2fsck/problem.c:92
msgid "CONTINUING"
#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
-msgstr "DOPPELTE/DEFEKTE BLÖCKE DUPLIZIERT"
+msgstr "MEHRFACH REFERENZIERTE BLÖCKE GEKLONT"
#: e2fsck/problem.c:94
msgid "FILE DELETED"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
-msgstr "HTREE INDEX BEREINIGT"
+msgstr "HTREE-INDEX BEREINIGT"
#: e2fsck/problem.c:98
msgid "WILL RECREATE"
-msgstr "ANGELEGT"
+msgstr "WIRD WIEDER AUFGEBAUT"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@b @B für @g %g ist nicht in @g. (@b %b)\n"
+msgstr "@b @B für @g %g ist nicht in @g. (@b %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
-msgstr "@i @B für @g %g ist nicht in @g. (@b %b)\n"
+msgstr "@i @B für @g %g ist nicht in @g. (@b %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
msgstr ""
-"@i Tabelle für @g %g ist nicht in @g. (@b %b)\n"
+"@i Tabelle für @g %g ist nicht in @g. (@b %b)\n"
"WARNUNG: GROSSER DATENVERLUST IST MÖGLICH.\n"
#. @-expanded: \n
"\n"
msgstr ""
"\n"
-"@S ist unlesbar bzw. beschreibt kein gültiges ext2\n"
-"@f. Wenn @v gültig ist und ein ext2\n"
-"@f (kein swap oder ufs usw.) enthält, dann ist der @S\n"
+"Der @S ist unlesbar bzw. beschreibt kein gültiges ext2\n"
+"@f. Wenn @v gültig ist und ein ext2\n"
+"@f (kein swap oder ufs usw.) enthält, dann ist der @S\n"
"beschädigt, und sie könnten e2fsck mit einem anderen @S:\n"
" e2fsck -b %S <@v>\n"
"\n"
"The physical size of the @v is %c @bs\n"
"Either the @S or the partition table is likely to be corrupt!\n"
msgstr ""
-"Die @f Größe ( laut @S) ist %b @bs\n"
+"Die @f-Größe ( laut @S) ist %b @bs\n"
"Die physikalische Größe von @v ist %c @bs\n"
"Entweder der @S oder die Partionstabelle ist beschädigt!\n"
"This version of e2fsck does not support fragment sizes different\n"
"from the @b size.\n"
msgstr ""
-"@S @b_size = %b, fragsize = %c.\n"
-"Diese Version von e2fsck unterstützt keine von @b-Größen verschiedene "
-"Fragmentgrößen.\n"
+"@S-@b_size = %b, fragsize = %c.\n"
+"Diese Version von e2fsck unterstützt keine von @b-Größen verschiedene Fragmentgrößen.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
#: e2fsck/problem.c:145
msgid "@S @bs_per_group = %b, should have been %c\n"
-msgstr "@S @bs_per_group = %b, sollte %c sein.\n"
+msgstr "@bs_per_group im @S = %b, sollte %c sein\n"
#. @-expanded: superblock first_data_block = %b, should have been %c\n
#: e2fsck/problem.c:150
msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "@S first_data_@b = %b, sollte %c haben.\n"
+msgstr "first_data_@b im @S = %b, sollte %c sein\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
"@f did not have a UUID; generating one.\n"
"\n"
msgstr ""
-"@f hat keinen UUID ; generiere einen.\n"
+"@f hat keinen UUID; es wird eine generiert.\n"
"\n"
#: e2fsck/problem.c:160
"neu geordnet werden müssen, oder ein Teil der Inode-Tabelle\n"
"verschoben werden muss, könnte es helfen, e2fsck erst einmal\n"
"mit der Option „-b %S“ zu starten. Das Problem könnte\n"
-"im primären Blockgruppenbezeichner liegen, und seine\n"
+"im primären Blockgruppenbezeichner liegen und seine\n"
"Sicherungskopie in Ordnung sein.\n"
"\n"
#. @-expanded: Corruption found in superblock. (%s = %N).\n
#: e2fsck/problem.c:169
msgid "Corruption found in @S. (%s = %N).\n"
-msgstr "Beschädigung gefunden in @S. (%s = %N).\n"
+msgstr "Beschädigung gefunden in @S. (%s = %N).\n"
#. @-expanded: Error determining size of the physical device: %m\n
#: e2fsck/problem.c:174
#, c-format
msgid "Error determining size of the physical @v: %m\n"
-msgstr "Fehler bei der Feststellung der Größe des physikalischen @v: %m\n"
+msgstr "Fehler bei der Feststellung der Größe des physischen @v: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
#: e2fsck/problem.c:179
#: e2fsck/problem.c:183
msgid "The Hurd does not support the filetype feature.\n"
-msgstr "Hurd unterstützt das Dateityp-Feature nicht.\n"
+msgstr "Hurd unterstützt keine Dateitypen.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
#: e2fsck/problem.c:188
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
#: e2fsck/problem.c:193
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr "Externes @j hat mehrere @f Nutzer (nicht unterstützt).\n"
+msgstr "Externes @j hat mehrere @f-Nutzer (nicht unterstützt).\n"
#. @-expanded: Can't find external journal\n
#: e2fsck/problem.c:198
msgid "Can't find external @j\n"
-msgstr "Kann kein externes @j finden.\n"
+msgstr "Kann kein externes @j finden\n"
#. @-expanded: External journal has bad superblock\n
#: e2fsck/problem.c:203
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Ext3 @j @S ist eine unbekannter Type %N (nicht unterstützt).\n"
-"Es ist möglich, dass ihr e2fsck älter ist und/oder dieses @j Format nicht "
-"unterstützt.\n"
-"Es ist ebenso möglich, dass @j @S defekt ist.\n"
+"Der Superblock des Dateisystem-Journals hat den unbekannten Type %N (nicht unterstützt).\n"
+"Es ist möglich, dass ihr e2fsck älter ist und/oder dieses @j-Format nicht unterstützt.\n"
+"Es ist ebenso möglich, dass der @j-@S defekt ist.\n"
#. @-expanded: journal superblock is corrupt.\n
#: e2fsck/problem.c:221
msgid "@j @S is corrupt.\n"
-msgstr "Ext3 @j @S ist defekt.\n"
+msgstr "der @j-@S ist defekt.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
#: e2fsck/problem.c:226
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr "ext3 Recovery-Flag sauber, aber ein @j %s ist vorhanden.\n"
+msgstr ""
+"Der Bitschalter has_journal im Superblock ist nicht gesetzt, aber ein \n"
+"@j %s ist vorhanden.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
#: e2fsck/problem.c:231
msgid "@S needs_recovery flag is set, but no @j is present.\n"
msgstr ""
-"@S hat das ext3 „needs_recovery“-Flag gesetzt, aber ein @j ist nicht "
-"vorhanden.\n"
+"Im @S ist der Bitschalter „needs_recovery“ gesetzt, aber ein @j ist\n"
+"nicht vorhanden.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:236
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr "ext3 Recovery-Flag sauber, aber das @j enthält Daten.\n"
+msgstr ""
+"Der Bitschalter „Wiederherstellung nötig“ im @S ist nicht gesetzt, aber das\n"
+"@j enthält Daten.\n"
#. @-expanded: Clear journal
#: e2fsck/problem.c:241
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:246 e2fsck/problem.c:695
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr "@f hat Eigenschfts-Kennzeichen gesetzt, ist aber ein Revision 0 @f. "
+msgstr "@f hat Eigenschfts-Bitschalter gesetzt, ist aber ein Revision-0-@f. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:251
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
#: e2fsck/problem.c:256
msgid "@I %B (%b) found in @o @i %i.\n"
-msgstr "@I @b #%B (%b) gefunden in @o @i %i.\n"
+msgstr "@I @b #%B (%b) in @o @i %i gefunden.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
#: e2fsck/problem.c:261
msgid "Already cleared %B (%b) found in @o @i %i.\n"
-msgstr "bereits bereinigt @b #%B (%b) gefunden in @o @i %i.\n"
+msgstr "Bereits bereinigter %B (%b) in @o @i %i gefunden.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
#: e2fsck/problem.c:266
#, c-format
msgid "@I @o @i %i in @S.\n"
-msgstr "@I @o @i %i in @S.\n"
+msgstr "@I @o @i %i im @S.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
#: e2fsck/problem.c:271
#, c-format
msgid "@I @i %i in @o @i list.\n"
-msgstr "@I @i %i in @o @i Liste.\n"
+msgstr "Illegaler Inode %i in der Liste der verwaisten Inodes.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:276
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Ext3 @j @S hat ein unbekanntes Nur-Lesen-Flag gesetzt.\n"
+msgstr "der @j-@S hat einen unbekannten Nur-Lesen-Bitschalter gesetzt.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:281
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Ext3 @j @S hat ein unbekanntes Inkompatibel-Flag gesetzt.\n"
+msgstr "im @j-@S ist ein unbekannter Bitschalter für inkompatible Eigenschaft gesetzt.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:286
msgid "@j version not supported by this e2fsck.\n"
-msgstr "@j Version wird von diesem e2fsck nicht unterstützt.\n"
+msgstr "diese @j-Version wird von diesem e2fsck nicht unterstützt.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
"Error moving @j: %m\n"
"\n"
msgstr ""
-"Fehler beim Verschieben von @j: %m\n"
+"Fehler beim Verschieben von @j: %m\n"
"\n"
#. @-expanded: Found invalid V2 journal superblock fields (from V1 journal).\n
"Clearing fields beyond the V1 @j @S...\n"
"\n"
msgstr ""
-"Fand unvollständige V2 @j @S Felder (vom V1 Journal).\n"
-"Bereinige die Felder hinter V1 @j @S...\n"
+"Unvollständige V2-@j-@S-Felder (vom V1-Journal) gefunden.\n"
+"Die Felder nach dem V1-@j-@S werden bereinigt...\n"
"\n"
#. @-expanded: Run journal anyway
#: e2fsck/problem.c:312
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
msgstr ""
-"Recovery-Kennzeichen in Backup @S nicht gesetzt, @j wird trotzdem "
-"gestartet.\n"
+"Der Bitschalter fÜr Wiederherstellung ist im Sicherungs-Superblock nicht\n"
+"gesetzt, das @j wird daher trotzdem gestartet.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
"Backing up @j @i @b information.\n"
"\n"
msgstr ""
-"Sichere @j @i @b Information.\n"
+"Die Informationen des Journal-Inodeblocks werden gesichert.\n"
"\n"
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:328
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_@i nicht aktiviert, aber die zu modifgizierende Inod ist nicht-Null."
+msgstr "Resize_@i ist nicht aktiviert, aber die zu modifgizierende @i ist nicht-Null."
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:333
msgid "Resize @i not valid. "
-msgstr "@r ist kein @d. "
+msgstr "Resize-@i ist ungültig. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
#: e2fsck/problem.c:347
#, c-format
msgid "@S hint for external superblock @s %X. "
-msgstr "@S Hinweis für externen Superblock @s %X"
+msgstr "@S-Hinweis für externen Superblock @s %X. "
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
#: e2fsck/problem.c:357
msgid "@g descriptor %g checksum is %04x, should be %04y. "
-msgstr "Die Prüfsumme des @g -Deskriptors %g ist %04x, sie sollte %04y sein. "
+msgstr "Die Prüfsumme des @g-Deskriptors %g ist %04x, sie sollte %04y sein. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
#: e2fsck/problem.c:362
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr ""
-"@g -Deskriptor %g ist als nicht initialisiert gekennzeichnet ohne eine "
-"gesetzte Eigenschaft.\n"
+msgstr "@g-Deskriptor %g ist als nicht initialisiert gekennzeichnet ohne eine gesetzte Eigenschaft.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
#: e2fsck/problem.c:367
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr ""
-"@g Deskriptor %g hat eine ungültige Anzahl ungenutzter Inodes von %b. "
+msgstr "@g-Deskriptor %g hat eine ungültige Anzahl ungenutzter Inodes von %b. "
#. @-expanded: Last group block bitmap uninitialized.
#: e2fsck/problem.c:372
msgid "Last @g @b @B uninitialized. "
-msgstr "Die letzte @g @b @B ist nicht initialisiert. "
+msgstr "Die letzte Gruppen-Blockbitmap ist nicht initialisiert. "
#: e2fsck/problem.c:377
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr ""
-"Journaltransaktion %i war beschädigt, die Wiederholung wurde abgegrochen.\n"
+msgstr "Journaltransaktion %i war beschädigt, die Wiederholung wurde abgegrochen.\n"
#: e2fsck/problem.c:381
msgid "The test_fs flag is set (and ext4 is available). "
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Der Zeitpunkt des letzten Einhängens von @S liegt in der Zukunft.\n"
-"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-"
-"Uhr) "
+"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-Uhr) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Der Zeitpunkt des letzten Schreibens von @S liegt in der Zukunft.\n"
-"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-"
-"Uhr) "
+"\t(weniger als ein Tag, wahrscheinlich aufgrund falsch gesetzter Hardware-Uhr) "
#. @-expanded: One or more block group descriptor checksums are invalid.
#: e2fsck/problem.c:398
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Die Prüfsumme eines oder mehrerer @g -Deskriptoren ist ungültig. "
+msgstr "Die Prüfsumme eines oder mehrerer @g-Deskriptoren ist ungültig. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
#: e2fsck/problem.c:403
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"Verstecke @q Inodes.\n"
-"\n"
+msgstr "Quota-Inode %i (%Q) wird versteckt.\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
msgid "@S has invalid MMP block. "
-msgstr "@S hat einen ungültigen MMP Block. "
+msgstr "der @S hat einen ungültigen MMP-Block. "
#. @-expanded: superblock has invalid MMP magic.
#: e2fsck/problem.c:423
msgid "@S has invalid MMP magic. "
-msgstr "@S besitzt eine falsche MMP Magic number. "
+msgstr "der @S besitzt eine falsche MMP-Kennung. "
#: e2fsck/problem.c:428
#, c-format
#. @-expanded: Pass 1: Checking inodes, blocks, and sizes\n
#: e2fsck/problem.c:440
msgid "Pass 1: Checking @is, @bs, and sizes\n"
-msgstr "Durchgang 1: Prüfe @is, @bs, und Größen\n"
+msgstr "Durchgang 1: Prüfe @is, @bs und Größen\n"
#. @-expanded: root inode is not a directory.
#: e2fsck/problem.c:444
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
#: e2fsck/problem.c:454
msgid "Reserved @i %i (%Q) has @n mode. "
-msgstr "Reservierte @i %i %Q hat einen falschen Modus. "
+msgstr "Reservierte @i %i (%Q) hat einen ungültigen Modus. "
#. @-expanded: deleted inode %i has zero dtime.
#: e2fsck/problem.c:459
#, c-format
msgid "@D @i %i has zero dtime. "
-msgstr "@D @i %i hat \"zero dtime\". "
+msgstr "dtime in @D @i %i ist Null. "
#. @-expanded: inode %i is in use, but has dtime set.
#: e2fsck/problem.c:464
#: e2fsck/problem.c:469
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "@i %i ist ein @z @d. "
+msgstr "@i %i ist ein Verzeichnis mit Länge Null. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:474
msgid "@g %g's @b @B at %b @C.\n"
-msgstr "@g %g's @b @B auf %b @C.\n"
+msgstr "die Blockbitmap von @g %g auf %b überschneided sich mit einem anderen FS-Block.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:479
msgid "@g %g's @i @B at %b @C.\n"
-msgstr "@g %g's @i @B auf %b @C.\n"
+msgstr "die @i-@B von @g %g bei %b überschneided sich mit einem anderen FS-Block.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:484
msgid "@g %g's @i table at %b @C.\n"
-msgstr "@g %g's @i Tabelle auf %b @C.\n"
+msgstr "die @i-Tablle von Gruppe %g bei %b steht in Konflikt mit einem anderen Dateisystemblock.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
#: e2fsck/problem.c:489
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "@g %g's @b @B (%b) ist ungültig. "
+msgstr "die @b-@B (%b) von @g %g ist ungültig. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
#: e2fsck/problem.c:494
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "@g %g's @i @B (%b) ist ungültig. "
+msgstr "die @i-@B (%b) von @g %g ist ungültig. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
#: e2fsck/problem.c:499
msgid "@i %i, i_size is %Is, @s %N. "
-msgstr "@i %i, i_size ist %Is, @s %N. "
+msgstr "@i %i, i_size ist %Is, sollte %N sein. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
#: e2fsck/problem.c:504
msgid "@i %i, i_@bs is %Ib, @s %N. "
-msgstr "@i %i, i_@bs ist %Ib, @s %N. "
+msgstr "@i %i, i_@bs ist %Ib, sollte %N sein. "
#. @-expanded: illegal %B (%b) in inode %i.
#: e2fsck/problem.c:509
msgid "@I %B (%b) in @i %i. "
-msgstr "@I @b #%B (%b) in @i %i. "
+msgstr "illegaler %B (%b) in @i %i. "
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
#: e2fsck/problem.c:514
msgid "%B (%b) overlaps @f metadata in @i %i. "
-msgstr "@b #%B (%b) überlappt @f metadata in @i %i. "
+msgstr "%B (%b) überlappt @f-Metadaten in @i %i. "
#. @-expanded: inode %i has illegal block(s).
#: e2fsck/problem.c:519
#, c-format
msgid "@i %i has illegal @b(s). "
-msgstr "@i %i hat unzulässigen @b(s). "
+msgstr "@i %i hat unzulässige(n) Block/Blöcke. "
#. @-expanded: Too many illegal blocks in inode %i.\n
#: e2fsck/problem.c:524
#. @-expanded: illegal %B (%b) in bad block inode.
#: e2fsck/problem.c:529
msgid "@I %B (%b) in bad @b @i. "
-msgstr "@I @b #%B (%b) in bad @b @i. "
+msgstr "@I %B (%b) in ungültiger @b-@i. "
#. @-expanded: Bad block inode has illegal block(s).
#: e2fsck/problem.c:534
msgid "Bad @b @i has illegal @b(s). "
-msgstr "Bad @b @i hat unzulässigen @b(s). "
+msgstr "Bad-@b @i hat unzulässige(n) Block/Blöcke. "
#. @-expanded: Duplicate or bad block in use!\n
#: e2fsck/problem.c:539
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:544
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr "Bad @b %b benutzt als bad @b @i indirekt @b. "
+msgstr "Ungültiger @b %b wird benutzt als indirekter Block der Badblock-Inode. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
"in the @f.\n"
msgstr ""
"\n"
-"Defekter @b @i ist wahrscheinlich beschädigt worden. Sie sollten\n"
-"nun eher innehalten und „e2fsck -c“ ausführen, um nach defekten\n"
-"Blöcken in @f zu suchen.\n"
+"Die Badblock-Indode ist wahrscheinlich beschädigt worden. Sie sollten\n"
+"nun innehalten und „e2fsck -c“ ausführen, um nach defekten Blöcken in\n"
+"dem @f zu suchen.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Wenn der @b wirklich defekt ist, kann der @f nicht repariert werden.\n"
+"Wenn der @b wirklich defekt ist, kann das @f nicht repariert werden.\n"
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
"that the @b is really OK. But there are no guarantees.\n"
"\n"
msgstr ""
-"Sie können @b von der @b - Liste löschen \n"
-"und hoffen das @b wirklich in Ordnung ist, es \n"
-"gibt aber KEINE GARANTIEN.\n"
+"Sie können diesen @b von der Liste der defekten Blöcke löschen\n"
+"und hoffen, das dieser wirklich in Ordnung ist, es gibt aber\n"
+"KEINE GARANTIEN.\n"
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
#: e2fsck/problem.c:567
msgid "The primary @S (%b) is on the bad @b list.\n"
-msgstr "Der primäre @S (%b) ist auf der bad @b Liste.\n"
+msgstr "Der primäre @S (%b) ist auf der Liste der defekten Blöcke.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr "Block %b im primären Deskriptor @g ist auf der bad @b Liste\n"
+msgstr "Block %b im primären Deskriptor @g ist auf der Liste der defekten Blöcke\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
msgid "Warning: Group %g's @S (%b) is bad.\n"
-msgstr "Warnung: Gruppe %g's @S (%b) ist ungültig.\n"
+msgstr "Warnung: der @S von Gruppe %g (%b) ist defekt.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:583
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr "Warnung: Gruppe %g's Kopie vom Deskriptor @g hat einen bad @b (%b).\n"
+msgstr "Warnung: die Kopie des Gruppen-Deskriptors von Gruppe %g hat einen defekten Block (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr "Programmfehler? @b #%b verlangt ohne Grund in process_bad_@b.\n"
+msgstr "Programmfehler? @b #%b wird ohne Grund in process_bad_@b verlangt.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr "@A %N grenzt an @b(s) in @b @g %g for %s: %m\n"
+msgstr "@A %N zusammenhängenende(m/n) Block/Blöcken in der @b-@g %g für %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
#: e2fsck/problem.c:600
#, c-format
msgid "@A @b buffer for relocating %s\n"
-msgstr "@A @b Puffer zum Verschieben %s\n"
+msgstr "@A einen @b-Puffer zum Verschieben von %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
#: e2fsck/problem.c:605
msgid "Relocating @g %g's %s from %b to %c...\n"
-msgstr "Verschiebe @g %g's %s von %b nach %c...\n"
+msgstr "Verschiebe Gruppe %g's %s von %b nach %c...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
#: e2fsck/problem.c:610
#. @-expanded: Warning: could not read block %b of %s: %m\n
#: e2fsck/problem.c:615
msgid "Warning: could not read @b %b of %s: %m\n"
-msgstr "Warnung: kann @b %b von %s: %m nicht lesen\n"
+msgstr "Warnung: @b %b von %s konnte nicht gelesen werden: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
#: e2fsck/problem.c:620
msgid "Warning: could not write @b %b for %s: %m\n"
-msgstr "Warnung: kann @b %b von %s: %m nicht schreiben\n"
+msgstr "Warnung: @b %b von %s konnte nicht geschrieben werden: %m\n"
#. @-expanded: error allocating inode bitmap (%N): %m\n
#: e2fsck/problem.c:625 e2fsck/problem.c:1460
msgid "@A @i @B (%N): %m\n"
-msgstr "@A @i @B (%N): %m\n"
+msgstr "@A die @i-@B (%N): %m\n"
#. @-expanded: error allocating block bitmap (%N): %m\n
#: e2fsck/problem.c:630
msgid "@A @b @B (%N): %m\n"
-msgstr "@A @i @B (%N): %m\n"
+msgstr "@A die @i-@B (%N): %m\n"
#. @-expanded: error allocating icount link information: %m\n
#: e2fsck/problem.c:635
#, c-format
msgid "@A icount link information: %m\n"
-msgstr "@A icount link information: %m\n"
+msgstr "@A die „icount link information“: %m\n"
#. @-expanded: error allocating directory block array: %m\n
#: e2fsck/problem.c:640
#, c-format
msgid "@A @d @b array: %m\n"
-msgstr "@A @d @b array: %m\n"
+msgstr "@A das @d-@b-Feld: %m\n"
#. @-expanded: Error while scanning inodes (%i): %m\n
#: e2fsck/problem.c:645
#, c-format
msgid "Error while scanning @is (%i): %m\n"
-msgstr "Fehler während der Suche @is (%i): %m\n"
+msgstr "Fehler während des Durchsuchens der @is (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
#: e2fsck/problem.c:650
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
-msgstr "Fehler beim Iterieren über @bs in @i %i: %m\n"
+msgstr "Fehler beim Iterieren über die Blöcke in @i %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:655
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr ""
-"Fehler beim Speichern von @i count Informationen (@i=%i, count=%N): %m\n"
+msgstr "Fehler beim Speichern der @i Anzahl-Informationen (@i=%i, count=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr "Fehler beim Speichern @d @b Informationen (@i=%i, @b=%b, num=%N): %m\n"
+msgstr "Fehler beim Speichern der @d-@b-Informationen (@i=%i, @b=%b, num=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
#: e2fsck/problem.c:674
#, c-format
msgid "@i %i has imagic flag set. "
-msgstr "@i %i hat Imagic-Flag gesetzt. "
+msgstr "@i %i hat den Imagic-Bitschalter gesetzt. "
#. @-expanded: Special (device/socket/fifo/symlink) file (inode %i) has immutable\n
#. @-expanded: or append-only flag set.
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat immutable\n"
-"oder append-only Flag gesetzt. "
+"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat den Bitschalter für\n"
+"unveränderbar oder nur-anängen gesetzt. "
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
#: e2fsck/problem.c:685
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr "@i %i hat @cion Flag gesetzt auf @f ohne @cion Unterstützung. "
+msgstr "@i %i hat den Bitschalter für @c gesetzt auf einem @f ohne Unterstützung dafür. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
#: e2fsck/problem.c:690
#, c-format
msgid "Special (@v/socket/fifo) @i %i has non-zero size. "
-msgstr ""
-"Spezielle (@v/socket/fifo/symlink) Datei (@i %i) hat immutable\n"
-"oder append-only Flag gesetzt. "
+msgstr "Spezielle (@v/socket/fifo) @i %i hat die Größe Null. "
#. @-expanded: journal inode is not in use, but contains data.
#: e2fsck/problem.c:700
msgid "@j @i is not in use, but contains data. "
-msgstr "@i %i ist in Benutzung, aber hat dtime gesetzt. "
+msgstr "@j %i wird nicht verwendet, aber enthält Daten. "
#. @-expanded: journal is not regular file.
#: e2fsck/problem.c:705
#: e2fsck/problem.c:710
#, c-format
msgid "@i %i was part of the @o @i list. "
-msgstr "@i %i war Teil der orphaned @i Liste. "
+msgstr "@i %i war Teil der Liste verwaister Inodes. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:716
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "@is, die Teile einer defekten Liste mit verwaisten Links waren. "
+msgstr "@is gefunden, die Teil einer defekten verketteten Liste von verwaisten @is waren. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:721
msgid "@A refcount structure (%N): %m\n"
-msgstr "@A icount structure: %m\n"
+msgstr "@A die refcount-Structure (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
#: e2fsck/problem.c:726
msgid "Error reading @a @b %b for @i %i. "
-msgstr "Fehler beim Lesen @a @b %b for @i %i. "
+msgstr "Fehler beim Lesen des Blocks für erweiterte Attribute %b f @i %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
#: e2fsck/problem.c:731
msgid "@i %i has a bad @a @b %b. "
-msgstr "@i %i hat defekten @a @b %b. "
+msgstr "@i %i hat einen defekten erweiterte-Attribute-Block %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
#: e2fsck/problem.c:736
msgid "Error reading @a @b %b (%m). "
-msgstr "Fehler beim Lesen @a @b %b (%m). "
+msgstr "Fehler beim Lesen des Blocks für erweiterte Attribute (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
#: e2fsck/problem.c:741
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "@a @b %b hat den Referenzzähler %r, richtig wäre %N. "
+msgstr "Der Referenzzähler des Blocks für @a %b ist %r, richtig wäre %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
#: e2fsck/problem.c:746
msgid "Error writing @a @b %b (%m). "
-msgstr "Fehler beim Schreiben @a @b %b (%m). "
+msgstr "Fehler beim Schreiben des Blocks für @a %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
#: e2fsck/problem.c:751
msgid "@a @b %b has h_@bs > 1. "
-msgstr "@a @b %b hat h_blocks > 1. "
+msgstr "der Block für @a %b hat h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
#: e2fsck/problem.c:756
msgid "@A @a @b %b. "
-msgstr "@A @a @b %b. "
+msgstr "@A den Block für erweiterte Attribute %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:761
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "@a @b %b ist defekt (allocation collision). "
+msgstr "der @b für @a %b ist defekt (Kollision der Platzanforderungen). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
#: e2fsck/problem.c:766
#. @-expanded: extended attribute block %b is corrupt (invalid value).
#: e2fsck/problem.c:771
msgid "@a @b %b is corrupt (@n value). "
-msgstr "@a @b %b ist defekt (ungültiger Wert). "
+msgstr "der @b für @a %b ist defekt (ungültiger Wert). "
#. @-expanded: inode %i is too big.
#: e2fsck/problem.c:776
#. @-expanded: %B (%b) causes directory to be too big.
#: e2fsck/problem.c:780
msgid "%B (%b) causes @d to be too big. "
-msgstr "@b #%B (%b) macht @d zu groß. "
+msgstr "%B (%b) macht @d zu groß. "
#: e2fsck/problem.c:785
msgid "%B (%b) causes file to be too big. "
#: e2fsck/problem.c:800
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
-msgstr "@i %i hat INDEX_FL flag gesetzt, ist aber kein @d.\n"
+msgstr "@i %i hat den INDEX_FL-Bitschalter gesetzt, ist aber kein @d.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
#: e2fsck/problem.c:805
#, c-format
msgid "@h %i has an @n root node.\n"
-msgstr "@h %i hat einen unvollständigen root node.\n"
+msgstr "@h %i hat einen unvollständigen Wurzelknoten („root node“).\n"
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
#: e2fsck/problem.c:810
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "@h %i hat eine nicht unterstützte hash-Version (%N)\n"
+msgstr "@h %i hat eine nicht unterstützte Hash-Version (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
#: e2fsck/problem.c:815
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "@h %i benutzt einen nicht unterstützten htree root node flag.\n"
+msgstr "@h %i benutzt einen nicht unterstützten Bitschalter für einen Htree-Wurzelknoten.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
#: e2fsck/problem.c:820
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
-"Defekter @b @i hat einen indirekten @b (%b), der mit\n"
-"den @f Metadaten in Konflikt steht. "
+"der @i für defekte Blöcke hat einen indirekten @b (%b), der mit\n"
+"den @f-Metadaten in Konflikt steht. "
#. @-expanded: Resize inode (re)creation failed: %m.
#: e2fsck/problem.c:831
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
#: e2fsck/problem.c:836
msgid "@i %i has a extra size (%IS) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "@h %i hat eine ungültige Extragröße (%IS)\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
#: e2fsck/problem.c:841
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat eine ungültige namelen von %N\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
#: e2fsck/problem.c:846
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat einen ungültigen Werteversatz von %N\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:851
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat einen ungültigen Werteblock von %N (muß 0 sein)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
#: e2fsck/problem.c:856
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "@h %i hat eine zu große Verzeichnistiefe von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat eine ungültige Wertegröße von %N\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
#: e2fsck/problem.c:861
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "@a in %i hat einen @n Hashwert von (%N)\n"
+msgstr "ein erweitertes Attribut in @i %i hat den ungültigen Hash %N\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:866
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr ""
-"@i ist ein %It aber es sieht so aus, als ob es tatsächlich ein Verzeichnis "
-"ist.\n"
+msgstr "@i %i ist ein %It, aber es sieht so aus, als ob es tatsächlich ein Verzeichnis ist.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
#: e2fsck/problem.c:871
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "Fehler beim Iterieren über Baum @x in @i %i: %m\n"
+msgstr "Fehler beim Iterieren über den @xs-Baum @x in @i %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-"Das Iterieren der Extents in @i %i scheiterte\n"
+"Das Iterieren der Erweiterungen (extents) in @i %i scheiterte\n"
"\t(op %s, blk %b, lblk %c): %m\n"
#. @-expanded: inode %i has an invalid extent\n
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-"@i %i hat eine @n Erweiterung\n"
+"@i %i hat eine @ne Erweiterung\n"
"\t(logischer @b %c, @n physischer @b %b, Länge %N)\n"
#. @-expanded: inode %i has an invalid extent\n
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"@i %i hat eine @n Erweiterung\n"
+"@i %i hat eine ungültige Erweiterung\n"
"\t(logischer @b %c, physischer @b %b, @n Länge %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"@i %i hat EXTENTS_FL Kennung auf einem @f ohne Unterstützung für "
-"Erweiterungen.\n"
+msgstr "@i %i hat EXTENTS_FL-Bitschalter gesetzt, obwohl das @f Erweiterungen nicht unterstützt.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"@i %i besitzt das Erweiterungsformat, aber dem @S fehlt die Eigenschaft "
-"EXTENTS\n"
+msgstr "@i %i besitzt das Erweiterungsformat, aber dem @S fehlt die Eigenschaft EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr "@i %i fehlt EXTENT_FL, aber hat das Format einer Erweiterungs-@i\n"
+msgstr "der @i %i fehlt EXTENT_FL, sie hat aber das Format einer Erweiterung\n"
#: e2fsck/problem.c:907
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Schneller Symlink %i hat EXTENT_FL gesetzt. "
+msgstr "In schnellem Symlink %i ist EXTENT_FL gesetzt. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"@i %i hat unregelmässige Erweitertungen\n"
+"@i %i hat unregelmässige Erweiterungen\n"
"\t(@n logischer @b %c, physischer @b %b, Länge %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
#: e2fsck/problem.c:916
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
-msgstr "@i %i hat einen ungültigen Extent-Knoten (blk %b, lblk %c)\n"
+msgstr "@i %i hat einen ungültigen Erweiterungs-Knoten (blk %b, lblk %c)\n"
#. @-expanded: Error converting subcluster block bitmap: %m\n
#: e2fsck/problem.c:921
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
-msgstr "Fehler beim umwandeln der Subcluster-Bitmap: %m\n"
+msgstr "Fehler beim Umwandeln der Subcluster-Blockbitmap: %m\n"
#. @-expanded: quota inode is not regular file.
#: e2fsck/problem.c:926
#. @-expanded: quota inode is not in use, but contains data.
#: e2fsck/problem.c:931
msgid "@q @i is not in use, but contains data. "
-msgstr "@q %i wird nicht benutzt, enthält aber Daten. "
+msgstr "@q-@i wird nicht benutzt, enthält aber Daten. "
#. @-expanded: quota inode is visible to the user.
#: e2fsck/problem.c:936
msgid "@q @i is visible to the user. "
-msgstr "@q @i ist sichtbar für den Benutzer. "
+msgstr "die @q-@i ist sichtbar für den Benutzer. "
#. @-expanded: The bad block inode looks invalid.
#: e2fsck/problem.c:941
msgid "The bad @b @i looks @n. "
-msgstr "Die „Bad Blocks“-Inode sieht ungültig aus. "
+msgstr "Die Inode für defekte Blöcke sieht ungültig aus. "
#. @-expanded: inode %i has zero length extent\n
#. @-expanded: \t(invalid logical block %c, physical block %b)\n
"@i %i has zero length extent\n"
"\t(@n logical @b %c, physical @b %b)\n"
msgstr ""
-"@i %i hat Erweitertungen der Länge Null\n"
+"@i %i hat eine Erweitertung der Länge Null\n"
"\t(@n logischer @b %c, physischer @b %b)\n"
#. @-expanded: \n
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Doppelter @bs gefunden... starte Scan nach doppelten @b.\n"
-"Durchgang 1B: Suche nach doppelten/defekten @bs\n"
+"Führe zusätzliche Läufe durch, um die von mehr als einer @i beanspruchten Blöcke zu klären...\n"
+"Durchgang 1B: Suche nach mehrfach beanspruchten Blöcken\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
#: e2fsck/problem.c:959
#, c-format
msgid "@m @b(s) in @i %i:"
-msgstr "@m @b(s) in @i %i:"
+msgstr "@me(r) Block/Blöcke in @i %i:"
#: e2fsck/problem.c:974
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
-msgstr "Fehlen beim Prüfen von Inodes (%i): %m\n"
+msgstr "Fehlen beim Prüfen der Inodes (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
#: e2fsck/problem.c:979
#, c-format
msgid "@A @i @B (@i_dup_map): %m\n"
-msgstr "@A @i @B (inode_dup_map): %m\n"
+msgstr "@A die @i-@B (inode_dup_map): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
#: e2fsck/problem.c:984
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
-msgstr "Fehler beim Durchlaufen der @bs in @i %i (%s): %m\n"
+msgstr "Fehler beim Iterieren über die Blöcke in @i %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:989 e2fsck/problem.c:1304
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr "Fehler bei der Anpassung des refcount für @a @b %b (@i %i): %m\n"
+msgstr "Fehler bei der Anpassung des Referenzzählers des Blocks für @a %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
#: e2fsck/problem.c:994
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr "Durchgang 1C: Prüfe Verzeichnisse nach @is mit doppelten @bs.\n"
+msgstr "Durchgang 1C: Durchsuche Verzeichnisse nach @is mit mehrfach belegten Blöcken.\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
#: e2fsck/problem.c:1000
msgid "Pass 1D: Reconciling @m @bs\n"
-msgstr "Durchgang 1D: Gleiche doppelte @bs ab\n"
+msgstr "Durchgang 1D: Gleiche mehrfach belegte Blöcke ab\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
"File %Q (@i #%i, mod time %IM) \n"
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
-"Datei %Q (@i #%i, Modifikationszeitpunkt %IM) \n"
-" hat %B doppelte @b(s), gemeinsam genutzt mit %N Datei(en):\n"
+"Datei %Q (@i #%i, Änderungszeit %IM) \n"
+" hat %r mehrfach belegte(n) Block/Böcke, gemeinsam genutzt mit %N Datei(en):\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
#: e2fsck/problem.c:1011
msgid "\t%Q (@i #%i, mod time %IM)\n"
-msgstr "\t%Q (@i #%i, mod time %IM)\n"
+msgstr "\t%Q (@i #%i, Änderungszeit %IM)\n"
#. @-expanded: \t<filesystem metadata>\n
#: e2fsck/problem.c:1016
msgid "\t<@f metadata>\n"
-msgstr "\t<@f metadata>\n"
+msgstr "\t<@f-Metadaten>\n"
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
"(There are %N @is containing @m @bs.)\n"
"\n"
msgstr ""
-"(es gibt %N @is, die doppelte/defekte @bs enthalten.)\n"
+"(es gibt %N @is, die mehrfach belegte Blöcke enthalten.)\n"
"\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"Duplizierte @bs bereits neu zugeordnet bzw. geklont.\n"
+"mehrfach belegte Blöcke wurden bereits neu zugeordnet bzw. geklont.\n"
"\n"
#: e2fsck/problem.c:1039
#, c-format
msgid "Couldn't clone file: %m\n"
-msgstr "Kann die Datei %m nicht klonen.\n"
+msgstr "Kann eine Datei nicht klonen: %m\n"
#. @-expanded: Pass 2: Checking directory structure\n
#: e2fsck/problem.c:1045
msgid "Pass 2: Checking @d structure\n"
-msgstr "Durchgang 2: Prüfe @d Struktur\n"
+msgstr "Durchgang 2: Prüfe die @dstruktur\n"
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
#: e2fsck/problem.c:1050
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Falsche @i Nummer für „.“ in @d @i %i.\n"
+msgstr "Falsche @inummer für „.“ in Verzeichnisinode %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
#: e2fsck/problem.c:1055
msgid "@E has @n @i #: %Di.\n"
-msgstr "@E hat falsche @i #: %Di.\n"
+msgstr "@E hat falsche @i-Nr.: %Di.\n"
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
#: e2fsck/problem.c:1060
msgid "@E has @D/unused @i %Di. "
-msgstr "@E hat @D/unbenutzt @i %Di. "
+msgstr "@E hat gelöschte/unbenutzt @i %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
#: e2fsck/problem.c:1065
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:1070
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr "@E zeigt auf @i (%Di) in einem defekten @b.\n"
+msgstr "@E zeigt auf eine @i (%Di) in einem defekten @b.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
#: e2fsck/problem.c:1075
msgid "@E @L to @d %P (%Di).\n"
-msgstr "@E @L nach @d %P (%Di).\n"
+msgstr "@E @L mit @d %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
#: e2fsck/problem.c:1080
msgid "@E @L to the @r.\n"
-msgstr "@E @L zur @r.\n"
+msgstr "@E @L mit der @r.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
#: e2fsck/problem.c:1085
#: e2fsck/problem.c:1095
#, c-format
msgid "Missing '..' in @d @i %i.\n"
-msgstr "Fehlende „..“ in @d @i %i.\n"
+msgstr "Fehlender Eintrag „..“ in @dinode %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:1100
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "Erster @e „%Dn“ (inode=%Di) in @d @i %i (%p) @s „.“\n"
+msgstr "Der erste @e „%Dn“ (@i=%Di) in @d-@i %i (%p) sollte „.“ sein\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
#: e2fsck/problem.c:1105
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
-msgstr "Zweiter @e „%Dn“ (inode=%Di) in @d @i %i @s „..“\n"
+msgstr "Der zweite @e „%Dn“ (inode=%Di) in @d-@i %i sollte „..“ sein\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
#: e2fsck/problem.c:1110
msgid "i_faddr @F %IF, @s zero.\n"
-msgstr "i_faddr @F %IF, @s null.\n"
+msgstr "i_faddr @F %IF, sollte Null sein.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
#: e2fsck/problem.c:1115
msgid "i_file_acl @F %If, @s zero.\n"
-msgstr "i_file_acl @F %If, @s null.\n"
+msgstr "i_file_acl @F %If, sollte Null sein.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
#: e2fsck/problem.c:1120
msgid "i_dir_acl @F %Id, @s zero.\n"
-msgstr "i_dir_acl @F %Id, @s null.\n"
+msgstr "i_dir_acl @F %Id, sollte Null sein.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1125
msgid "i_frag @F %N, @s zero.\n"
-msgstr "i_frag @F %N, @s null.\n"
+msgstr "i_frag @F %N, sollte Null sein.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1130
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
#: e2fsck/problem.c:1135
msgid "@i %i (%Q) has @n mode (%Im).\n"
-msgstr "@i %i (%Q) hat einen falschen Modus (%Im).\n"
+msgstr "@i %i (%Q) hat einen ungültigen Modus (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
#: e2fsck/problem.c:1140
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
-msgstr "@d @i %i, @b %B, Offset %N: @d defekt\n"
+msgstr "@d-@i %i, @b %B, Offset %N: @d defekt\n"
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
#: e2fsck/problem.c:1145
msgid "@d @i %i, %B, offset %N: filename too long\n"
-msgstr "@d @i %i, @b %B, offset %N: Dateiname zu lang\n"
+msgstr "@d-@i %i, @b %B, offset %N: Dateiname zu lang\n"
#. @-expanded: directory inode %i has an unallocated %B.
#: e2fsck/problem.c:1150
msgid "@d @i %i has an unallocated %B. "
-msgstr "@d @i %i hat einen nicht zugewiesenen @b #%B. "
+msgstr "@d-@i %i hat einen nicht zugewiesenen %B. "
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
#: e2fsck/problem.c:1155
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "„.“ @d @e in @d @i %i ist nicht NULL-terminiert\n"
+msgstr "@d-@e „.“ in @d-@i %i ist nicht NULL-terminiert\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
#: e2fsck/problem.c:1160
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "„..“ @d @e in @d @i %i ist nicht NULL-terminiert\n"
+msgstr "@d-@e „..“ in @d-@i %i ist nicht NULL-terminiert\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
#: e2fsck/problem.c:1165
msgid "@i %i (%Q) is an @I character @v.\n"
-msgstr "@i %i (%Q) ist ein @I Zeichen @v.\n"
+msgstr "@i %i (%Q) ist ein @I zeichenorientiertes Gerät.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
#: e2fsck/problem.c:1170
msgid "@i %i (%Q) is an @I @b @v.\n"
-msgstr "@i %i (%Q) ist ein @I @b @v.\n"
+msgstr "@i %i (%Q) ist ein @I blockorientiertes Gerät.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
#: e2fsck/problem.c:1175
msgid "@E is duplicate '.' @e.\n"
-msgstr "@E ist ein doppelter „.“ @e.\n"
+msgstr "@E ist ein doppelter @e für „.“.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
#: e2fsck/problem.c:1180
msgid "@E is duplicate '..' @e.\n"
-msgstr "@E ist ein doppelter „..“ @e.\n"
+msgstr "@E ist ein doppelter @e für „..“.\n"
#: e2fsck/problem.c:1185 e2fsck/problem.c:1485
#, c-format
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
#: e2fsck/problem.c:1190
msgid "@E has rec_len of %Dr, @s %N.\n"
-msgstr "@E hat rec_len von %Dr, sollte %N sein.\n"
+msgstr "@E hat eine rec_len von %Dr, sollte %N sein.\n"
#. @-expanded: error allocating icount structure: %m\n
#: e2fsck/problem.c:1195
#, c-format
msgid "@A icount structure: %m\n"
-msgstr "@A icount structure: %m\n"
+msgstr "@A die icount-Structur: %m\n"
#. @-expanded: Error iterating over directory blocks: %m\n
#: e2fsck/problem.c:1200
#, c-format
msgid "Error iterating over @d @bs: %m\n"
-msgstr "Fehler beim Durchlaufen der @d @bs: %m\n"
+msgstr "Fehler beim Durchlaufen der @dblöcke: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
#: e2fsck/problem.c:1205
msgid "Error reading @d @b %b (@i %i): %m\n"
-msgstr "Lesefehler @d @b %b (@i %i): %m\n"
+msgstr "Fehler beim Lesen des @dblocks %b (@i %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
#: e2fsck/problem.c:1210
msgid "Error writing @d @b %b (@i %i): %m\n"
-msgstr "Schreibfehler @d @b %b (@i %i): %m\n"
+msgstr "Fehler beim Schreiben von @dblock %b (@i %i): %m\n"
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
#: e2fsck/problem.c:1215
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
-msgstr "@A neu @d @b for @i %i (%s): %m\n"
+msgstr "@A einen neuen @dblock für @i %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
#: e2fsck/problem.c:1220
#: e2fsck/problem.c:1225
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "Verzeichniseintrag für „.“ in %p (%i) ist gross.\n"
+msgstr "Verzeichniseintrag für „.“ in %p (%i) ist groß.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
#: e2fsck/problem.c:1230
#. @-expanded: inode %i (%Q) is an illegal socket.\n
#: e2fsck/problem.c:1235
msgid "@i %i (%Q) is an @I socket.\n"
-msgstr "@i %i (%Q) ist ein @I Socket.\n"
+msgstr "@i %i (%Q) ist ein illegaler Socket.\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
#: e2fsck/problem.c:1240
msgid "Setting filetype for @E to %N.\n"
-msgstr "Setze Dateitype für @E auf %N.\n"
+msgstr "Setze den Dateitype für @E auf %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
#: e2fsck/problem.c:1245
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
#: e2fsck/problem.c:1255
msgid "@E has a @z name.\n"
-msgstr "@E hat einen Namen der Länge Null..\n"
+msgstr "@E hat einen Namen der Länge Null.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
#: e2fsck/problem.c:1260
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1270
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr ""
-"@f enthält große Dateien, aber das LARGE_FILE Flag in @S ist nicht gesetzt.\n"
+msgstr "@f enthält große Dateien, aber im @S den Bitschalter LARGE_FILE nicht gesetzt.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
#: e2fsck/problem.c:1275
msgid "@p @h %d: %B not referenced\n"
-msgstr "@p @h %d: Node (%B) nicht referenziert\n"
+msgstr "@p @h %d: %B ist nicht referenziert\n"
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
#: e2fsck/problem.c:1280
msgid "@p @h %d: %B referenced twice\n"
-msgstr "@p @h %d: Node (%B) doppelt referenziert\n"
+msgstr "@p @h %d: %B doppelt referenziert\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
#: e2fsck/problem.c:1285
#. @-expanded: invalid HTREE directory inode %d (%q).
#: e2fsck/problem.c:1295
msgid "@n @h %d (%q). "
-msgstr "Invalid @h %d (%q). "
+msgstr "Ungültige @h %d (%q). "
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
#: e2fsck/problem.c:1299
msgid "@p @h %d (%q): bad @b number %b.\n"
-msgstr "@p @h %d (%q): bad @b number %b.\n"
+msgstr "@p @h %d (%q): falsche Blocknummer %b.\n"
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
#: e2fsck/problem.c:1309
#, c-format
msgid "@p @h %d: root node is @n\n"
-msgstr "@p @h %d: root node is invalid\n"
+msgstr "@p @h %d: Wurzelknotenist ungültig\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
#: e2fsck/problem.c:1314
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
#: e2fsck/problem.c:1319
msgid "@p @h %d: %B has @n count (%N)\n"
-msgstr "@p @h %d: %B hat einen ungültigen Zähler (%N)\n"
+msgstr "@p @h %d: %B hat einen ungültigen Zählerstand (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
#: e2fsck/problem.c:1324
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
#: e2fsck/problem.c:1329
msgid "@p @h %d: %B has @n depth (%N)\n"
-msgstr "@p @h %d: %B has eine ungültige Tiefe (%N)\n"
+msgstr "@p @h %d: %B hat eine ungültige Tiefe (%N)\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
#: e2fsck/problem.c:1334
msgid "Duplicate @E found. "
-msgstr "Doppelte @E gefunden. "
+msgstr "Doppelter @E gefunden. "
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
-"Doppelte @e '%Dn' gefunden.\n"
-"\tMarkiere %p (%i) für die Neuerstellung.\n"
+"Doppelter @e „%Dn“ gefunden.\n"
+"\t%p (%i) wird für die Neuerstellung markiert.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1349
msgid "i_blocks_hi @F %N, @s zero.\n"
-msgstr "i_blocks_hi @F %N, @s zero.\n"
+msgstr "i_blocks_hi @F %N, sollte Null sein.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
#: e2fsck/problem.c:1354
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
#: e2fsck/problem.c:1358
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr "@i %i wurde in @g %g gefunden, für die _INODE_UNINIT gesetzt ist.\n"
+msgstr "@E referenziert @i %Di in @g %g, für die _INODE_UNINIT gesetzt ist.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr "@i %i wurde im Bereich ungenutzter Inodes von @g %g gefunden.\n"
+msgstr "@E verweist auf @i %Di, die im Bereich ungenutzter Inodes von @g %g zu finden ist.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
#. @-expanded: Pass 3: Checking directory connectivity\n
#: e2fsck/problem.c:1375
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Durchgang 3: Prüfe @d Verknüpfungen\n"
+msgstr "Durchgang 3: Prüfe @d-Verknüpfungen\n"
#. @-expanded: root inode not allocated.
#: e2fsck/problem.c:1380
#. @-expanded: No room in lost+found directory.
#: e2fsck/problem.c:1385
msgid "No room in @l @d. "
-msgstr "Kein Platz in @l @d. "
+msgstr "Kein Platz im Verzeichnis @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
#: e2fsck/problem.c:1390
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
-msgstr "Nicht verbundene @d @i %i (%p)\n"
+msgstr "Nicht verbundene @d-@i %i (%p)\n"
#. @-expanded: /lost+found not found.
#: e2fsck/problem.c:1395
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
#: e2fsck/problem.c:1400
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "„..“ in %Q (%i) ist %P (%j), @s %q (%d).\n"
+msgstr "„..“ in %Q (%i) ist %P (%j), sollte %q (%d) sein.\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
#: e2fsck/problem.c:1405
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "Falscher oder fehlender /@l. Wiederverbinden nicht möglich.\n"
+msgstr "Falsches oder fehlendes Verzeichnis /@l. Wiederverbinden nicht möglich.\n"
#. @-expanded: Could not expand /lost+found: %m\n
#: e2fsck/problem.c:1410
#, c-format
msgid "Could not expand /@l: %m\n"
-msgstr "Erweitern nicht möglich /@l: %m\n"
+msgstr "Erweitern von /@l nicht möglich: %m\n"
#: e2fsck/problem.c:1415
#, c-format
msgid "Could not reconnect %i: %m\n"
-msgstr "Wiederverbinden nicht möglich %i: %m\n"
+msgstr "Wiederverbinden von %i nicht möglich: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
#: e2fsck/problem.c:1420
#: e2fsck/problem.c:1425
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@b: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_@b: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
#: e2fsck/problem.c:1430
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_@i: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_@i: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
#: e2fsck/problem.c:1435
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_@b: %m während des Versuches /@l @d zu erzeugen.\n"
+msgstr "ext2fs_new_dir_@b: %m während des Versuches, @d /@l zu erzeugen.\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
#: e2fsck/problem.c:1440
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr "ext2fs_write_dir_@b: %m während des Schreibens von @d @b für /@l\n"
+msgstr "ext2fs_write_dir_@b: %m während des Schreibens des @d-@bs für /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
#: e2fsck/problem.c:1445
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
-msgstr "Fehler während der Einstellung von @i count auf @i %i\n"
+msgstr "Fehler während des Anpassens der @i-Anzahl auf @i %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
"Couldn't fix parent of @i %i: %m\n"
"\n"
msgstr ""
-"Konnte Parent von @i %i: %m nicht reparieren\n"
+"Konnte den Eigentümer von @i %i nicht reparieren: %m\n"
"\n"
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Parent von @i %i konnte nicht repariert werden: \n"
-"parent @d nicht gefunden.\n"
+"Eigentümer von @i %i konnte nicht repariert werden: \n"
+"@deintrag des Eigentümers wurde nicht gefunden.\n"
#. @-expanded: Error creating root directory (%s): %m\n
#: e2fsck/problem.c:1465
#, c-format
msgid "Error creating root @d (%s): %m\n"
-msgstr "Fehler beim Erzeugen des root @d (%s): %m\n"
+msgstr "Fehler beim Erzeugen des Wurzelverzeichnisses (%s): %m\n"
#. @-expanded: Error creating /lost+found directory (%s): %m\n
#: e2fsck/problem.c:1470
#, c-format
msgid "Error creating /@l @d (%s): %m\n"
-msgstr "Fehler beim Erzeugen des /@l @d (%s): %m\n"
+msgstr "Fehler beim Erzeugen des Verzeichnisses /@l (%s): %m\n"
#. @-expanded: root inode is not a directory; aborting.\n
#: e2fsck/problem.c:1475
msgid "@r is not a @d; aborting.\n"
-msgstr "@r ist kein @d; breche ab.\n"
+msgstr "die Wurzelinode ist kein @d; Abbruch.\n"
#. @-expanded: Cannot proceed without a root inode.\n
#: e2fsck/problem.c:1480
msgid "Cannot proceed without a @r.\n"
-msgstr "Kann ohne @r nicht fortsetzen.\n"
+msgstr "Ohne Wurzelinode ist weiteres Arbeiten nicht möglich.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
#: e2fsck/problem.c:1490
#: e2fsck/problem.c:1534
#, c-format
msgid "@u @z @i %i. "
-msgstr "@I @o @i %i in @S. "
+msgstr "@ue @I %i @z. "
#. @-expanded: unattached inode %i\n
#: e2fsck/problem.c:1539
#, c-format
msgid "@u @i %i\n"
-msgstr "@u @i %i\n"
+msgstr "@ue @i %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
#: e2fsck/problem.c:1544
msgid "@i %i ref count is %Il, @s %N. "
-msgstr "@i %i Referenzzähler ist %Il, @s %N. "
+msgstr "Der Referenzzähler von @i %i ist %Il, @s aber %N sein. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
msgstr ""
"WARNUNG: PROGRAMMIERFEHLER IN E2FSCK!\n"
"\tODER EIN TROTTEL (SIE) PRÜFT EIN EINGEHÄNGTES (AKTIVES) DATEISYSTEM.\n"
-"@i_link_info[%i] ist %N, @i.i_links_count ist %Il. Sie sollten identisch "
-"sein!\n"
+"@i_link_info[%i] ist %N, @i.i_links_count ist %Il. Sie sollten identisch sein!\n"
#. @-expanded: Pass 5: Checking group summary information\n
#: e2fsck/problem.c:1558
msgid "Pass 5: Checking @g summary information\n"
-msgstr "Durchgang 5: Überprüfe @g Zusammenfassung\n"
+msgstr "Durchgang 5: Überprüfe die zusammengefasste Gruppeninformation\n"
#. @-expanded: Padding at end of inode bitmap is not set.
#: e2fsck/problem.c:1563
#. @-expanded: block bitmap differences:
#: e2fsck/problem.c:1573
msgid "@b @B differences: "
-msgstr "@b @B differieren: "
+msgstr "Unterschiede in der @b-@B: "
#. @-expanded: inode bitmap differences:
#: e2fsck/problem.c:1593
msgid "@i @B differences: "
-msgstr "@i @B differieren: "
+msgstr "Unterschiede in der @i-@B: "
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1613
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1618
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Die Anzahl Verzeichnisse ist falsch für @g #%g (%i, gezählt=%j).\n"
+msgstr "Die Anzahl der Verzeichnisse ist falsch für @g #%g (%i, gezählt=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
#: e2fsck/problem.c:1623
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"PROGRAMMIERFEHLER: @f (#%N) @B Endpunkte (%b, %c) passen nicht zu den "
-"berechneten @B Endpunkten (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "PROGRAMMIERFEHLER: Dateisystem (#%N) @B-Endpunkte (%b, %c) passen nicht mit den berechneten @B-Endpunkten (%i, %j) überein\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "Interner Fehler: fudging end of bitmap (%N)\n"
+msgstr "Interner Fehler: das Ende der Bitmap (%N) wird erraten\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
#: e2fsck/problem.c:1649
#: e2fsck/problem.c:1654
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
-msgstr "Fehler beim hineinkopieren von @b @B: %m\n"
+msgstr "Fehler beim Hineinkopieren der Ersatz-Blockbitmap: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
#: e2fsck/problem.c:1679
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr ""
-"Blöcke von @g %g sind in Beutzung obwohl @g als BLOCK_UNINIT markiert ist\n"
+msgstr "Blöcke von @g %g sind in Beutzung, obwohl @g als BLOCK_UNINIT markiert ist\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
#: e2fsck/problem.c:1684
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr ""
-"@g %g @i(s) sind in Benutzung obwohl @g als INODE_UNINIT markiert ist\n"
+msgstr "Die @isw der @g %g sind in Benutzung, obwohl @g als INODE_UNINIT markiert ist\n"
#. @-expanded: Recreate journal
#: e2fsck/problem.c:1691
msgid "Recreate @j"
-msgstr "@j zurücksetzen"
+msgstr "@j wird wiederhergestellt"
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Quota-Info für Typ %N wird aktualisiert"
#: e2fsck/problem.c:1815
#, c-format
#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
-msgstr "Größe des Inode=%d\n"
+msgstr "Größe der Inode=%d\n"
#: e2fsck/scantest.c:119
msgid "while starting inode scan"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
" -l bad_blocks_file zur Liste der defekten Blöcke hinzufügen\n"
" -L bad_blocks_file Liste der defekten Blöcke definieren\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u Dateien (%0d.%d%% nicht zusammenhängend), %llu/%llu Blöcke\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u Inode ist in Benutzung (%2.2f%%)\n"
+"%12u Inode ist in Benutzung (%2.2f%% von %u)\n"
msgstr[1] ""
"\n"
-"%u Inodes sind in Benutzung (%2.2f%%)\n"
+"%12u Inodes sind in Benutzung (%2.2f%% von %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u nicht zusammenhängende Datei (%0d.%d%%)\n"
-msgstr[1] "%8u nicht zusammenhängende Dateien (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u nicht zusammenhängende Datei (%0d.%d%%)\n"
+msgstr[1] "%12u nicht zusammenhängende Dateien (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u nicht zusammenhängendes Verzeichnis (%0d.%d%%)\n"
-msgstr[1] "%8u nicht zusammenhängende Verzeichnisse (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u nicht zusammenhängendes Verzeichnis (%0d.%d%%)\n"
+msgstr[1] "%12u nicht zusammenhängende Verzeichnisse (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
msgstr " # von Inodes mit ind/dind/tind Blöcken: %u/%u/%u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Erweiterungstiefe Histogramm: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogramm der Tiefe von Erweiterungen: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu Block wird benutzt (%2.2f%%)\n"
-msgstr[1] "%8llu Blöcke werden benutzt (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu Block wird benutzt (%2.2f%% von %llu)\n"
+msgstr[1] "%12llu Blöcke werden benutzt (%2.2f%% von %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%u ungültiger Block\n"
-msgstr[1] "%u ungültige Blöcke\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u ungültiger Block\n"
+msgstr[1] "%12u ungültige Blöcke\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u große Datei\n"
-msgstr[1] "%8u große Dateien\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u große Datei\n"
+msgstr[1] "%12u große Dateien\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u reguläre Datei\n"
+"%12u reguläre Datei\n"
msgstr[1] ""
"\n"
-"%8u reguläre Dateien\n"
+"%12u reguläre Dateien\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u Verzeichnis\n"
-msgstr[1] "%8u Verzeichnisse\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u Verzeichnis\n"
+msgstr[1] "%12u Verzeichnisse\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u zeichenorientierte Gerätedatei\n"
-msgstr[1] "%8u zeichenorientierte Gerätedateien\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u zeichenorientierte Gerätedatei\n"
+msgstr[1] "%12u zeichenorientierte Gerätedateien\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u Blockgerätedatei\n"
-msgstr[1] "%8u Blockgerätedateien\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u Blockgerätedatei\n"
+msgstr[1] "%12u Blockgerätedateien\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u Fifo\n"
-msgstr[1] "%8u Fifos\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u Fifo\n"
+msgstr[1] "%12u Fifos\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u Verknüpfung\n"
-msgstr[1] "%8u Verknüpfungen\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u Verknüpfung\n"
+msgstr[1] "%12u Verknüpfungen\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolische Verknüpfung"
-msgstr[1] "%8u symbolische Verknüpfungen"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolische Verknüpfung"
+msgstr[1] "%12u symbolische Verknüpfungen"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u schnelle symbolische Verknüpfung)\n"
msgstr[1] " (%u schnelle symbolische Verknüpfungen)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u Socket\n"
-msgstr[1] "%8u Sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u Socket\n"
+msgstr[1] "%12u Sockets\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u Datei\n"
-msgstr[1] "%8u Dateien\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u Datei\n"
+msgstr[1] "%12u Dateien\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "bei der Prüfung, ob %s eingehängt ist."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Warnung! %s ist eingehängt.\n"
+msgstr "Warnung! %s ist %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s ist %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Fortsetzung nicht möglich, breche ab.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
msgstr ""
"\n"
"\n"
-"WARNUNG!!! Das Dateisystem ist eingehängt, Wenn Sie fortfahren, "
-"***WERDEN***\n"
+"WARNUNG!!! Das Dateisystem ist eingehängt, Wenn Sie fortfahren, ***WERDEN***\n"
"Sie ***SCHWERWIEGENDE*** Schäden am Dateisystem verursachen.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Wirklich fortfahren"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "Prüfung abgebrochen.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " enthält ein fehlerhaftes Dateisystem"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " wurde nicht ordnungsgemäß ausgehängt"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
msgstr "Eigenschaften des primären Superblocks unterscheiden sich vom Backup"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " wurde %u mal ohne Überprüfung eingehängt"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
-msgstr ""
-" hat einen in der Zukunft liegenden Zeitpunkt der letzten Püfung des "
-"Dateisystems"
+msgstr " hat einen in der Zukunft liegenden Zeitpunkt der letzten Püfung des Dateisystems"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " wurde %u Tage ohne Überprüfung genutzt"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", Prüfung erzwungen.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: sauber, %u/%u Dateien, %llu/%llu Blöcke"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (Prüfung nach nächstem Einhängen)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (Prüfung nach nächstem Einhängen)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (Prüfung nach %ld Einhängevorgängen)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "Fehler: Kann /dev/null (%s) nicht öffnen\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Invalid EA version.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Unbekannte erweiterte Option: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"Syntaxfehler in der Konfigurationsdatei von e2fsck (%s, Zeile %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fehler bei Überprüfung des Datei-Deskriptors %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "Ungültiger „completion information“-Datei-Deskriptor"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Nur eine der Optionen -p/-a, -n oder -y darf angegeben werden."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "Die -t Option wird von dieser e2fsck-Version nicht unterstützt.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Nicht möglich „%s“ aufzulösen"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
msgstr "Die Optionen -n und -D schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
msgstr "Die Optionen -n und -c schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
msgstr "Die Optionen -n und -l/-L schliessen sich gegenseitig aus."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr ""
-"Die -c und -l/-L Optionen dürfen nicht gleichzeitig verwendet werden.\n"
+msgstr "Die -c und -l/-L Optionen dürfen nicht gleichzeitig verwendet werden.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr "2FSCK_JBD_DEBUG \"%s\" ist keine Ganzzahl\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"Ungültiges nicht-numerisches Argument für -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
msgstr ""
"MMP Intervall ist %u Sekunden und die gesammte Wartezeit ist %u Sekunden.\n"
"Bitte warten...\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "beim Prüfen des MMP-Blocks"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
"starten Sie bitte:\n"
"„tune2fs -f -E clear_mmp {device}“\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fehler: ext2fs-Bibliotheks-Version ist zu alt!\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "bei der Programminitialisierung"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tBenutze %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
msgstr "Benötige ein Terminal für interaktive Reparaturen"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s versuche es mit Backup-Blöcken...\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Superblock ungültig"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Gruppen-Deskriptoren scheinen defekt zu sein..."
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s: %s beim Benutzen der Backup-Blöcke"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: es wird zum originalen Superblock zurück gekehrt\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"von e2fsck (oder der Dateisystem-Superblock ist defekt).\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Könnte es eine Partion der Länge Null sein?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Sie benötigen %s- oder root-Rechte für das Dateisystem.\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
-msgstr ""
-"Möglicherweise ist die Partition nicht vorhanden oder eine Swap-Partition?\n"
+msgstr "Möglicherweise ist die Partition nicht vorhanden oder eine Swap-Partition?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Ist das Dateisystem eingehängt or exklusiv von einem anderen Programm\n"
"\n"
"geöffnet worden?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Ist das Gerät möglicherweise nicht vorhanden?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
"Laufwerk ist schreibgeschützt, nutzen Sie die -n Option\n"
"um es im Nur-Lesen-Modus zu prüfen.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
msgstr "Neuere Version von e2fsck benötigt!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "während der Prüfung des ext3-Journals für %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
-msgstr ""
-"Warnung: Überspringe Journal-Wiederherstellung, da das Dateisystem im Nur-"
-"Lesen-Modus ist.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+msgstr "Warnung: Überspringe Journal-Wiederherstellung, da das Dateisystem im Nur-Lesen-Modus ist.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "Superblock-Flags konntan auf %s nicht gesetzt werden\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "bei der Wiederherstellung des ext3-Journals von %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s besitzt nicht unterstützte Eigenschaft(en):"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s: Warnung: Die Kompressionsunterstützung ist experimentell.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"%s: e2fsck wurde ohne Unterstützung für HTREE kompiliert,\n"
"\taber das Dateisystem %s besitzt HTREE Verzeichnisse.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s: %s beim Lesen des Bad-Block-Inodes\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Das verheißt nichts gutes, aber wir versuchen es trotzdem ..\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Erstelle Journal (%d Blöcke): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr " Erledigt.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
"\n"
"*** Journal wurde wiederhergestellt - Dateisystem ist nun wieder ext3 ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Beginne e2fsck neu ...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "beim Rücksetzen des Kontexts"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck abgebrochen.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "abgebrochen"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** DATEISYSTEM WURDE VERÄNDERT *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** LINUX MUSS NEU GESTARTET WERDEN *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s: ********** WARNUNG: Noch Fehler im Dateisystem **********\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
msgstr "beim Setzen der Blockgruppen-Prüfsummeninfo"
#: e2fsck/util.c:302
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr ""
-"während des wiederholten Versuches, Block- und Inode-Bitmaps für %s zu "
-"schreiben."
+msgstr "während des wiederholten Versuches, Block- und Inode-Bitmaps für %s zu schreiben."
#: e2fsck/util.c:314
#, c-format
msgstr "beim reservieren eines Puffers zum Nullen"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"UNERWARTETE INKONSISTENZ: das Dateisystem wird modifiziert während fsck "
-"läuft.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "UNERWARTETE INKONSISTENZ: das Dateisystem wird modifiziert während fsck läuft.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
"Aufruf: %s [-b Blockgröße] [-i Eingabedatei] [-o Ausgabedatei] [-svwnf]\n"
-" [-c Blöcke_auf_einmal] [-d "
-"Verzögerungsfaktor_zwischen_Lesedurchgängen]\n"
+" [-c Blöcke_auf_einmal] [-d Verzögerungsfaktor_zwischen_Lesedurchgängen]\n"
" [-e maximale_Bad_Blocks] [-p Anzahl_Durchgänge]\n"
" [-t Testmuster [-t Testmuster [...]]]\n"
" Gerät [letzter_Block [Startblock]]\n"
#: misc/badblocks.c:771
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr ""
-"Suche nach defekten Blöcken im zerstörungsfreien Lesen+Schreiben-Modus\n"
+msgstr "Suche nach defekten Blöcken im zerstörungsfreien Lesen+Schreiben-Modus\n"
#: misc/badblocks.c:777
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr ""
-"Suche nach defekten Blöcken (zerstörungsfreier Lesen+Schreiben-Modus)\n"
+msgstr "Suche nach defekten Blöcken (zerstörungsfreier Lesen+Schreiben-Modus)\n"
#: misc/badblocks.c:784
msgid ""
#: misc/badblocks.c:990
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr ""
-"Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
+msgstr "Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
#: misc/badblocks.c:995
msgid "it's not safe to run badblocks!\n"
#: misc/badblocks.c:1003
msgid "badblocks forced anyway.\n"
-msgstr ""
-"Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
+msgstr "Badblocks wird trotzdem erzwungen. Hoffentlich ist /etc/mtab nicht korrekt.\n"
#: misc/badblocks.c:1023
#, c-format
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
-msgstr ""
-"Größe des Gerätes ist nicht feststellbar. Sie müssen sie manuell angeben.\n"
+msgstr "Größe des Gerätes ist nicht feststellbar. Sie müssen sie manuell angeben.\n"
#: misc/badblocks.c:1189
msgid "while trying to determine device size"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Aufruf: %s [-RVf] [-+=AacDdeijsSu] [-v Version] Dateien...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Aufruf: %s [-RVf] [-+=AaCcDdeijsSu] [-v Version] Dateien...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "falsche Version - %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "beim Auslesen des Status von %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "beim Lesens der Flags in %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr ""
"Das Zurücksetzen des Kennzeichens für „Erweiterung“ wird auf %s\n"
"\tnicht unterstützt"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Flags von %s wie folgt gesetzt: "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "beim Setzen der Flags in %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version von %s gesetzt auf %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "beim Setzen der Version in %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Konnte Pfad-Variable in chattr_dir_proc nicht reservieren"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
msgstr "= ist inkompatibel mit - und +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
msgstr "Benutze „-v“, =, - oder +\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr ""
-"Aufruf: %s [-bfhixV] [-o superblock=<Nummer>] [-o blocksize=<Nummer>] Gerät\n"
+msgstr "Aufruf: %s [-bfhixV] [-o superblock=<Nummer>] [-o blocksize=<Nummer>] Gerät\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
"Journal-Start: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Jounalnutzer: %s\n"
+msgstr "Jounal-Fehlernummer: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
msgid "Journal users: %s\n"
msgstr "Jounalnutzer: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Speicher zum Parsen der Optionen konnte nicht reserviert werden!\n"
"\tblocksize=<Blockgrösse>\n"
"\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tBenutze %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
#: misc/e2image.c:1341
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr ""
-"beim Versuch, das Qcow2-Image (%s) in ein rohes Image (%s) zu konvertieren"
+msgstr "beim Versuch, das Qcow2-Image (%s) in ein rohes Image (%s) zu konvertieren"
#: misc/e2label.c:58
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: Kein ext2 Dateisystem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Warnung: Name zu lang, kürze ihn.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: Fehler beim Schreiben des Superblocks\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Aufruf: e2label Gerät [neuer_Name]\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
msgstr ""
"%s: überspringe die ungültige Zeile in /etc/fstab: bind mount mit\n"
" Durchgangsnummer für fsck, die nicht Null ist\n"
msgstr "--warten-- (Durchgang %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Aufruf: fsck [-AMNPRTV] [ -C [ fd ] ] [-t Datesystemtyp] [FS-Optionen] "
-"[Dateisystem...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Aufruf: fsck [-AMNPRTV] [ -C [ fd ] ] [-t Datesystemtyp] [FS-Optionen] [Dateisystem...]\n"
#: misc/fsck.c:1120
#, c-format
msgid "While reading version on %s"
msgstr "Beim Lesen der Version von %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
"Aufruf: %s [-c|-l Dateiname] [-b Blockgröße] [-C Clustergröße]\n"
"\t[-i Bytes-pro-Inode] [-I Inodegrösse] [-J Journal-Optionen]\n"
"\t[-t Dateisystemtyp] [-T Verwendungs-Typ ] [-U UUID] [-jnqvFKSV]\n"
"\tGerät [Block-Anzahl]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Es wird ausgeführt: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
msgstr "während des Versuchs, „%s“ auszuführen"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
msgstr "beim Auswerten der „Bad Block“-Liste vom Programm"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Block %d im primären Superblock/Gruppendeskriptorbereich defekt.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Die Blöcke %u bis einschließlich %u müssen in Ordung sein, um ein\n"
"\tDateisystem zu erstellen.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Abbruch...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Warnung: die Sicherung des Superblock bzw. Gruppendeskriptors in Block %u "
-"enthält\n"
+"Warnung: die Sicherung des Superblock bzw. Gruppendeskriptors in Block %u enthält\n"
"\tdefekte Blöcke.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "beim Markieren von defekten Blöcken als „belegt“"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Inode-Tabellen werden geschrieben: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"%d Blöcke konnten nicht in die Inoden-Tabellen beginnend bei %llu "
-"geschrieben werden: %s\n"
+"%d Blöcke konnten nicht in die Inoden-Tabellen beginnend bei %llu geschrieben werden: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "erledigt \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "beim Erstellen des Wurzelverzeichnisses"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "beim Lesen des Root-Inode"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "beim Setzen des Root-Inode-Eigentümers"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "beim Erstellen von /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "beim Suchen von /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "beim Expandieren von /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "beim Setzen des „Bad Block“-Inodes"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Speicher voll beim Löschen der Sektoren %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Warnung: konnte Block %s nicht lesen\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Warnung: konnte Sektor %d: %s nicht löschen\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "beim Initialisieren des Journal-Superblocks"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Überschreibe Journal-Device mit Nullen: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "beim Überschreiben des Journal-Device mit Nullen (Block %llu, Nr. %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "beim Schreiben des Journal-Superblocks"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"Warnung: %llu Blöcke unbenutzt.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Dateisystem-Label=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "OS-Typ: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blockgröße=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Clustergröße=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentgröße=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Stride=%u Blöcke, Stripebreite=%u Blöcke\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u Inodes, %llu Blöcke\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu Blöcke (%2.2f%%) reserviert für den Superuser\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "Erster Datenblock=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximale Dateisystem-Blöcke=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u Blockgruppen\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u Blockgruppe\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u Blöcke pro Gruppe, %u Cluster pro Gruppe\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u Blöcke pro Gruppe, %u Fragmente pro Gruppe\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u Inodes pro Gruppe\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Superblock-Sicherungskopien gespeichert in den Blöcken: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Ungültiges mmp_update_interval: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ungültiger \"stride\"-Parameter: %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ungültiger Stripebreite-Parameter: %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Ungültiger \"resize\"-Parameter: %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"Das Maximum der Vergrösserung muss oberhalb als der Dateisystem-Grösse "
-"liegen.\n"
+msgstr "Das Maximum der Vergrösserung muss oberhalb als der Dateisystem-Grösse liegen.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Online-Grössenänderungen werden bei Revison 0 Dateisystemen nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Ungültiger Quotatyp-Parameter: %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\tquotatype=<usr ODER grp>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"\tStride %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"Syntax Fehler in der Konfigurationsdatei von mkefs (%s, Zeile %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ungültige Dateisystem-Option gesetzt: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ungültige Einhänge-Option gesetzt: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"\n"
"Ihre mke2fs.conf Datei enhält keine Definitiion des %s Dateisystems.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Sie müssen wahrscheinlich eine aktualisierte mke2fs.conf Datei "
-"installieren.\n"
+"Sie müssen wahrscheinlich eine aktualisierte mke2fs.conf Datei installieren.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Breche ab...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Warnung: Der fs_type %s ist in mke2fs.conf nicht definiert\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Kann keinen Speicher für den neuen PATH reservieren\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Das Profil konnte nicht erfolgreich initiiert werden (Fehler: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "bad block Größe - %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Warnung: Blockgröße %d ist auf den meisten Systemen unbrauchbar.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "unzulässige Clustergröße - %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "unzulässige Angabe für Blöcke pro Gruppe"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "Anzahl der Blöcke pro Gruppe muss ein Vielfaches von 8 sein"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Illegale Zahl für flex_bg Größe"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "flex_bg Größe muss eine Zweierpotenz sein"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "Unzulässiges Inode-Verhältnis %s (Min %d/Max %d"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Warnung: die Option -K ist veraltet und sollte nicht mehr verwendet werden. "
-"Verwenden Sie bitte stattdessen die erweiterte Option „-E nodiscard“\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Warnung: die Option -K ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie bitte stattdessen die erweiterte Option „-E nodiscard“\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr "in malloc for bad_blocks_filename"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "Unzulässige \"Reservierte Blöcke\"-Prozentangabe - %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "Unzulässige Inode-Größe - %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "Die Option -t darf nur eimal angegeben werden"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "Die Option -T darf nur eimal angegeben werden"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "beim Versuch, das Journal-Device %s zu öffnen\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr "Journal-Device Blockgröße (%d) kleiner als Minimum-Blockgröße %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Verwende die Blockgrösse des Geräts: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "ungültige Blöcke „%s“ auf Gerät „%s“"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "Dateisystem"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
msgstr "beim Bestimmen der Dateisystemgröße"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Konnte die Gerätegröße nicht ermitteln. Geben\n"
"Sie die Größe des Dateisystems an\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\tin Gebrauch und gesperrt ist. Sie könnten gezwungen sein, neu zu\n"
"\tbooten, um die Partitionstabelle neu einzulesen.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "Dateisystem ist größer als augenscheinlich das Gerät selbst."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Analyse der Liste von Dateisystemen war nicht möglich\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%1$s: Die Größe von Gerät %3$s (0x%2$llx) lässt sich bei Verwendung einer\n"
"\tBlockgröße von %4$d nicht mit 32 Bits darstellen.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types für mke2fs.conf Lösung: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Dateisystem-Eigenschaften werden für Dateisysteme der Revision 0 nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Verteilte Superblöcke werden für Dateisysteme der Revision 0 nicht\n"
"\tunterstützt\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Journale werden für Dateisysteme der Revision 0 nicht unterstützt\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "Unzulässige \"Reservierte Blöcke\"-Prozentangabe - %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"Die Eigenschaften resize_inode und meta_bg sind nicht kompatibel.\n"
"Sie können nicht gleichzeitig aktiviert werden.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
msgstr "beim Ermitteln der Hardware-Sektorgröße"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "beim Ermitteln der physischen Sektorgröße"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
msgstr "beim Setzen der Blockgröße; zu klein für das Gerät\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Warnung: die vorgegebene Blockgröße %d ist kleiner als die physische "
-"Sektorgröße %d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Warnung: die vorgegebene Blockgröße %d ist kleiner als die physische Sektorgröße %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "Warnung: Die Geometrie für Gerät %s konnte nicht erfragt werden\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Die Ausrichtung von %s ist um %lu Bytes verschoben.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
"Das könnte zu sehr schlechter Leistung führen. Eine (Neu-)Partionierung\n"
" wird empfohlen.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "%d-Byte Blöcke zu groß für das System (max %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Warnung: %d-byte Blöcke sind zu groß für das System (max %d), fahre dennoch "
-"fort\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr "Warnung: %d-byte Blöcke sind zu groß für das System (max %d), fahre dennoch fort\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"Für Online-Grössenänderungen reservierte Blöcke werden auf Dateisystemen\n"
"\tohne Unterstützung für Lückenkompression nicht unterstützt"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
-msgstr "Anzahl der Blöcke pro Gruppe ausserhaalb des gültigen Bereichs"
+msgstr "Anzahl der Blöcke pro Gruppe ausserhalb des gültigen Bereichs"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr ""
-"Eigenschaft flex_bg wurde nicht aktiviert, daher darf flex_bg Grösse nicht "
-"angegeben werden"
+msgstr "Eigenschaft flex_bg wurde nicht aktiviert, daher darf flex_bg Grösse nicht angegeben werden"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ungültige Inode-Größe %d (min %d/max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "zu viele Inodes (%llu), Inode-Verhältnis erhöhen?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "zu viele Inodes (%llu), sie müssen weniger als 2^32 Inodes angeben"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tDateisystem mit %llu Blöcken, geben Sie bitte entweder ein höheres\n"
"\tInodeverhältnis (-i) oder eine niedrigere Anzahl an Inodes (-N) an.\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Überschreibe das bestehende Dateisystem; dies kann rückgängig gemacht "
-"werden\n"
+"Überschreibe das bestehende Dateisystem; dies kann rückgängig gemacht werden\n"
"durch den Befehl:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
msgstr "beim Erstellen der Undodatei\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Blöcke des Gerätes werden verworfen: "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "nicht erfolgreich - "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "beim Erstellen des Superblocks"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"Verwerfen war erfolgreich und wird Nullen zurückliefern - das Löschen der "
-"Inode-Tabelle wird übersprungen \n"
+msgstr "Verwerfen war erfolgreich und wird Nullen zurückliefern - das Löschen der Inode-Tabelle wird übersprungen \n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "unbekanntes OS - %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Platz für Gruppentabellen wird angefordert: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "beim Zuordnen von Dateisystemtabellen"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\tbeim Konvertieren der Subcluster-Bitmap"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "beim Nullen von Block %llu am Ende des Dateisystems"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "beim Lesen des Bad-Block-Inodes"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "Journal"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Erstelle Journal auf Gerät %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
"\tbeim Erstellen des Journals auf Gerät %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "erledigt\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "Die Erzeugung eines Journals wird im Nur-Super Modus übersprungen\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Erstelle Journal (%u Blöcke): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
"\tbeim Erstellen des Journals"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"\n"
"Fehler beim Aktivieren des Schutzes vor mehrfachem Einhängen."
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr ""
-"Der Schutz vor mehrfachem Einhängen wurde mit einem Intervall von %d "
-"Sekunden aktiviert\n"
+msgstr "Der Schutz vor mehrfachem Einhängen wurde mit einem Intervall von %d Sekunden aktiviert\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Schreibe Superblöcke und Dateisystem-Accountinginformationen: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Warnung: Probleme beim Schreiben der Superblöcke."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
msgstr ""
"Aufruf: %s [-c max-Anzahl-Einhängen] [-e Fehler-Verhalten] [-g Gruppe]\n"
"\t[-i Intervall[d|m|w]] [-j] [-J Journal-Optionen] [-l]\n"
-"\t[-m reservierte_Blöcke_Prozent] [-o [^]Einhäng_Optionen[,...]] [-p "
-"mmp_update_intervall]\n"
+"\t[-m reservierte_Blöcke_Prozent] [-o [^]Einhäng_Optionen[,...]] [-p mmp_update_intervall]\n"
"\t[-r Anzahl_reservierte_Blöcke] [-u Benutzer] [-C Anzahl_Einhängen]\n"
"\t[-L Volume_Label] [-M letztes_eingehängtes_Verzeichnis]\n"
"\t[-O [^]Eigenschaft[,...]] [-E erweiterte-Option[,...]]\n"
#: misc/tune2fs.c:396
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr ""
-"Das Zurücksetzen von Dateisystem-Eigenschaft „%s“ wird nicht unterstützt.\n"
+msgstr "Das Zurücksetzen von Dateisystem-Eigenschaft „%s“ wird nicht unterstützt.\n"
#: misc/tune2fs.c:402
#, c-format
#: misc/tune2fs.c:482
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr ""
-"Die magische Zahl im MMP-Block passt nicht. Erwartet: %x, tatsächlich: %x\n"
+msgstr "Die magische Zahl im MMP-Block passt nicht. Erwartet: %x, tatsächlich: %x\n"
#: misc/tune2fs.c:487
msgid "while reading MMP block."
"\n"
"\tbeim Erstellen der Journaldatei"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr ""
-"Speicher zum Parsen der Quota-Optionen konnte nicht reserviert werden!\n"
+msgstr "Speicher zum Parsen der Quota-Optionen konnte nicht reserviert werden!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"Es wurden ungültige Quota-Optionen angegeben.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"Die folgenden Quotaoptionen sind verfügbar (durch Komma getrennt angeben):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Konnte Datum/Zeit nicht parsen: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "Ungültiger Mounts-Zähler - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "ungültiges Fehler-Verhalten - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "ungültige(r) GID oder Gruppenname - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "ungültiges Intervall - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "ungültiges Reservierte-Blöcke-Verhältnis - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
msgstr "-o darf nur eimal angegeben werden"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
msgstr "-O darf nur eimal angegeben werden"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "ungültige Anzahl von reservierten Blöcken - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "ungültige(r) UID/Benutzername - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "Unzulässige Inodegröße - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Inodegrösse muss eine Zweierpotenz sein- %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval ist zu groß: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunde\n"
-msgstr[1] ""
-"Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu "
-"Sekunden\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunde\n"
+msgstr[1] "Setze das Intervall für den Schutz vor mehrfachem Einhängen auf %lu Sekunden\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ungültiger RAID Stride: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ungültige RAID Stripe-Breite: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ungültiger Hashalgorithmus: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Der standard Hashalgorithmus wird auf %s (%d) gesetzt\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
msgstr "Die Inode-Bitmap konnte nicht gelesen werden\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Die Block-Bitmaps konnten nicht gelesen werden\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "zu verschiebende Blöcke"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr ""
-"Beim Vergrössern der Inodes konnte keine Block-Bitmap angelegt werden\n"
+msgstr "Beim Vergrössern der Inodes konnte keine Block-Bitmap angelegt werden\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Der Platz reicht nicht aus um die Inodegrösse zu erhöhen \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
-msgstr ""
-"Beim Vergrössern der Inodes konnten die Blöcke nicht verschoben werden \n"
+msgstr "Beim Vergrössern der Inodes konnten die Blöcke nicht verschoben werden \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
"Fehler beim Verändern der Inodegrösse.\n"
"Starten Sie e2undo um die Änderungen am Dateisystem rückgängig zu machen. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Kann keinen Speicher für den tdb-Dateinamen reservieren\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "beim Versuch, %s zu löschen"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"Kommando zu reparieren:\n"
"„e2fsck -f %s“\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Die Inodegrösse ist bereits %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "Das Schrumpfen der Inodegrösse wird nicht unterstützt\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Die maximale Anzahl von Einhängungen wird auf %d gesetzt\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Die derzeitige Anzahl von Einhängungen wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Das Fehler-Verhalten wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Die GID für reservierte Blöcke wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "Das Intervall zwischen den Prüfungen ist zu groß (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Das Intervall zwischen zwei Checks wird auf %lu Sekunden gesetzt\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
-msgstr ""
-"Der Prozentsatz reservierter Böcke wird auf %g%% (%llu Blöcke) gesetzt\n"
+msgstr "Der Prozentsatz reservierter Böcke wird auf %g%% (%llu Blöcke) gesetzt\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "Die Anzahl der reservierten Blöcke ist zu gross (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Die Anzahl der reservierten Blöcke wird auf %llu gesetzt\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Das Dateisystem hat bereits verteilte Superblöcke.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"Kennzeichen für verteilten Superblock gesetzt. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"Das Zurücksetzen des Kennzeichens für „verteilter Superblock“ wird nicht\n"
"\tunterstützt.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Die Zeit des letzten Dateisystemchecks wird auf %s gesetzt\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Die UID für reservierte Blöcke wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr ""
"Fehler bei der Verwendung von clear_mmp. Es muss zusammen mit -f\n"
"verwendet werden\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
-"Quotas können nur aktiviert bzw. deaktiviert werden, wenn das Dateisystem "
-"nicht\n"
+"Quotas können nur aktiviert bzw. deaktiviert werden, wenn das Dateisystem nicht\n"
"eingehängt ist\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Ungültiges UUID Format\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"Die Grösse der Inodes kann nur geändert werden, wenn das Dateisystem\n"
"nicht eingehängt ist.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
"Das Ändern der Inodegrösse wird auf Dateisystemen mit aktivierter flex_bg\n"
"Eigenschaft nicht unterstützt.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Die Inode-Größe wird auf %lu gesetzt\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "Die Inode-Größe konnte nicht geändert werdeb\n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Die Stride-Größe wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Die Stripe-Breite wird auf %d gesetzt\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Als erweiterte Einhäng-Optionen werden in Zukunft „%s“ verwendet\n"
msgid "while getting stat information for %s"
msgstr "beim Ermitteln der Statusinformation für %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Die Kombination der Eigenschaften flex_bg und\n"
-"t!resize_inode wird von resize2fs nicht unterestützt.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"Bitte zuerst „e2fsck -f %s“ laufen lassen.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Geschätzte minimale Grösse des Dateisystems: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Unzulässige neue Größe: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Die neue Größe kann nicht mehr mit 32 Bits dargestellt werden\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Die neue Größe ist kleiner als das Minimum (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "Ungültige Stride-Länge"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"Sie hatten aber %llu Blöcke vorgegeben.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"Das Dateisystem ist schon %llu Blöcke groß. Nichts zu tun!\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
+#, c-format
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
+msgstr ""
+"%s: Die Kombination der Eigenschaften flex_bg und\n"
+"t!resize_inode wird von resize2fs nicht unterestützt.\n"
+
+#: resize/main.c:463
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
"Die Grösse des Dateisystems auf %s wird auf %llu (%dk) Blöcke geändert.\n"
"\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "beim Versuch, die Größe von %s zu ändern"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"Bitte führen Sie „e2fsck -fy %s“ aus, um das Dateisystem\n"
"nach der abgebrochenen Grössenänderung zu reparieren.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"Das Dateisystem auf %s ist nun %llu Blöcke groß.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "beim Versuch, %s zu kürzen"
#: resize/online.c:40
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr ""
-"Das Dateisystem auf %s ist auf %s eingehängt; Online-Grössenveränderung "
-"nötig\n"
+msgstr "Das Dateisystem auf %s ist auf %s eingehängt; Online-Grössenveränderung nötig\n"
#: resize/online.c:44
msgid "On-line shrinking not supported"
msgstr "Die Online-Verkleinerung wird nicht unterstützt"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
msgstr "Das Dateisystem unterstützt keine Online-Grössenveränderung"
-#: resize/online.c:70
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "nicht genug reservierte GDT-Blöcke für die Größenänderung"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Der Kernel lässt eine Veränderung der Größe eines Dateisystems diesen Ausmaßes nicht zu"
+
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "beim Versuch, Einhängpunkt %s zu öffnen"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Zugriff verweigert für die Grössenänderung des Dateisystems"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Beim Überprüfen, ob Online-Vergrösserung unterstützt wird"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr ""
-"Der Kernel lässt eine Veränderung der Größe eines Dateisystems diesen "
-"Ausmaßes nicht zu"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "Der Kernel unterstützt die Online-Vergrösserung nicht"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr ""
-"Eine Online-Grössenänderung von %s auf %llu (%dk) Blöcke wird durchgeführt.\n"
+msgstr "Eine Online-Grössenänderung von %s auf %llu (%dk) Blöcke wird durchgeführt.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Beim Versuch, die letzte Gruppe zu erweitern"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Beim Versuch, Gruppe %d hinzu zu fügen"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"Dateisystem auf %s ist auf %s eingehängt und Online-Grössenänderung wird auf "
-"diesem System nicht unterstützt.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "Dateisystem auf %s ist auf %s eingehängt und Online-Grössenänderung wird auf diesem System nicht unterstützt.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "Die Anzahl der Indoes (%llu) muss unter %u liegen"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "reservierte Blöcke"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "Metadaten-Blöcke"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Das sollte niemals passieren: Die zu verändernde Inode ist defekt!\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "EXT2FS Bibliothek Version 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "EXT2FS Bibliothek Version 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr ""
-"Es wird versucht, auf ein nur zum Lesen geöffnetes Dateisystem zu schreiben"
+msgstr "Es wird versucht, auf ein nur zum Lesen geöffnetes Dateisystem zu schreiben"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
#: lib/ext2fs/ext2_err.c:35
msgid "Corrupt group descriptor: bad block for block bitmap"
-msgstr ""
-"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Block-Bitmap"
+msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Block-Bitmap"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr ""
-"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inode-Bitmap"
+msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inode-Bitmap"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr ""
-"Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inodetabelle"
+msgstr "Beschädigter Gruppendeskriptor: nicht lesbarer Block ür die Inodetabelle"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
#: lib/ext2fs/ext2_err.c:57
msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
-msgstr ""
-"ext2fs_unmark_block_bitmap wurde eine unzulässige Blocknummer übergeben"
+msgstr "ext2fs_unmark_block_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:58
msgid "Illegal block number passed to ext2fs_test_block_bitmap"
#: lib/ext2fs/ext2_err.c:60
msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
-msgstr ""
-"ext2fs_unmark_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
+msgstr "ext2fs_unmark_inode_bitmap wurde eine unzulässige Blocknummer übergeben"
#: lib/ext2fs/ext2_err.c:61
msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr ""
-"Es wurde versucht, das Ende der Blockbitmap über das echte Ende hinaus zu "
-"verschieben"
+msgstr "Es wurde versucht, das Ende der Blockbitmap über das echte Ende hinaus zu verschieben"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr ""
-"Es wurde versucht, das Ende der Inodebitmap über das echte Ende hinaus zu "
-"verschieben"
+msgstr "Es wurde versucht, das Ende der Inodebitmap über das echte Ende hinaus zu verschieben"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr ""
-"ext2fs_mark_generic_bitmap wurde eine unzulässige generische Bitnummer "
-"übergeben"
+msgstr "ext2fs_mark_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr ""
-"ext2fs_unmark_generic_bitmap wurde eine unzulässige generische Bitnummer "
-"übergeben"
+msgstr "ext2fs_unmark_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr ""
-"ext2fs_test_generic_bitmap wurde eine unzulässige generische Bitnummer "
-"übergeben"
+msgstr "ext2fs_test_generic_bitmap wurde eine unzulässige generische Bitnummer übergeben"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr ""
-"E/A Kanal ist beim Suchen während des Lesens oder Schreibens gescheitert"
+msgstr "E/A Kanal ist beim Suchen während des Lesens oder Schreibens gescheitert"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr ""
-"Ein Dateisystem mit der gewünschten Anzahl von Inodes kann nicht erzeugt "
-"werden"
+msgstr "Ein Dateisystem mit der gewünschten Anzahl von Inodes kann nicht erzeugt werden"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
#: lib/ext2fs/ext2_err.c:106
msgid "Tried to set block bmap with missing indirect block"
-msgstr ""
-"Es wurde versucht, eine Block-Bmap mit fehlendem indirektem Block zu setzen"
+msgstr "Es wurde versucht, eine Block-Bmap mit fehlendem indirektem Block zu setzen"
#: lib/ext2fs/ext2_err.c:107
msgid "TDB: Success"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr ""
-"Es wird versucht, ein Blockmapping mittels nur-lesenden Blockiteratoren zu "
-"modifizieren"
+msgstr "Es wird versucht, ein Blockmapping mittels nur-lesenden Blockiteratoren zu modifizieren"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
#: lib/ext2fs/ext2_err.c:144
msgid "Operation not supported for inodes containing extents"
-msgstr ""
-"Die Operation wird für Inodes, die Erweiterungen beinhalten, nicht "
-"unterstützt"
+msgstr "Die Operation wird für Inodes, die Erweiterungen beinhalten, nicht unterstützt"
#: lib/ext2fs/ext2_err.c:145
msgid "Extent length is invalid"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Überprüfung ob das Dateisystem eingehängt ist mangels mtab Datei nicht "
-"möglich"
+msgstr "Überprüfung ob das Dateisystem eingehängt ist mangels mtab Datei nicht möglich"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr ""
-"Das Dateisystem ist für die Verwendung von altertümlichen Bitmaps zu groß"
+msgstr "Das Dateisystem ist für die Verwendung von altertümlichen Bitmaps zu groß"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr ""
-"Es wird versucht, einen Bezug zu einem Knoten hinzu zu fügen, der keine "
-"Sektion ist"
+msgstr "Es wird versucht, einen Bezug zu einem Knoten hinzu zu fügen, der keine Sektion ist"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr ""
-"Iteration über alle Sektionen der obersten Ebene wird nicht unterstützt"
+msgstr "Iteration über alle Sektionen der obersten Ebene wird nicht unterstützt"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
#: e2fsck/prof_err.c:37
msgid "Couldn't open profile file"
-msgstr "Die Prfildatei konnte nicht geöffnet werden"
+msgstr "Die Profildatei konnte nicht geöffnet werden"
#: e2fsck/prof_err.c:38
msgid "Section already exists"
#~ msgstr "%s ist eingehängt. "
#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-#~ msgstr ""
-#~ "Die @b @B von @g %g ist nicht initialisiert aber @i @B wird verwendet.\n"
+#~ msgstr "Die @b @B von @g %g ist nicht initialisiert aber @i @B wird verwendet.\n"
#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-#~ msgstr ""
-#~ " in @i %i sollte EOFBLOCKS_FL nicht gesetzt sein (Größe %Is, lblk %r)\n"
+#~ msgstr " in @i %i sollte EOFBLOCKS_FL nicht gesetzt sein (Größe %Is, lblk %r)\n"
#~ msgid "Couldn't determine journal size"
#~ msgstr "Konnte die Größe des Dateisystems nicht ermitteln"
# E2fsprogs translation template file
# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-# by Theodore Ts'o
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+# 2013 by Theodore Ts'o
# This file is distributed under the same license as the e2fsprogs package.
-# Theodore Ts'o <tytso@mit.edu>, 2012.
+# Theodore Ts'o <tytso@mit.edu>, 2013.
#
#. The strings in e2fsck's problem.c can be very hard to translate,
#. since the strings are expanded in two different ways. First of all,
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42.5\n"
+"Project-Id-Version: e2fsprogs 1.42.8\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-07-29 20:04-0400\n"
+"POT-Creation-Date: 2013-06-16 08:17-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:180
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr ""
msgstr ""
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
+#: e2fsck/unix.c:1332 e2fsck/unix.c:1420 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
-#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1898 resize/main.c:303
+#: misc/dumpe2fs.c:588 misc/e2image.c:1196 misc/e2image.c:1324
+#: misc/e2image.c:1337 misc/mke2fs.c:196 misc/tune2fs.c:1907 resize/main.c:315
#, c-format
msgid "while trying to open %s"
msgstr ""
msgid "while trying popen '%s'"
msgstr ""
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:203
msgid "while reading in list of bad blocks from file"
msgstr ""
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr ""
-#: e2fsck/iscan.c:81 e2fsck/unix.c:963
+#: e2fsck/iscan.c:81 e2fsck/unix.c:961
#, c-format
msgid "while opening %s for flushing"
msgstr ""
-#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:967 resize/main.c:288
#, c-format
msgid "while trying to flush %s"
msgstr ""
-#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1084
+#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1091
msgid "while opening inode scan"
msgstr ""
-#: e2fsck/iscan.c:127 misc/e2image.c:1102
+#: e2fsck/iscan.c:127 misc/e2image.c:1109
msgid "while getting next inode"
msgstr ""
msgid "%u inodes scanned.\n"
msgstr ""
-#: e2fsck/journal.c:512
+#: e2fsck/journal.c:522
msgid "reading journal superblock\n"
msgstr ""
-#: e2fsck/journal.c:569
+#: e2fsck/journal.c:579
#, c-format
msgid "%s: no valid journal superblock found\n"
msgstr ""
-#: e2fsck/journal.c:578
+#: e2fsck/journal.c:588
#, c-format
msgid "%s: journal too short\n"
msgstr ""
-#: e2fsck/journal.c:870
+#: e2fsck/journal.c:880
#, c-format
msgid "%s: recovering journal\n"
msgstr ""
-#: e2fsck/journal.c:872
+#: e2fsck/journal.c:882
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
msgstr ""
-#: e2fsck/journal.c:899
+#: e2fsck/journal.c:909
#, c-format
msgid "while trying to re-open %s"
msgstr ""
msgid "unknown file type with mode 0%o"
msgstr ""
-#: e2fsck/message.c:423
+#: e2fsck/message.c:422
msgid "indirect block"
msgstr ""
-#: e2fsck/message.c:425
+#: e2fsck/message.c:424
msgid "double indirect block"
msgstr ""
-#: e2fsck/message.c:427
+#: e2fsck/message.c:426
msgid "triple indirect block"
msgstr ""
-#: e2fsck/message.c:429
+#: e2fsck/message.c:428
msgid "translator block"
msgstr ""
-#: e2fsck/message.c:431
+#: e2fsck/message.c:430
msgid "block #"
msgstr ""
msgid "multiply claimed inode map"
msgstr ""
-#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:729
+#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:730
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
msgstr ""
-#: e2fsck/pass1b.c:820
+#: e2fsck/pass1b.c:821
msgid "returned from clone_file_block"
msgstr ""
-#: e2fsck/pass1b.c:842
+#: e2fsck/pass1b.c:843
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
msgstr ""
-#: e2fsck/pass1b.c:854
+#: e2fsck/pass1b.c:855
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
msgstr ""
-#: e2fsck/pass1.c:476 e2fsck/pass2.c:782
+#: e2fsck/pass1.c:475 e2fsck/pass2.c:782
msgid "reading directory block"
msgstr ""
-#: e2fsck/pass1.c:599
+#: e2fsck/pass1.c:598
msgid "in-use inode map"
msgstr ""
-#: e2fsck/pass1.c:610
+#: e2fsck/pass1.c:609
msgid "directory inode map"
msgstr ""
-#: e2fsck/pass1.c:620
+#: e2fsck/pass1.c:619
msgid "regular file inode map"
msgstr ""
-#: e2fsck/pass1.c:629
+#: e2fsck/pass1.c:628
msgid "in-use block map"
msgstr ""
-#: e2fsck/pass1.c:696
+#: e2fsck/pass1.c:695
msgid "opening inode scan"
msgstr ""
-#: e2fsck/pass1.c:730
+#: e2fsck/pass1.c:729
msgid "getting next inode from scan"
msgstr ""
-#: e2fsck/pass1.c:1240
+#: e2fsck/pass1.c:1239
msgid "Pass 1"
msgstr ""
-#: e2fsck/pass1.c:1297
+#: e2fsck/pass1.c:1296
#, c-format
msgid "reading indirect blocks of inode %u"
msgstr ""
-#: e2fsck/pass1.c:1347
+#: e2fsck/pass1.c:1346
msgid "bad inode map"
msgstr ""
-#: e2fsck/pass1.c:1370
+#: e2fsck/pass1.c:1369
msgid "inode in bad block map"
msgstr ""
-#: e2fsck/pass1.c:1390
+#: e2fsck/pass1.c:1389
msgid "imagic inode map"
msgstr ""
-#: e2fsck/pass1.c:1417
+#: e2fsck/pass1.c:1416
msgid "multiply claimed block map"
msgstr ""
-#: e2fsck/pass1.c:1518
+#: e2fsck/pass1.c:1527
msgid "ext attr block map"
msgstr ""
-#: e2fsck/pass1.c:2266
+#: e2fsck/pass1.c:2299
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
msgstr ""
-#: e2fsck/pass1.c:2627
+#: e2fsck/pass1.c:2660
msgid "block bitmap"
msgstr ""
-#: e2fsck/pass1.c:2633
+#: e2fsck/pass1.c:2666
msgid "inode bitmap"
msgstr ""
-#: e2fsck/pass1.c:2639
+#: e2fsck/pass1.c:2672
msgid "inode table"
msgstr ""
msgid "inode loop detection bitmap"
msgstr ""
-#: e2fsck/pass4.c:195
+#: e2fsck/pass4.c:196
msgid "Pass 4"
msgstr ""
msgid "Warning: could not write @b %b for %s: %m\n"
msgstr ""
-#: e2fsck/problem.c:625 e2fsck/problem.c:1460
+#: e2fsck/problem.c:625 e2fsck/problem.c:1474
#. @-expanded: error allocating inode bitmap (%N): %m\n
msgid "@A @i @B (%N): %m\n"
msgstr ""
msgstr ""
#: e2fsck/problem.c:953
+#. @-expanded: Interior extent node level %N of inode %i:\n
+#. @-expanded: Logical start %b does not match logical start %c at next level.
+msgid ""
+"Interior @x node level %N of @i %i:\n"
+"Logical start %b does not match logical start %c at next level. "
+msgstr ""
+
+#: e2fsck/problem.c:959
+#. @-expanded: inode %i, end of extent exceeds allowed value\n
+#. @-expanded: \t(logical block %c, physical block %b, len %N)\n
+msgid ""
+"@i %i, end of extent exceeds allowed value\n"
+"\t(logical @b %c, physical @b %b, len %N)\n"
+msgstr ""
+
+#: e2fsck/problem.c:967
#. @-expanded: \n
#. @-expanded: Running additional passes to resolve blocks claimed by more than one inode...\n
#. @-expanded: Pass 1B: Rescanning for multiply-claimed blocks\n
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:959
+#: e2fsck/problem.c:973
#, c-format
#. @-expanded: multiply-claimed block(s) in inode %i:
msgid "@m @b(s) in @i %i:"
msgstr ""
-#: e2fsck/problem.c:974
+#: e2fsck/problem.c:988
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
msgstr ""
-#: e2fsck/problem.c:979
+#: e2fsck/problem.c:993
#, c-format
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
msgid "@A @i @B (@i_dup_map): %m\n"
msgstr ""
-#: e2fsck/problem.c:984
+#: e2fsck/problem.c:998
#, c-format
#. @-expanded: Error while iterating over blocks in inode %i (%s): %m\n
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:989 e2fsck/problem.c:1304
+#: e2fsck/problem.c:1003 e2fsck/problem.c:1318
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:994
+#: e2fsck/problem.c:1008
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:1000
+#: e2fsck/problem.c:1014
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
msgid "Pass 1D: Reconciling @m @bs\n"
msgstr ""
-#: e2fsck/problem.c:1005
+#: e2fsck/problem.c:1019
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
msgid ""
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
-#: e2fsck/problem.c:1011
+#: e2fsck/problem.c:1025
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
msgid "\t%Q (@i #%i, mod time %IM)\n"
msgstr ""
-#: e2fsck/problem.c:1016
+#: e2fsck/problem.c:1030
#. @-expanded: \t<filesystem metadata>\n
msgid "\t<@f metadata>\n"
msgstr ""
-#: e2fsck/problem.c:1021
+#: e2fsck/problem.c:1035
#. @-expanded: (There are %N inodes containing multiply-claimed blocks.)\n
#. @-expanded: \n
msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1026
+#: e2fsck/problem.c:1040
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
#. @-expanded: \n
msgid ""
"\n"
msgstr ""
-#: e2fsck/problem.c:1039
+#: e2fsck/problem.c:1053
#, c-format
msgid "Couldn't clone file: %m\n"
msgstr ""
-#: e2fsck/problem.c:1045
+#: e2fsck/problem.c:1059
#. @-expanded: Pass 2: Checking directory structure\n
msgid "Pass 2: Checking @d structure\n"
msgstr ""
-#: e2fsck/problem.c:1050
+#: e2fsck/problem.c:1064
#, c-format
#. @-expanded: invalid inode number for '.' in directory inode %i.\n
msgid "@n @i number for '.' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1055
+#: e2fsck/problem.c:1069
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
msgid "@E has @n @i #: %Di.\n"
msgstr ""
-#: e2fsck/problem.c:1060
+#: e2fsck/problem.c:1074
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
msgid "@E has @D/unused @i %Di. "
msgstr ""
-#: e2fsck/problem.c:1065
+#: e2fsck/problem.c:1079
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
msgid "@E @L to '.' "
msgstr ""
-#: e2fsck/problem.c:1070
+#: e2fsck/problem.c:1084
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
msgid "@E points to @i (%Di) located in a bad @b.\n"
msgstr ""
-#: e2fsck/problem.c:1075
+#: e2fsck/problem.c:1089
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
msgid "@E @L to @d %P (%Di).\n"
msgstr ""
-#: e2fsck/problem.c:1080
+#: e2fsck/problem.c:1094
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
msgid "@E @L to the @r.\n"
msgstr ""
-#: e2fsck/problem.c:1085
+#: e2fsck/problem.c:1099
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
msgid "@E has illegal characters in its name.\n"
msgstr ""
-#: e2fsck/problem.c:1090
+#: e2fsck/problem.c:1104
#, c-format
#. @-expanded: Missing '.' in directory inode %i.\n
msgid "Missing '.' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1095
+#: e2fsck/problem.c:1109
#, c-format
#. @-expanded: Missing '..' in directory inode %i.\n
msgid "Missing '..' in @d @i %i.\n"
msgstr ""
-#: e2fsck/problem.c:1100
+#: e2fsck/problem.c:1114
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
msgstr ""
-#: e2fsck/problem.c:1105
+#: e2fsck/problem.c:1119
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
msgstr ""
-#: e2fsck/problem.c:1110
+#: e2fsck/problem.c:1124
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
msgid "i_faddr @F %IF, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1115
+#: e2fsck/problem.c:1129
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
msgid "i_file_acl @F %If, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1120
+#: e2fsck/problem.c:1134
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
msgid "i_dir_acl @F %Id, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1125
+#: e2fsck/problem.c:1139
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
msgid "i_frag @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1130
+#: e2fsck/problem.c:1144
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
msgid "i_fsize @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1135
+#: e2fsck/problem.c:1149
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
msgid "@i %i (%Q) has @n mode (%Im).\n"
msgstr ""
-#: e2fsck/problem.c:1140
+#: e2fsck/problem.c:1154
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
msgid "@d @i %i, %B, offset %N: @d corrupted\n"
msgstr ""
-#: e2fsck/problem.c:1145
+#: e2fsck/problem.c:1159
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
msgid "@d @i %i, %B, offset %N: filename too long\n"
msgstr ""
-#: e2fsck/problem.c:1150
+#: e2fsck/problem.c:1164
#. @-expanded: directory inode %i has an unallocated %B.
msgid "@d @i %i has an unallocated %B. "
msgstr ""
-#: e2fsck/problem.c:1155
+#: e2fsck/problem.c:1169
#, c-format
#. @-expanded: '.' directory entry in directory inode %i is not NULL terminated\n
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
msgstr ""
-#: e2fsck/problem.c:1160
+#: e2fsck/problem.c:1174
#, c-format
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
msgstr ""
-#: e2fsck/problem.c:1165
+#: e2fsck/problem.c:1179
#. @-expanded: inode %i (%Q) is an illegal character device.\n
msgid "@i %i (%Q) is an @I character @v.\n"
msgstr ""
-#: e2fsck/problem.c:1170
+#: e2fsck/problem.c:1184
#. @-expanded: inode %i (%Q) is an illegal block device.\n
msgid "@i %i (%Q) is an @I @b @v.\n"
msgstr ""
-#: e2fsck/problem.c:1175
+#: e2fsck/problem.c:1189
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
msgid "@E is duplicate '.' @e.\n"
msgstr ""
-#: e2fsck/problem.c:1180
+#: e2fsck/problem.c:1194
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
msgid "@E is duplicate '..' @e.\n"
msgstr ""
-#: e2fsck/problem.c:1185 e2fsck/problem.c:1485
+#: e2fsck/problem.c:1199 e2fsck/problem.c:1499
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
msgstr ""
-#: e2fsck/problem.c:1190
+#: e2fsck/problem.c:1204
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
msgid "@E has rec_len of %Dr, @s %N.\n"
msgstr ""
-#: e2fsck/problem.c:1195
+#: e2fsck/problem.c:1209
#, c-format
#. @-expanded: error allocating icount structure: %m\n
msgid "@A icount structure: %m\n"
msgstr ""
-#: e2fsck/problem.c:1200
+#: e2fsck/problem.c:1214
#, c-format
#. @-expanded: Error iterating over directory blocks: %m\n
msgid "Error iterating over @d @bs: %m\n"
msgstr ""
-#: e2fsck/problem.c:1205
+#: e2fsck/problem.c:1219
#. @-expanded: Error reading directory block %b (inode %i): %m\n
msgid "Error reading @d @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:1210
+#: e2fsck/problem.c:1224
#. @-expanded: Error writing directory block %b (inode %i): %m\n
msgid "Error writing @d @b %b (@i %i): %m\n"
msgstr ""
-#: e2fsck/problem.c:1215
+#: e2fsck/problem.c:1229
#, c-format
#. @-expanded: error allocating new directory block for inode %i (%s): %m\n
msgid "@A new @d @b for @i %i (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1220
+#: e2fsck/problem.c:1234
#, c-format
#. @-expanded: Error deallocating inode %i: %m\n
msgid "Error deallocating @i %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:1225
+#: e2fsck/problem.c:1239
#, c-format
#. @-expanded: directory entry for '.' in %p (%i) is big.\n
msgid "@d @e for '.' in %p (%i) is big.\n"
msgstr ""
-#: e2fsck/problem.c:1230
+#: e2fsck/problem.c:1244
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
msgid "@i %i (%Q) is an @I FIFO.\n"
msgstr ""
-#: e2fsck/problem.c:1235
+#: e2fsck/problem.c:1249
#. @-expanded: inode %i (%Q) is an illegal socket.\n
msgid "@i %i (%Q) is an @I socket.\n"
msgstr ""
-#: e2fsck/problem.c:1240
+#: e2fsck/problem.c:1254
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
msgid "Setting filetype for @E to %N.\n"
msgstr ""
-#: e2fsck/problem.c:1245
+#: e2fsck/problem.c:1259
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
msgstr ""
-#: e2fsck/problem.c:1250
+#: e2fsck/problem.c:1264
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
msgid "@E has filetype set.\n"
msgstr ""
-#: e2fsck/problem.c:1255
+#: e2fsck/problem.c:1269
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
msgid "@E has a @z name.\n"
msgstr ""
-#: e2fsck/problem.c:1260
+#: e2fsck/problem.c:1274
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
msgid "Symlink %Q (@i #%i) is @n.\n"
msgstr ""
-#: e2fsck/problem.c:1265
+#: e2fsck/problem.c:1279
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
msgid "@a @b @F @n (%If).\n"
msgstr ""
-#: e2fsck/problem.c:1270
+#: e2fsck/problem.c:1284
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
msgstr ""
-#: e2fsck/problem.c:1275
+#: e2fsck/problem.c:1289
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
msgid "@p @h %d: %B not referenced\n"
msgstr ""
-#: e2fsck/problem.c:1280
+#: e2fsck/problem.c:1294
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
msgid "@p @h %d: %B referenced twice\n"
msgstr ""
-#: e2fsck/problem.c:1285
+#: e2fsck/problem.c:1299
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
msgid "@p @h %d: %B has bad min hash\n"
msgstr ""
-#: e2fsck/problem.c:1290
+#: e2fsck/problem.c:1304
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
msgid "@p @h %d: %B has bad max hash\n"
msgstr ""
-#: e2fsck/problem.c:1295
+#: e2fsck/problem.c:1309
#. @-expanded: invalid HTREE directory inode %d (%q).
msgid "@n @h %d (%q). "
msgstr ""
-#: e2fsck/problem.c:1299
+#: e2fsck/problem.c:1313
#. @-expanded: problem in HTREE directory inode %d (%q): bad block number %b.\n
msgid "@p @h %d (%q): bad @b number %b.\n"
msgstr ""
-#: e2fsck/problem.c:1309
+#: e2fsck/problem.c:1323
#, c-format
#. @-expanded: problem in HTREE directory inode %d: root node is invalid\n
msgid "@p @h %d: root node is @n\n"
msgstr ""
-#: e2fsck/problem.c:1314
+#: e2fsck/problem.c:1328
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
msgid "@p @h %d: %B has @n limit (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1319
+#: e2fsck/problem.c:1333
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
msgid "@p @h %d: %B has @n count (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1324
+#: e2fsck/problem.c:1338
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
msgid "@p @h %d: %B has an unordered hash table\n"
msgstr ""
-#: e2fsck/problem.c:1329
+#: e2fsck/problem.c:1343
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
msgid "@p @h %d: %B has @n depth (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1334
+#: e2fsck/problem.c:1348
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
msgid "Duplicate @E found. "
msgstr ""
-#: e2fsck/problem.c:1339
+#: e2fsck/problem.c:1353
#, no-c-format
#. @-expanded: entry '%Dn' in %p (%i) has a non-unique filename.\n
#. @-expanded: Rename to %s
"Rename to %s"
msgstr ""
-#: e2fsck/problem.c:1344
+#: e2fsck/problem.c:1358
#. @-expanded: Duplicate entry '%Dn' found.\n
#. @-expanded: \tMarking %p (%i) to be rebuilt.\n
#. @-expanded: \n
"\n"
msgstr ""
-#: e2fsck/problem.c:1349
+#: e2fsck/problem.c:1363
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
msgid "i_blocks_hi @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1354
+#: e2fsck/problem.c:1368
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
msgid "Unexpected @b in @h %d (%q).\n"
msgstr ""
-#: e2fsck/problem.c:1358
+#: e2fsck/problem.c:1372
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
msgstr ""
-#: e2fsck/problem.c:1363
+#: e2fsck/problem.c:1377
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
msgstr ""
-#: e2fsck/problem.c:1368
+#: e2fsck/problem.c:1382
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
msgid "i_file_acl_hi @F %N, @s zero.\n"
msgstr ""
-#: e2fsck/problem.c:1375
+#: e2fsck/problem.c:1389
#. @-expanded: Pass 3: Checking directory connectivity\n
msgid "Pass 3: Checking @d connectivity\n"
msgstr ""
-#: e2fsck/problem.c:1380
+#: e2fsck/problem.c:1394
#. @-expanded: root inode not allocated.
msgid "@r not allocated. "
msgstr ""
-#: e2fsck/problem.c:1385
+#: e2fsck/problem.c:1399
#. @-expanded: No room in lost+found directory.
msgid "No room in @l @d. "
msgstr ""
-#: e2fsck/problem.c:1390
+#: e2fsck/problem.c:1404
#, c-format
#. @-expanded: Unconnected directory inode %i (%p)\n
msgid "Unconnected @d @i %i (%p)\n"
msgstr ""
-#: e2fsck/problem.c:1395
+#: e2fsck/problem.c:1409
#. @-expanded: /lost+found not found.
msgid "/@l not found. "
msgstr ""
-#: e2fsck/problem.c:1400
+#: e2fsck/problem.c:1414
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
msgstr ""
-#: e2fsck/problem.c:1405
+#: e2fsck/problem.c:1419
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
msgstr ""
-#: e2fsck/problem.c:1410
+#: e2fsck/problem.c:1424
#, c-format
#. @-expanded: Could not expand /lost+found: %m\n
msgid "Could not expand /@l: %m\n"
msgstr ""
-#: e2fsck/problem.c:1415
+#: e2fsck/problem.c:1429
#, c-format
msgid "Could not reconnect %i: %m\n"
msgstr ""
-#: e2fsck/problem.c:1420
+#: e2fsck/problem.c:1434
#, c-format
#. @-expanded: Error while trying to find /lost+found: %m\n
msgid "Error while trying to find /@l: %m\n"
msgstr ""
-#: e2fsck/problem.c:1425
+#: e2fsck/problem.c:1439
#, c-format
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
msgstr ""
-#: e2fsck/problem.c:1430
+#: e2fsck/problem.c:1444
#, c-format
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
msgstr ""
-#: e2fsck/problem.c:1435
+#: e2fsck/problem.c:1449
#, c-format
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
msgstr ""
-#: e2fsck/problem.c:1440
+#: e2fsck/problem.c:1454
#, c-format
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
msgstr ""
-#: e2fsck/problem.c:1445
+#: e2fsck/problem.c:1459
#, c-format
#. @-expanded: Error while adjusting inode count on inode %i\n
msgid "Error while adjusting @i count on @i %i\n"
msgstr ""
-#: e2fsck/problem.c:1450
+#: e2fsck/problem.c:1464
#, c-format
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
"\n"
msgstr ""
-#: e2fsck/problem.c:1455
+#: e2fsck/problem.c:1469
#, c-format
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
#. @-expanded: \n
"\n"
msgstr ""
-#: e2fsck/problem.c:1465
+#: e2fsck/problem.c:1479
#, c-format
#. @-expanded: Error creating root directory (%s): %m\n
msgid "Error creating root @d (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1470
+#: e2fsck/problem.c:1484
#, c-format
#. @-expanded: Error creating /lost+found directory (%s): %m\n
msgid "Error creating /@l @d (%s): %m\n"
msgstr ""
-#: e2fsck/problem.c:1475
+#: e2fsck/problem.c:1489
#. @-expanded: root inode is not a directory; aborting.\n
msgid "@r is not a @d; aborting.\n"
msgstr ""
-#: e2fsck/problem.c:1480
+#: e2fsck/problem.c:1494
#. @-expanded: Cannot proceed without a root inode.\n
msgid "Cannot proceed without a @r.\n"
msgstr ""
-#: e2fsck/problem.c:1490
+#: e2fsck/problem.c:1504
#, c-format
#. @-expanded: /lost+found is not a directory (ino=%i)\n
msgid "/@l is not a @d (ino=%i)\n"
msgstr ""
-#: e2fsck/problem.c:1497
+#: e2fsck/problem.c:1511
msgid "Pass 3A: Optimizing directories\n"
msgstr ""
-#: e2fsck/problem.c:1502
+#: e2fsck/problem.c:1516
#, c-format
msgid "Failed to create dirs_to_hash iterator: %m\n"
msgstr ""
-#: e2fsck/problem.c:1507
+#: e2fsck/problem.c:1521
msgid "Failed to optimize directory %q (%d): %m\n"
msgstr ""
-#: e2fsck/problem.c:1512
+#: e2fsck/problem.c:1526
msgid "Optimizing directories: "
msgstr ""
-#: e2fsck/problem.c:1529
+#: e2fsck/problem.c:1543
msgid "Pass 4: Checking reference counts\n"
msgstr ""
-#: e2fsck/problem.c:1534
+#: e2fsck/problem.c:1548
#, c-format
#. @-expanded: unattached zero-length inode %i.
msgid "@u @z @i %i. "
msgstr ""
-#: e2fsck/problem.c:1539
+#: e2fsck/problem.c:1553
#, c-format
#. @-expanded: unattached inode %i\n
msgid "@u @i %i\n"
msgstr ""
-#: e2fsck/problem.c:1544
+#: e2fsck/problem.c:1558
#. @-expanded: inode %i ref count is %Il, should be %N.
msgid "@i %i ref count is %Il, @s %N. "
msgstr ""
-#: e2fsck/problem.c:1548
+#: e2fsck/problem.c:1562
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
#. @-expanded: inode_link_info[%i] is %N, inode.i_links_count is %Il. They should be the same!\n
"@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n"
msgstr ""
-#: e2fsck/problem.c:1558
+#: e2fsck/problem.c:1572
#. @-expanded: Pass 5: Checking group summary information\n
msgid "Pass 5: Checking @g summary information\n"
msgstr ""
-#: e2fsck/problem.c:1563
+#: e2fsck/problem.c:1577
#. @-expanded: Padding at end of inode bitmap is not set.
msgid "Padding at end of @i @B is not set. "
msgstr ""
-#: e2fsck/problem.c:1568
+#: e2fsck/problem.c:1582
#. @-expanded: Padding at end of block bitmap is not set.
msgid "Padding at end of @b @B is not set. "
msgstr ""
-#: e2fsck/problem.c:1573
+#: e2fsck/problem.c:1587
#. @-expanded: block bitmap differences:
msgid "@b @B differences: "
msgstr ""
-#: e2fsck/problem.c:1593
+#: e2fsck/problem.c:1607
#. @-expanded: inode bitmap differences:
msgid "@i @B differences: "
msgstr ""
-#: e2fsck/problem.c:1613
+#: e2fsck/problem.c:1627
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1618
+#: e2fsck/problem.c:1632
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1623
+#: e2fsck/problem.c:1637
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
msgid "Free @is count wrong (%i, counted=%j).\n"
msgstr ""
-#: e2fsck/problem.c:1628
+#: e2fsck/problem.c:1642
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
msgstr ""
-#: e2fsck/problem.c:1633
+#: e2fsck/problem.c:1647
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
msgid "Free @bs count wrong (%b, counted=%c).\n"
msgstr ""
-#: e2fsck/problem.c:1638
+#: e2fsck/problem.c:1652
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
msgid ""
"endpoints (%i, %j)\n"
msgstr ""
-#: e2fsck/problem.c:1644
+#: e2fsck/problem.c:1658
msgid "Internal error: fudging end of bitmap (%N)\n"
msgstr ""
-#: e2fsck/problem.c:1649
+#: e2fsck/problem.c:1663
#, c-format
#. @-expanded: Error copying in replacement inode bitmap: %m\n
msgid "Error copying in replacement @i @B: %m\n"
msgstr ""
-#: e2fsck/problem.c:1654
+#: e2fsck/problem.c:1668
#, c-format
#. @-expanded: Error copying in replacement block bitmap: %m\n
msgid "Error copying in replacement @b @B: %m\n"
msgstr ""
-#: e2fsck/problem.c:1679
+#: e2fsck/problem.c:1693
#, c-format
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1684
+#: e2fsck/problem.c:1698
#, c-format
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
msgstr ""
-#: e2fsck/problem.c:1691
+#: e2fsck/problem.c:1705
#. @-expanded: Recreate journal
msgid "Recreate @j"
msgstr ""
-#: e2fsck/problem.c:1696
+#: e2fsck/problem.c:1710
msgid "Update quota info for quota type %N"
msgstr ""
-#: e2fsck/problem.c:1815
+#: e2fsck/problem.c:1829
#, c-format
msgid "Unhandled error code (0x%x)!\n"
msgstr ""
-#: e2fsck/problem.c:1940 e2fsck/problem.c:1944
+#: e2fsck/problem.c:1954 e2fsck/problem.c:1958
msgid "IGNORED"
msgstr ""
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:210
+#: e2fsck/unix.c:209
#, c-format
msgid "%12u symbolic link"
msgid_plural "%12u symbolic links"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:212
+#: e2fsck/unix.c:211
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:216
+#: e2fsck/unix.c:215
#, c-format
msgid "%12u socket\n"
msgid_plural "%12u sockets\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:220
+#: e2fsck/unix.c:219
#, c-format
msgid "%12u file\n"
msgid_plural "%12u files\n"
msgstr[0] ""
msgstr[1] ""
-#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
-#: resize/main.c:247
+#: e2fsck/unix.c:232 misc/badblocks.c:983 misc/tune2fs.c:1985 misc/util.c:147
+#: resize/main.c:259
#, c-format
msgid "while determining whether %s is mounted."
msgstr ""
-#: e2fsck/unix.c:254
+#: e2fsck/unix.c:252
#, c-format
msgid "Warning! %s is %s.\n"
msgstr ""
-#: e2fsck/unix.c:261
+#: e2fsck/unix.c:259
#, c-format
msgid "%s is %s.\n"
msgstr ""
-#: e2fsck/unix.c:264
+#: e2fsck/unix.c:262
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:266
+#: e2fsck/unix.c:264
msgid ""
"\n"
"\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:271
+#: e2fsck/unix.c:269
msgid "Do you really want to continue"
msgstr ""
-#: e2fsck/unix.c:273
+#: e2fsck/unix.c:271
#, c-format
msgid "check aborted.\n"
msgstr ""
-#: e2fsck/unix.c:363
+#: e2fsck/unix.c:361
msgid " contains a file system with errors"
msgstr ""
-#: e2fsck/unix.c:365
+#: e2fsck/unix.c:363
msgid " was not cleanly unmounted"
msgstr ""
-#: e2fsck/unix.c:367
+#: e2fsck/unix.c:365
msgid " primary superblock features different from backup"
msgstr ""
-#: e2fsck/unix.c:371
+#: e2fsck/unix.c:369
#, c-format
msgid " has been mounted %u times without being checked"
msgstr ""
-#: e2fsck/unix.c:378
+#: e2fsck/unix.c:376
msgid " has filesystem last checked time in the future"
msgstr ""
-#: e2fsck/unix.c:384
+#: e2fsck/unix.c:382
#, c-format
msgid " has gone %u days without being checked"
msgstr ""
-#: e2fsck/unix.c:393
+#: e2fsck/unix.c:391
msgid ", check forced.\n"
msgstr ""
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:424
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr ""
-#: e2fsck/unix.c:445
+#: e2fsck/unix.c:443
msgid " (check deferred; on battery)"
msgstr ""
-#: e2fsck/unix.c:448
+#: e2fsck/unix.c:446
msgid " (check after next mount)"
msgstr ""
-#: e2fsck/unix.c:450
+#: e2fsck/unix.c:448
#, c-format
msgid " (check in %ld mounts)"
msgstr ""
-#: e2fsck/unix.c:600
+#: e2fsck/unix.c:598
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr ""
-#: e2fsck/unix.c:669
+#: e2fsck/unix.c:667
#, c-format
msgid "Invalid EA version.\n"
msgstr ""
-#: e2fsck/unix.c:696
+#: e2fsck/unix.c:694
#, c-format
msgid "Unknown extended option: %s\n"
msgstr ""
-#: e2fsck/unix.c:721
+#: e2fsck/unix.c:719
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: e2fsck/unix.c:790
+#: e2fsck/unix.c:788
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr ""
-#: e2fsck/unix.c:794
+#: e2fsck/unix.c:792
msgid "Invalid completion information file descriptor"
msgstr ""
-#: e2fsck/unix.c:809
+#: e2fsck/unix.c:807
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr ""
-#: e2fsck/unix.c:830
+#: e2fsck/unix.c:828
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr ""
-#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
-#: misc/tune2fs.c:1109
+#: e2fsck/unix.c:859 e2fsck/unix.c:931 misc/tune2fs.c:811 misc/tune2fs.c:1100
+#: misc/tune2fs.c:1118
#, c-format
msgid "Unable to resolve '%s'"
msgstr ""
-#: e2fsck/unix.c:912
+#: e2fsck/unix.c:910
msgid "The -n and -D options are incompatible."
msgstr ""
-#: e2fsck/unix.c:917
+#: e2fsck/unix.c:915
msgid "The -n and -c options are incompatible."
msgstr ""
-#: e2fsck/unix.c:922
+#: e2fsck/unix.c:920
msgid "The -n and -l/-L options are incompatible."
msgstr ""
-#: e2fsck/unix.c:976
+#: e2fsck/unix.c:974
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr ""
-#: e2fsck/unix.c:1024
+#: e2fsck/unix.c:1022
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1033
+#: e2fsck/unix.c:1031
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1122
+#: e2fsck/unix.c:1120
#, c-format
msgid ""
"MMP interval is %u seconds and total wait time is %u seconds. Please "
"wait...\n"
msgstr ""
-#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
+#: e2fsck/unix.c:1137 e2fsck/unix.c:1142
msgid "while checking MMP block"
msgstr ""
-#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
+#: e2fsck/unix.c:1144 misc/tune2fs.c:1912
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-#: e2fsck/unix.c:1196
+#: e2fsck/unix.c:1194
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr ""
-#: e2fsck/unix.c:1204
+#: e2fsck/unix.c:1202
msgid "while trying to initialize program"
msgstr ""
-#: e2fsck/unix.c:1227
+#: e2fsck/unix.c:1225
#, c-format
msgid "\tUsing %s, %s\n"
msgstr ""
-#: e2fsck/unix.c:1239
+#: e2fsck/unix.c:1237
msgid "need terminal for interactive repairs"
msgstr ""
-#: e2fsck/unix.c:1292
+#: e2fsck/unix.c:1290
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr ""
-#: e2fsck/unix.c:1294
+#: e2fsck/unix.c:1292
msgid "Superblock invalid,"
msgstr ""
-#: e2fsck/unix.c:1295
+#: e2fsck/unix.c:1293
msgid "Group descriptors look bad..."
msgstr ""
-#: e2fsck/unix.c:1305
+#: e2fsck/unix.c:1303
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr ""
-#: e2fsck/unix.c:1309
+#: e2fsck/unix.c:1307
#, c-format
msgid "%s: going back to original superblock\n"
msgstr ""
-#: e2fsck/unix.c:1337
+#: e2fsck/unix.c:1335
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1343
+#: e2fsck/unix.c:1341
msgid "Could this be a zero-length partition?\n"
msgstr ""
-#: e2fsck/unix.c:1346
+#: e2fsck/unix.c:1344
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr ""
-#: e2fsck/unix.c:1351
+#: e2fsck/unix.c:1349
msgid "Possibly non-existent or swap device?\n"
msgstr ""
-#: e2fsck/unix.c:1354
+#: e2fsck/unix.c:1352
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
-#: e2fsck/unix.c:1357
+#: e2fsck/unix.c:1355
msgid "Possibly non-existent device?\n"
msgstr ""
-#: e2fsck/unix.c:1360
+#: e2fsck/unix.c:1358
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-#: e2fsck/unix.c:1425
+#: e2fsck/unix.c:1423
msgid "Get a newer version of e2fsck!"
msgstr ""
-#: e2fsck/unix.c:1469
+#: e2fsck/unix.c:1467
#, c-format
msgid "while checking ext3 journal for %s"
msgstr ""
-#: e2fsck/unix.c:1480
+#: e2fsck/unix.c:1478
msgid ""
"Warning: skipping journal recovery because doing a read-only filesystem "
"check.\n"
msgstr ""
-#: e2fsck/unix.c:1493
+#: e2fsck/unix.c:1491
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr ""
-#: e2fsck/unix.c:1499
+#: e2fsck/unix.c:1497
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr ""
-#: e2fsck/unix.c:1523
+#: e2fsck/unix.c:1521
#, c-format
msgid "%s has unsupported feature(s):"
msgstr ""
-#: e2fsck/unix.c:1538
+#: e2fsck/unix.c:1536
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr ""
-#: e2fsck/unix.c:1544
+#: e2fsck/unix.c:1542
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-#: e2fsck/unix.c:1596
+#: e2fsck/unix.c:1594
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr ""
-#: e2fsck/unix.c:1599
+#: e2fsck/unix.c:1597
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr ""
-#: e2fsck/unix.c:1640
+#: e2fsck/unix.c:1638
#, c-format
msgid "Creating journal (%d blocks): "
msgstr ""
-#: e2fsck/unix.c:1650
+#: e2fsck/unix.c:1648
msgid " Done.\n"
msgstr ""
-#: e2fsck/unix.c:1651
+#: e2fsck/unix.c:1649
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
-#: e2fsck/unix.c:1674
+#: e2fsck/unix.c:1672
msgid "Restarting e2fsck from the beginning...\n"
msgstr ""
-#: e2fsck/unix.c:1678
+#: e2fsck/unix.c:1676
msgid "while resetting context"
msgstr ""
-#: e2fsck/unix.c:1685
+#: e2fsck/unix.c:1683
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr ""
-#: e2fsck/unix.c:1690
+#: e2fsck/unix.c:1688
msgid "aborted"
msgstr ""
-#: e2fsck/unix.c:1702 e2fsck/util.c:67
+#: e2fsck/unix.c:1700 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"%s: ***** FILE SYSTEM WAS MODIFIED *****\n"
msgstr ""
-#: e2fsck/unix.c:1706
+#: e2fsck/unix.c:1704
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr ""
-#: e2fsck/unix.c:1714 e2fsck/util.c:73
+#: e2fsck/unix.c:1712 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: e2fsck/unix.c:1754
+#: e2fsck/unix.c:1752
msgid "while setting block group checksum info"
msgstr ""
-#: e2fsck/util.c:189 misc/util.c:70
+#: e2fsck/util.c:190 misc/util.c:70
msgid "yY"
msgstr ""
-#: e2fsck/util.c:190
+#: e2fsck/util.c:191
msgid "nN"
msgstr ""
-#: e2fsck/util.c:204
+#: e2fsck/util.c:205
msgid "<y>"
msgstr ""
-#: e2fsck/util.c:206
+#: e2fsck/util.c:207
msgid "<n>"
msgstr ""
-#: e2fsck/util.c:208
+#: e2fsck/util.c:209
msgid " (y/n)"
msgstr ""
-#: e2fsck/util.c:222
+#: e2fsck/util.c:223
msgid "cancelled!\n"
msgstr ""
-#: e2fsck/util.c:237
+#: e2fsck/util.c:238
msgid "yes\n"
msgstr ""
-#: e2fsck/util.c:239
+#: e2fsck/util.c:240
msgid "no\n"
msgstr ""
-#: e2fsck/util.c:249
+#: e2fsck/util.c:250
#, c-format
msgid ""
"%s? no\n"
"\n"
msgstr ""
-#: e2fsck/util.c:253
+#: e2fsck/util.c:254
#, c-format
msgid ""
"%s? yes\n"
"\n"
msgstr ""
-#: e2fsck/util.c:257
+#: e2fsck/util.c:258
msgid "yes"
msgstr ""
-#: e2fsck/util.c:257
+#: e2fsck/util.c:258
msgid "no"
msgstr ""
-#: e2fsck/util.c:272
+#: e2fsck/util.c:273
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
msgstr ""
-#: e2fsck/util.c:277
+#: e2fsck/util.c:278
msgid "reading inode and block bitmaps"
msgstr ""
-#: e2fsck/util.c:285
+#: e2fsck/util.c:286
#, c-format
msgid "while retrying to read bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:297
+#: e2fsck/util.c:298
msgid "writing block and inode bitmaps"
msgstr ""
-#: e2fsck/util.c:302
+#: e2fsck/util.c:303
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
msgstr ""
-#: e2fsck/util.c:314
+#: e2fsck/util.c:315
#, c-format
msgid ""
"\n"
"\t(i.e., without -a or -p options)\n"
msgstr ""
-#: e2fsck/util.c:395
+#: e2fsck/util.c:396
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
msgstr ""
-#: e2fsck/util.c:399
+#: e2fsck/util.c:400
#, c-format
msgid "Memory used: %lu, "
msgstr ""
-#: e2fsck/util.c:406
+#: e2fsck/util.c:407
#, c-format
msgid "time: %5.2f/%5.2f/%5.2f\n"
msgstr ""
-#: e2fsck/util.c:411
+#: e2fsck/util.c:412
#, c-format
msgid "elapsed time: %6.3f\n"
msgstr ""
-#: e2fsck/util.c:446 e2fsck/util.c:460
+#: e2fsck/util.c:447 e2fsck/util.c:461
#, c-format
msgid "while reading inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:474 e2fsck/util.c:487
+#: e2fsck/util.c:475 e2fsck/util.c:488
#, c-format
msgid "while writing inode %lu in %s"
msgstr ""
-#: e2fsck/util.c:636
+#: e2fsck/util.c:637
msgid "while allocating zeroizing buffer"
msgstr ""
-#: e2fsck/util.c:788
+#: e2fsck/util.c:785
msgid ""
"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
"running.\n"
msgid "done \n"
msgstr ""
-#: misc/badblocks.c:93
+#: misc/badblocks.c:92
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
" device [last_block [first_block]]\n"
msgstr ""
-#: misc/badblocks.c:104
+#: misc/badblocks.c:103
#, c-format
msgid ""
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-#: misc/badblocks.c:219
+#: misc/badblocks.c:218
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
msgstr ""
msgid "bad version - %s\n"
msgstr ""
-#: misc/chattr.c:202 misc/lsattr.c:116
+#: misc/chattr.c:201 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr ""
-#: misc/chattr.c:209
+#: misc/chattr.c:208
#, c-format
msgid "while reading flags on %s"
msgstr ""
-#: misc/chattr.c:218 misc/chattr.c:237
-#, c-format
-msgid "Clearing extent flag not supported on %s"
-msgstr ""
-
-#: misc/chattr.c:223 misc/chattr.c:242
+#: misc/chattr.c:213 misc/chattr.c:225
#, c-format
msgid "Flags of %s set as "
msgstr ""
-#: misc/chattr.c:251
+#: misc/chattr.c:234
#, c-format
msgid "while setting flags on %s"
msgstr ""
-#: misc/chattr.c:259
+#: misc/chattr.c:242
#, c-format
msgid "Version of %s set as %lu\n"
msgstr ""
-#: misc/chattr.c:263
+#: misc/chattr.c:246
#, c-format
msgid "while setting version on %s"
msgstr ""
-#: misc/chattr.c:283
+#: misc/chattr.c:266
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr ""
-#: misc/chattr.c:323
+#: misc/chattr.c:306
msgid "= is incompatible with - and +\n"
msgstr ""
-#: misc/chattr.c:331
+#: misc/chattr.c:314
msgid "Must use '-v', =, - or +\n"
msgstr ""
msgid "Bad blocks: %u"
msgstr ""
-#: misc/dumpe2fs.c:333 misc/tune2fs.c:302
+#: misc/dumpe2fs.c:333 misc/tune2fs.c:306
msgid "while reading journal inode"
msgstr ""
msgid "Journal errno: %d\n"
msgstr ""
-#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
+#: misc/dumpe2fs.c:401 misc/tune2fs.c:222
msgid "while reading journal superblock"
msgstr ""
msgid "Journal users: %s\n"
msgstr ""
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1128
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:666 misc/tune2fs.c:1137
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr ""
"\tblocksize=<blocksize>\n"
msgstr ""
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1555
#, c-format
msgid "\tUsing %s\n"
msgstr ""
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
-#: resize/main.c:305
+#: misc/dumpe2fs.c:590 misc/e2image.c:1326 misc/tune2fs.c:1923
+#: resize/main.c:317
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
msgstr ""
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
-#: misc/e2image.c:87
+#: misc/e2image.c:90
#, c-format
-msgid "Usage: %s [-rsIQ] device image_file\n"
+msgid "Usage: %s [-rsIQa] device image_file\n"
msgstr ""
-#: misc/e2image.c:135
+#: misc/e2image.c:138
#, c-format
msgid "Error: header size is bigger than wrt_size\n"
msgstr ""
-#: misc/e2image.c:141
+#: misc/e2image.c:144
msgid "Couldn't allocate header buffer\n"
msgstr ""
-#: misc/e2image.c:171
+#: misc/e2image.c:174
msgid "while writing superblock"
msgstr ""
-#: misc/e2image.c:179
+#: misc/e2image.c:182
msgid "while writing inode table"
msgstr ""
-#: misc/e2image.c:186
+#: misc/e2image.c:189
msgid "while writing block bitmap"
msgstr ""
-#: misc/e2image.c:193
+#: misc/e2image.c:196
msgid "while writing inode bitmap"
msgstr ""
-#: misc/e2image.c:1341
+#: misc/e2image.c:1365
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
msgstr ""
msgid "e2label: not an ext2 filesystem\n"
msgstr ""
-#: misc/e2label.c:97 misc/tune2fs.c:2065
+#: misc/e2label.c:97 misc/tune2fs.c:2080
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr ""
msgid "e2label: error writing superblock\n"
msgstr ""
-#: misc/e2label.c:117 misc/tune2fs.c:794
+#: misc/e2label.c:117 misc/tune2fs.c:803
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr ""
msgid "While reading version on %s"
msgstr ""
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:116
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"count]\n"
msgstr ""
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:221
#, c-format
msgid "Running command: %s\n"
msgstr ""
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:225
#, c-format
msgid "while trying to run '%s'"
msgstr ""
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:232
msgid "while processing list of bad blocks from program"
msgstr ""
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:259
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr ""
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:261
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:264
msgid "Aborting....\n"
msgstr ""
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:284
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:303
msgid "while marking bad blocks as used"
msgstr ""
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:320
msgid "Writing inode tables: "
msgstr ""
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:341
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:355 misc/mke2fs.c:2257 misc/mke2fs.c:2512
#, c-format
msgid "done \n"
msgstr ""
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:366
msgid "while creating root dir"
msgstr ""
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:373
msgid "while reading root inode"
msgstr ""
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr ""
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr ""
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr ""
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr ""
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr ""
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr ""
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr ""
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr ""
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr ""
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr ""
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr ""
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:545
msgid "while writing journal superblock"
msgstr ""
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:560
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:565
#, c-format
msgid "Filesystem label=%s\n"
msgstr ""
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:568
#, c-format
msgid "OS type: %s\n"
msgstr ""
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:570
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:574
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:578
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr ""
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:580
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr ""
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:582
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr ""
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:584
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr ""
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:587
#, c-format
msgid "First data block=%u\n"
msgstr ""
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:589
#, c-format
-msgid "Maximum filesystem blocks=%lu\n"
+msgid "Root directory owner=%u:%u\n"
msgstr ""
#: misc/mke2fs.c:591
#, c-format
+msgid "Maximum filesystem blocks=%lu\n"
+msgstr ""
+
+#: misc/mke2fs.c:595
+#, c-format
msgid "%u block groups\n"
msgstr ""
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:597
#, c-format
msgid "%u block group\n"
msgstr ""
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:600
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr ""
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:603
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr ""
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:605
#, c-format
msgid "%u inodes per group\n"
msgstr ""
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:612
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr ""
-#: misc/mke2fs.c:687 misc/tune2fs.c:1156
+#: misc/mke2fs.c:691 misc/tune2fs.c:1165
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr ""
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:705
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:720
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:743
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:750
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:774
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:801 misc/mke2fs.c:810
+#, c-format
+msgid "Invalid root_owner: '%s'\n"
+msgstr ""
+
+#: misc/mke2fs.c:835
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr ""
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:846
#, c-format
msgid ""
"\n"
"\tresize=<resize maximum size in blocks>\n"
"\tlazy_itable_init=<0 to disable, 1 to enable>\n"
"\tlazy_journal_init=<0 to disable, 1 to enable>\n"
+"\troot_uid=<uid of root directory>\n"
+"\troot_gid=<gid of root directory>\n"
"\ttest_fs\n"
"\tdiscard\n"
"\tnodiscard\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:868
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:907
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t%s\n"
msgstr ""
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:920 misc/tune2fs.c:398
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr ""
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:932 misc/tune2fs.c:349
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr ""
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1072
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1076
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1080
#, c-format
msgid "Aborting...\n"
msgstr ""
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1120
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1276
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr ""
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1317
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr ""
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1357
#, c-format
msgid "invalid block size - %s"
msgstr ""
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1361
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1377
#, c-format
msgid "invalid cluster size - %s"
msgstr ""
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1387
+msgid "'-R' is deprecated, use '-E' instead"
+msgstr ""
+
+#: misc/mke2fs.c:1399
msgid "Illegal number for blocks per group"
msgstr ""
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1404
msgid "blocks per group must be multiple of 8"
msgstr ""
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1412
msgid "Illegal number for flex_bg size"
msgstr ""
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1418
msgid "flex_bg size must be a power of 2"
msgstr ""
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1438
+#, c-format
+msgid "invalid inode size - %s"
+msgstr ""
+
+#: misc/mke2fs.c:1450
#, c-format
msgid ""
"Warning: -K option is deprecated and should not be used anymore. Use '-E "
"nodiscard' extended option instead!\n"
msgstr ""
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1460
msgid "in malloc for bad_blocks_filename"
msgstr ""
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1473
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr ""
-#: misc/mke2fs.c:1443
-#, c-format
-msgid "bad revision level - %s"
-msgstr ""
-
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1488
#, c-format
-msgid "invalid inode size - %s"
+msgid "bad num inodes - %s"
msgstr ""
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1505
#, c-format
-msgid "bad num inodes - %s"
+msgid "bad revision level - %s"
msgstr ""
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1519
msgid "The -t option may only be used once"
msgstr ""
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1527
msgid "The -T option may only be used once"
msgstr ""
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1580 misc/mke2fs.c:2591
#, c-format
msgid "while trying to open journal device %s\n"
msgstr ""
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1586
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1592
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr ""
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1603
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr ""
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1613
msgid "filesystem"
msgstr ""
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1626 resize/main.c:367
msgid "while trying to determine filesystem size"
msgstr ""
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1632
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1639
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\tto re-read your partition table.\n"
msgstr ""
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1656
msgid "Filesystem larger than apparent device size."
msgstr ""
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1676
#, c-format
msgid "Failed to parse fs types list\n"
msgstr ""
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1730
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"\tin 32 bits using a blocksize of %d.\n"
msgstr ""
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1746
msgid "fs_types for mke2fs.conf resolution: "
msgstr ""
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1753
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1760
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1772
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1786
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr ""
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1802
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1819
msgid "while trying to determine hardware sector size"
msgstr ""
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1825
msgid "while trying to determine physical sector size"
msgstr ""
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1858
msgid "while setting blocksize; too small for device\n"
msgstr ""
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1863
#, c-format
msgid ""
"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
msgstr ""
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1881
+msgid "The cluster size may not be smaller than the block size.\n"
+msgstr ""
+
+#: misc/mke2fs.c:1887
+msgid "specifying a cluster size requires the bigalloc feature"
+msgstr ""
+
+#: misc/mke2fs.c:1906
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr ""
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1909
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr ""
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1911
#, c-format
msgid ""
"This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1930
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr ""
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1934
#, c-format
msgid ""
"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1968
+msgid "Can't support bigalloc feature without extents feature"
+msgstr ""
+
+#: misc/mke2fs.c:1975
+#, c-format
+msgid ""
+"\n"
+"Warning: the bigalloc feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Bigalloc for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1982 misc/tune2fs.c:740
+#, c-format
+msgid ""
+"\n"
+"Warning: the quota feature is still under development\n"
+"See https://ext4.wiki.kernel.org/index.php/Quota for more information\n"
+"\n"
+msgstr ""
+
+#: misc/mke2fs.c:1993
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:2002
msgid "blocks per group count out of range"
msgstr ""
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:2026
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr ""
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:2038
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr ""
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:2056
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr ""
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:2063
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr ""
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2077
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tor lower inode count (-N).\n"
msgstr ""
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2196
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
"\n"
msgstr ""
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2210
msgid "while trying to setup undo file\n"
msgstr ""
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2236
msgid "Discarding device blocks: "
msgstr ""
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2252
msgid "failed - "
msgstr ""
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2360
msgid "while setting up superblock"
msgstr ""
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2369
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr ""
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2452
#, c-format
msgid "unknown os - %s"
msgstr ""
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2504
#, c-format
msgid "Allocating group tables: "
msgstr ""
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2508
msgid "while trying to allocate filesystem tables"
msgstr ""
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2517
msgid ""
"\n"
"\twhile converting subcluster bitmap"
msgstr ""
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2560
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr ""
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2573
msgid "while reserving blocks for online resize"
msgstr ""
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2584 misc/tune2fs.c:645
msgid "journal"
msgstr ""
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2596
#, c-format
msgid "Adding journal to device %s: "
msgstr ""
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2603
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2608 misc/mke2fs.c:2640 misc/tune2fs.c:674 misc/tune2fs.c:688
#, c-format
msgid "done\n"
msgstr ""
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2617
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr ""
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2628
#, c-format
msgid "Creating journal (%u blocks): "
msgstr ""
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2636
msgid ""
"\n"
"\twhile trying to create journal"
msgstr ""
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2647 misc/tune2fs.c:451
#, c-format
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2652
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr ""
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2665
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2672
#, c-format
msgid ""
"\n"
"Warning, had trouble writing out superblocks."
msgstr ""
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2674
#, c-format
msgid ""
"done\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-#: misc/tune2fs.c:205
+#: misc/tune2fs.c:209
msgid "while trying to open external journal"
msgstr ""
-#: misc/tune2fs.c:210
+#: misc/tune2fs.c:214
#, c-format
msgid "%s is not a journal device.\n"
msgstr ""
-#: misc/tune2fs.c:225
+#: misc/tune2fs.c:229
msgid "Journal superblock not found!\n"
msgstr ""
-#: misc/tune2fs.c:236
+#: misc/tune2fs.c:240
msgid "Filesystem's UUID not found on journal device.\n"
msgstr ""
-#: misc/tune2fs.c:257
+#: misc/tune2fs.c:261
msgid ""
"Cannot locate journal device. It was NOT removed\n"
"Use -f option to remove missing journal device.\n"
msgstr ""
-#: misc/tune2fs.c:265
+#: misc/tune2fs.c:269
msgid "Journal removed\n"
msgstr ""
-#: misc/tune2fs.c:309
+#: misc/tune2fs.c:313
msgid "while reading bitmaps"
msgstr ""
-#: misc/tune2fs.c:317
+#: misc/tune2fs.c:321
msgid "while clearing journal inode"
msgstr ""
-#: misc/tune2fs.c:328
+#: misc/tune2fs.c:332
msgid "while writing journal inode"
msgstr ""
-#: misc/tune2fs.c:363
+#: misc/tune2fs.c:367
#, c-format
msgid "(and reboot afterwards!)\n"
msgstr ""
-#: misc/tune2fs.c:396
+#: misc/tune2fs.c:401
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:402
+#: misc/tune2fs.c:407
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
msgstr ""
-#: misc/tune2fs.c:411
+#: misc/tune2fs.c:416
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:419
+#: misc/tune2fs.c:424
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-#: misc/tune2fs.c:438
+#: misc/tune2fs.c:443
msgid ""
"The multiple mount protection feature can't\n"
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
-#: misc/tune2fs.c:456
+#: misc/tune2fs.c:461
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
msgstr ""
-#: misc/tune2fs.c:465
+#: misc/tune2fs.c:470
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
-#: misc/tune2fs.c:473
+#: misc/tune2fs.c:478
msgid "Error while reading bitmaps\n"
msgstr ""
-#: misc/tune2fs.c:482
+#: misc/tune2fs.c:487
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
msgstr ""
-#: misc/tune2fs.c:487
+#: misc/tune2fs.c:492
msgid "while reading MMP block."
msgstr ""
-#: misc/tune2fs.c:519
+#: misc/tune2fs.c:524
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-#: misc/tune2fs.c:530
+#: misc/tune2fs.c:535
msgid ""
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-#: misc/tune2fs.c:590
+#: misc/tune2fs.c:595
msgid ""
"\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
-#: misc/tune2fs.c:635
+#: misc/tune2fs.c:640
msgid "The filesystem already has a journal.\n"
msgstr ""
-#: misc/tune2fs.c:653
+#: misc/tune2fs.c:658
#, c-format
msgid ""
"\n"
"\twhile trying to open journal on %s\n"
msgstr ""
-#: misc/tune2fs.c:657
+#: misc/tune2fs.c:662
#, c-format
msgid "Creating journal on device %s: "
msgstr ""
-#: misc/tune2fs.c:665
+#: misc/tune2fs.c:670
#, c-format
msgid "while adding filesystem to journal on %s"
msgstr ""
-#: misc/tune2fs.c:671
+#: misc/tune2fs.c:676
msgid "Creating journal inode: "
msgstr ""
-#: misc/tune2fs.c:680
+#: misc/tune2fs.c:685
msgid ""
"\n"
"\twhile trying to create journal file"
msgstr ""
-#: misc/tune2fs.c:754
+#: misc/tune2fs.c:763
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr ""
-#: misc/tune2fs.c:776
+#: misc/tune2fs.c:785
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
msgstr ""
-#: misc/tune2fs.c:837
+#: misc/tune2fs.c:846
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr ""
-#: misc/tune2fs.c:861 misc/tune2fs.c:874
+#: misc/tune2fs.c:870 misc/tune2fs.c:883
#, c-format
msgid "bad mounts count - %s"
msgstr ""
-#: misc/tune2fs.c:890
+#: misc/tune2fs.c:899
#, c-format
msgid "bad error behavior - %s"
msgstr ""
-#: misc/tune2fs.c:917
+#: misc/tune2fs.c:926
#, c-format
msgid "bad gid/group name - %s"
msgstr ""
-#: misc/tune2fs.c:950
+#: misc/tune2fs.c:959
#, c-format
msgid "bad interval - %s"
msgstr ""
-#: misc/tune2fs.c:979
+#: misc/tune2fs.c:988
#, c-format
msgid "bad reserved block ratio - %s"
msgstr ""
-#: misc/tune2fs.c:994
+#: misc/tune2fs.c:1003
msgid "-o may only be specified once"
msgstr ""
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:1012
msgid "-O may only be specified once"
msgstr ""
-#: misc/tune2fs.c:1018
+#: misc/tune2fs.c:1027
#, c-format
msgid "bad reserved blocks count - %s"
msgstr ""
-#: misc/tune2fs.c:1047
+#: misc/tune2fs.c:1056
#, c-format
msgid "bad uid/user name - %s"
msgstr ""
-#: misc/tune2fs.c:1064
+#: misc/tune2fs.c:1073
#, c-format
msgid "bad inode size - %s"
msgstr ""
-#: misc/tune2fs.c:1071
+#: misc/tune2fs.c:1080
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr ""
-#: misc/tune2fs.c:1165
+#: misc/tune2fs.c:1174
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr ""
-#: misc/tune2fs.c:1170
+#: misc/tune2fs.c:1179
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: misc/tune2fs.c:1193
+#: misc/tune2fs.c:1202
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr ""
-#: misc/tune2fs.c:1208
+#: misc/tune2fs.c:1217
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr ""
-#: misc/tune2fs.c:1223
+#: misc/tune2fs.c:1232
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr ""
-#: misc/tune2fs.c:1229
+#: misc/tune2fs.c:1238
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr ""
-#: misc/tune2fs.c:1248
+#: misc/tune2fs.c:1257
#, c-format
msgid ""
"\n"
"\t^test_fs\n"
msgstr ""
-#: misc/tune2fs.c:1714
+#: misc/tune2fs.c:1723
msgid "Failed to read inode bitmap\n"
msgstr ""
-#: misc/tune2fs.c:1719
+#: misc/tune2fs.c:1728
msgid "Failed to read block bitmap\n"
msgstr ""
-#: misc/tune2fs.c:1736 resize/resize2fs.c:784
+#: misc/tune2fs.c:1745 resize/resize2fs.c:870
msgid "blocks to be moved"
msgstr ""
-#: misc/tune2fs.c:1739
+#: misc/tune2fs.c:1748
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr ""
-#: misc/tune2fs.c:1745
+#: misc/tune2fs.c:1754
msgid "Not enough space to increase inode size \n"
msgstr ""
-#: misc/tune2fs.c:1750
+#: misc/tune2fs.c:1759
msgid "Failed to relocate blocks during inode resize \n"
msgstr ""
-#: misc/tune2fs.c:1782
+#: misc/tune2fs.c:1791
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-#: misc/tune2fs.c:1809
+#: misc/tune2fs.c:1818
msgid "Couldn't allocate memory for tdb filename\n"
msgstr ""
-#: misc/tune2fs.c:1831
+#: misc/tune2fs.c:1840
#, c-format
msgid "while trying to delete %s"
msgstr ""
-#: misc/tune2fs.c:1841
+#: misc/tune2fs.c:1850
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
"\n"
msgstr ""
-#: misc/tune2fs.c:1910
+#: misc/tune2fs.c:1919
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-#: misc/tune2fs.c:1928
+#: misc/tune2fs.c:1937
#, c-format
msgid "The inode size is already %lu\n"
msgstr ""
-#: misc/tune2fs.c:1934
+#: misc/tune2fs.c:1943
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr ""
-#: misc/tune2fs.c:1981
+#: misc/tune2fs.c:1949
+#, c-format
+msgid "Invalid inode size %lu (max %d)\n"
+msgstr ""
+
+#: misc/tune2fs.c:1996
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:1987
+#: misc/tune2fs.c:2002
#, c-format
msgid "Setting current mount count to %d\n"
msgstr ""
-#: misc/tune2fs.c:1992
+#: misc/tune2fs.c:2007
#, c-format
msgid "Setting error behavior to %d\n"
msgstr ""
-#: misc/tune2fs.c:1997
+#: misc/tune2fs.c:2012
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:2002
+#: misc/tune2fs.c:2017
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr ""
-#: misc/tune2fs.c:2009
+#: misc/tune2fs.c:2024
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr ""
-#: misc/tune2fs.c:2016
+#: misc/tune2fs.c:2031
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr ""
-#: misc/tune2fs.c:2022
+#: misc/tune2fs.c:2037
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr ""
-#: misc/tune2fs.c:2029
+#: misc/tune2fs.c:2044
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr ""
-#: misc/tune2fs.c:2035
+#: misc/tune2fs.c:2050
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
msgstr ""
-#: misc/tune2fs.c:2042
+#: misc/tune2fs.c:2057
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
-#: misc/tune2fs.c:2047
+#: misc/tune2fs.c:2062
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
msgstr ""
-#: misc/tune2fs.c:2055
+#: misc/tune2fs.c:2070
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
-#: misc/tune2fs.c:2061
+#: misc/tune2fs.c:2076
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr ""
-#: misc/tune2fs.c:2093
+#: misc/tune2fs.c:2108
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr ""
-#: misc/tune2fs.c:2111
+#: misc/tune2fs.c:2126
msgid ""
"The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
-#: misc/tune2fs.c:2144
+#: misc/tune2fs.c:2159
msgid "Invalid UUID format\n"
msgstr ""
-#: misc/tune2fs.c:2157
+#: misc/tune2fs.c:2172
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
-#: misc/tune2fs.c:2165
+#: misc/tune2fs.c:2180
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-#: misc/tune2fs.c:2178
+#: misc/tune2fs.c:2193
#, c-format
msgid "Setting inode size %lu\n"
msgstr ""
-#: misc/tune2fs.c:2181
+#: misc/tune2fs.c:2196
#, c-format
msgid "Failed to change inode size\n"
msgstr ""
-#: misc/tune2fs.c:2192
+#: misc/tune2fs.c:2207
#, c-format
msgid "Setting stride size to %d\n"
msgstr ""
-#: misc/tune2fs.c:2197
+#: misc/tune2fs.c:2212
#, c-format
msgid "Setting stripe width to %d\n"
msgstr ""
-#: misc/tune2fs.c:2204
+#: misc/tune2fs.c:2219
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr ""
msgid "Begin pass %d (max = %lu)\n"
msgstr ""
-#: resize/main.c:259
+#: resize/main.c:154
#, c-format
-msgid "while opening %s"
+msgid ""
+"\n"
+"Resizing bigalloc file systems has not been fully tested. Proceed\n"
+"at your own risk! Use the force option if you want to go ahead anyway.\n"
+"\n"
msgstr ""
-#: resize/main.c:267
+#: resize/main.c:271
#, c-format
-msgid "while getting stat information for %s"
+msgid "while opening %s"
msgstr ""
-#: resize/main.c:331
+#: resize/main.c:279
#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
+msgid "while getting stat information for %s"
msgstr ""
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:337 resize/main.c:450
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
msgstr ""
-#: resize/main.c:348
+#: resize/main.c:341
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr ""
-#: resize/main.c:384
+#: resize/main.c:377
#, c-format
msgid "Invalid new size: %s\n"
msgstr ""
-#: resize/main.c:392
+#: resize/main.c:393
msgid "New size too large to be expressed in 32 bits\n"
msgstr ""
-#: resize/main.c:404
+#: resize/main.c:401
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr ""
-#: resize/main.c:410
+#: resize/main.c:407
msgid "Invalid stride length"
msgstr ""
-#: resize/main.c:434
+#: resize/main.c:431
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"\n"
msgstr ""
-#: resize/main.c:441
+#: resize/main.c:438
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
-#: resize/main.c:456
+#: resize/main.c:455
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/main.c:465
+#: resize/main.c:464
#, c-format
msgid "while trying to resize %s"
msgstr ""
-#: resize/main.c:468
+#: resize/main.c:467
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-#: resize/main.c:474
+#: resize/main.c:473
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
-#: resize/main.c:489
+#: resize/main.c:488
#, c-format
msgid "while trying to truncate %s"
msgstr ""
-#: resize/online.c:40
+#: resize/online.c:79
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
msgstr ""
-#: resize/online.c:44
+#: resize/online.c:83
msgid "On-line shrinking not supported"
msgstr ""
-#: resize/online.c:63
+#: resize/online.c:108
msgid "Filesystem does not support online resizing"
msgstr ""
-#: resize/online.c:70
+#: resize/online.c:117
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr ""
+
+#: resize/online.c:124
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+
+#: resize/online.c:132
#, c-format
msgid "while trying to open mountpoint %s"
msgstr ""
-#: resize/online.c:92 resize/online.c:116
-msgid "Permission denied to resize filesystem"
+#: resize/online.c:137
+#, c-format
+msgid "Old resize interface requested.\n"
msgstr ""
-#: resize/online.c:95 resize/online.c:122
-msgid "While checking for on-line resizing support"
+#: resize/online.c:156 resize/online.c:173
+msgid "Permission denied to resize filesystem"
msgstr ""
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
+#: resize/online.c:159 resize/online.c:179
+msgid "While checking for on-line resizing support"
msgstr ""
-#: resize/online.c:119
+#: resize/online.c:176
msgid "Kernel does not support online resizing"
msgstr ""
-#: resize/online.c:152
+#: resize/online.c:209
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr ""
-#: resize/online.c:162
+#: resize/online.c:219
msgid "While trying to extend the last group"
msgstr ""
-#: resize/online.c:216
+#: resize/online.c:273
#, c-format
msgid "While trying to add group #%d"
msgstr ""
-#: resize/online.c:227
+#: resize/online.c:284
#, c-format
msgid ""
"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
"this system.\n"
msgstr ""
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:369
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr ""
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:631
msgid "reserved blocks"
msgstr ""
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:875
msgid "meta-data blocks"
msgstr ""
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1837
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
msgstr ""
#: lib/ext2fs/ext2_err.c:11
-msgid "EXT2FS Library version 1.42.5"
+msgid "EXT2FS Library version 1.42.8"
msgstr ""
#: lib/ext2fs/ext2_err.c:12
msgid "MMP: open with O_DIRECT failed"
msgstr ""
+#: lib/ext2fs/ext2_err.c:156
+msgid "Block group descriptor size incorrect"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:157
+msgid "Inode checksum does not match inode"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:158
+msgid "Inode bitmap checksum does not match bitmap"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:159
+msgid "Extent block checksum does not match extent block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:160
+msgid "Directory block does not have space for checksum"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:161
+msgid "Directory block checksum does not match directory block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:162
+msgid "Extended attribute block checksum does not match block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:163
+msgid "Superblock checksum does not match superblock"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:164
+msgid "Unknown checksum algorithm"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:165
+msgid "MMP block checksum does not match MMP block"
+msgstr ""
+
+#: lib/ext2fs/ext2_err.c:166
+msgid "Ext2 file already exists"
+msgstr ""
+
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
msgstr ""
#.
msgid ""
msgstr ""
-"Project-Id-Version: GNU e2fsprogs 1.42.2\n"
+"Project-Id-Version: GNU e2fsprogs 1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-11 00:15+0200\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-19 21:47+0100\n"
"Last-Translator: Samuel Thibault <samuel.thibault@ens-lyon.org>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Bloc défectueux %u hors limite ; ignoré.\n"
msgstr "lors de la lecture de l'i-noeud des blocs défectueux"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "lors de la tentative d'ouverture de %s"
msgid "while trying popen '%s'"
msgstr "lors de la tentative d'ouverture via popen() « %s »"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
-msgstr ""
-"lors de la lecture de la liste des blocs défectueux à partir du fichier"
+msgstr "lors de la lecture de la liste des blocs défectueux à partir du fichier"
#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Usage : %s disque\n"
+msgstr "Utilisation : %s disque\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr ""
-"L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n"
+msgstr "L'ioctl BLKFLSBUF n'est pas supporté ! Impossible de vider les tampons.\n"
#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
-msgstr "Usage : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n"
+msgstr "Utilisation : %s [-F] [-I nombre_blocs_du_tampon_d_i_noeud] périphérique\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
msgstr "lors de l'ouverture de %s pour la vidange"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "lors de la tentative de vidange de %s"
#: e2fsck/pass1b.c:842
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr ""
-"erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu"
+msgstr "erreur interne : impossible de trouver l'enregistrement de bloc EA pour %llu"
#: e2fsck/pass1b.c:854
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr ""
-"erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u"
+msgstr "erreur interne : impossible de trouver l'enregistrement d'i-noeud EA pour %u"
#: e2fsck/pass1.c:476 e2fsck/pass2.c:782
msgid "reading directory block"
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"Le @S du @j est de type inconnu %N (non supporté).\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:236
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr ""
-"le drapeau needs_recovery n'est pas activé, mais le @j contient des "
-"données.\n"
+msgstr "le drapeau needs_recovery n'est pas activé, mais le @j contient des données.\n"
#. @-expanded: Clear journal
#: e2fsck/problem.c:241
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:246 e2fsck/problem.c:695
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-"le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. "
+msgstr "le @f a des drapeaux de fonctionnalités activés mais est un @f de version 0. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:251
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:276
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr ""
-"Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture "
-"seule.\n"
+msgstr "Le @S du @j a un drapeau de fonctionnalités inconnu sélectionné en lecture seule.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:281
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr ""
-"Le @S du @j contient un drapeau non reconnu de fonctionnalités "
-"incompatibles.\n"
+msgstr "Le @S du @j contient un drapeau non reconnu de fonctionnalités incompatibles.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:286
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
#: e2fsck/problem.c:312
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr ""
-"Le drapeau de récupération n'est pas activé dans le @S de secours, le @j "
-"sera donc quand même exécuté.\n"
+msgstr "Le drapeau de récupération n'est pas activé dans le @S de secours, le @j sera donc quand même exécuté.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:328
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas "
-"nul. "
+msgstr "Resize_inode n'est pas activé, mais l'@i de changement de taille n'est pas nul. "
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:333
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
#: e2fsck/problem.c:367
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr ""
-"Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. "
+msgstr "Le descripteur de @g %g a un nombre invalide d'i-noeuds non utilisés %b. "
#. @-expanded: Last group block bitmap uninitialized.
#: e2fsck/problem.c:372
#: e2fsck/problem.c:377
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr ""
-"La transaction %i du journal était corrompue, le rejeu a été abandonné.\n"
+msgstr "La transaction %i du journal était corrompue, le rejeu a été abandonné.\n"
#: e2fsck/problem.c:381
msgid "The test_fs flag is set (and ext4 is available). "
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"La date de dernier montage du @S est dans le futur.\n"
-"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal "
-"configurée) "
+"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"La date de dernière écriture du @S est dans le futur.\n"
-"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal "
-"configurée) "
+"\t(de moins d'un jour, probablement à cause d'une horloge matérielle mal configurée) "
#. @-expanded: One or more block group descriptor checksums are invalid.
#: e2fsck/problem.c:398
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr ""
-"Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. "
+msgstr "Le checksum d'un ou de plusieurs descripteurs de @g de @b est invalide. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
#: e2fsck/problem.c:403
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"Dissimulation des @is de @q.\n"
-"\n"
+msgstr "Dissimulation de l'@i de @q %i (%Q).\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:544
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr ""
-"%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. "
+msgstr "%b défectueux utilisé en tant que @b indirect d'@i des @bs défectueux. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr ""
-"Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs "
-"défectueux\n"
+msgstr "Le bloc %b dans les descripteurs de @gs primaires est dans la liste des @bs défectueux\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:583
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr ""
-"Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) "
-"défectueux.\n"
+msgstr "Avertissement : la copie des descripteurs de @gs du @g %g a un @b (%b) défectueux.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr ""
-"Erreur de programmation ? @b n°%b reclamé sans aucune raison dans "
-"process_bad_block.\n"
+msgstr "Erreur de programmation ? @b n°%b reclamé sans aucune raison dans process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:655
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr ""
-"Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur="
-"%N) : %m\n"
+msgstr "Erreur lors du stockage du compteur d'information d'@i (@i=%i, compteur=%N) : %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr ""
-"Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num="
-"%N) : %m\n"
+msgstr "Erreur lors du stockage de l'information du @b de @ds (@i=%i, @b=%b, num=%N) : %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
#: e2fsck/problem.c:685
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr ""
-"l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de "
-"@cion. "
+msgstr "l'@i %i a le drapeau de @cion qui est initialisé sur un @f sans support de @cion. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
#: e2fsck/problem.c:690
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:716
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr ""
-"des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont "
-"été repérés. "
+msgstr "des @is qui faisaient partie d'une liste chaînée d'orphelins corrompue ont été repérés. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:721
#: e2fsck/problem.c:795
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr ""
-"l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n"
+msgstr "l'@i %i a le drapeau INDEX_FL activé sur le @f sans support des htrees.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
#: e2fsck/problem.c:800
msgid ""
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
-msgstr ""
-"l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les "
-"métadonnées du @f. "
+msgstr "l'@i des @bs défectueux a un @b indirect (%b) qui entre en conflit avec les métadonnées du @f. "
#. @-expanded: Resize inode (re)creation failed: %m.
#: e2fsck/problem.c:831
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n"
+msgstr "l'@i %i a le drapeau EXTENTS_FL activé sur le @f sans support des extents.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n"
+msgstr "L'@i %i a un format d'extent, mais le @S n'a pas la fonctionnalité EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Exécution de passes additionnelles pour résoudre les problèmes de @bs "
-"réclamés par plus d'un @i...\n"
+"Exécution de passes additionnelles pour résoudre les problèmes de @bs réclamés par plus d'un @i...\n"
"Passe 1B : ré-examen pour les @bs @m\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1270
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr ""
-"le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé "
-"dans le @S.\n"
+msgstr "le @f contient de grands fichiers, mais n'a pas le drapeau LARGE_FILE activé dans le @S.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
#: e2fsck/problem.c:1275
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr ""
-"@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n"
+msgstr "@E référence l'@i %Di trouvé dans la zone d'i-noeuds non utilisés du @g %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
#: e2fsck/problem.c:1435
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr ""
-"ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de "
-"@d\n"
+msgstr "ext2fs_new_dir_@b : %m lors de la tentative de création d'un nouveau @b de @d\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
#: e2fsck/problem.c:1440
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr ""
-"ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /"
-"@l\n"
+msgstr "ext2fs_write_dir_@b : %m lors de la tentative d'écriture du @b de @d pour /@l\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
#: e2fsck/problem.c:1445
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1613
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
-msgstr ""
-"Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n"
+msgstr "Le décompte des @is libres est erroné pour le @g n°%g (%i, décompté=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1618
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr ""
-"Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n"
+msgstr "Le décompte des répertoires est erroné pour le @g n°%g (%i, décompté=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
#: e2fsck/problem.c:1623
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
#: e2fsck/problem.c:1628
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
-msgstr ""
-"Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n"
+msgstr "Le décompte des @bs libres est erroné pour le @g n°%g (%b, décompté=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
#: e2fsck/problem.c:1633
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°"
-"%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, "
-"%j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "ERREUR DE PROGRAMMATION : les points de terminaison (%b, %c) de @Bs du @f (n°%N) ne concordent pas avec les points de terminaison de @Bs calculés (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1679
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr ""
-"Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué "
-"BLOCK_UNINIT\n"
+msgstr "Un ou des @b(s) du @g %g en cours d'utilisation alors que le @g est marqué BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
#: e2fsck/problem.c:1684
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr ""
-"Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué "
-"INODE_UNINIT\n"
+msgstr "Un ou des @i(s) du @g %g en cours d'utilisation alors que le @g est marqué INODE_UNINIT\n"
#. @-expanded: Recreate journal
#: e2fsck/problem.c:1691
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Mise à jour de l'information de quota pour le type de quota %N"
#: e2fsck/problem.c:1815
#, c-format
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Usage : %s [-panyrcdfvtDFV] [-b super-bloc] [-B taille-de-bloc]\n"
+"Utilisation : %s [-panyrcdfvtDFV] [-b super-bloc] [-B taille-de-bloc]\n"
"\t\t[-I nombre-blocs-du-tampon-i-noeuds] [-P taille-i-noeud-processus]\n"
"\t\t[-l|-L fichiers-des-blocs-défectueux] [-C fd] [-j journal-externe]\n"
"\t\t[-E options-étendues] périphérique\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
" -L fichier-des-blocs-erronés\n"
" Définir la liste des blocs défectueux\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s : %u/%u fichiers (%0d.%d%% non contigüs), %llu/%llu blocs\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u i-noeud utilisé (%2.2f%%)\n"
+"%12u i-noeud utilisé (%2.2f%%, sur %u)\n"
msgstr[1] ""
"\n"
-"%8u i-noeuds utilisés (%2.2f%%)\n"
+"%12u i-noeuds utilisés (%2.2f%%, sur %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u i-noeud non contigu (%0d.%d%%)\n"
-msgstr[1] "%8u i-noeuds non contigus (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u fichier non contigu (%0d.%d%%)\n"
+msgstr[1] "%12u fichiers non contigus (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u i-noeud non contigu (%0d.%d%%)\n"
-msgstr[1] "%8u i-noeuds non contigus (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u répertoire non contigu (%0d.%d%%)\n"
+msgstr[1] "%12u répertoires non contigus (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " nombre d'i-noeuds avec des blocs ind/dind/tind : %u/%u/%u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Histogramme des profondeurs d'extents : "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogramme des profondeurs d'extents : "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu bloc utilisé (%2.2f%%)\n"
-msgstr[1] "%8llu blocs utilisés (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu bloc utilisé (%2.2f%%, sur %llu)\n"
+msgstr[1] "%12llu blocs utilisés (%2.2f%%, sur %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u bloc défectueux\n"
-msgstr[1] "%8u blocs défectueux\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u bloc défectueux\n"
+msgstr[1] "%12u blocs défectueux\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u fichier de grande taille\n"
-msgstr[1] "%8u fichiers de grande taille\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u fichier de grande taille\n"
+msgstr[1] "%12u fichiers de grande taille\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u fichier normal\n"
+"%12u fichier normal\n"
msgstr[1] ""
"\n"
-"%8u fichiers normaux\n"
+"%12u fichiers normaux\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u répertoire\n"
-msgstr[1] "%8u répertoires\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u répertoire\n"
+msgstr[1] "%12u répertoires\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u fichier de périphérique en mode caractère\n"
-msgstr[1] "%8u fichiers de périphérique en mode caractère\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u fichier de périphérique en mode caractère\n"
+msgstr[1] "%12u fichiers de périphérique en mode caractère\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u fichier de périphérique en mode bloc\n"
-msgstr[1] "%8u fichiers de périphérique en mode bloc\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u fichier de périphérique en mode bloc\n"
+msgstr[1] "%12u fichiers de périphérique en mode bloc\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifos\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifos\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u lien\n"
-msgstr[1] "%8u liens\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u lien\n"
+msgstr[1] "%12u liens\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u lien symbolique"
-msgstr[1] "%8u liens symboliques"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u lien symbolique"
+msgstr[1] "%12u liens symboliques"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u lien symbolique rapide)\n"
msgstr[1] " (%u liens symboliques rapides)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockets\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u fichier\n"
-msgstr[1] "%8u fichiers\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u fichier\n"
+msgstr[1] "%12u fichiers\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "lors de la détermination à savoir si %s est monté."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Avertissement ! %s est monté.\n"
+msgstr "Attention ! %s est %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s est %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Ne peut continuer, arrêt immédiat.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
"vous ***CAUSEREZ*** des dommages ***SÉVÈRES*** au système de fichiers.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Souhaitez-vous réellement continuer"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "vérification stoppée.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " contient un système de fichiers comportant des erreurs"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " n'a pas été démonté proprement"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
-msgstr ""
-" les fonctionnalités du superbloc primaire diffèrent de celles de la "
-"sauvegarde"
+msgstr " les fonctionnalités du superbloc primaire diffèrent de celles de la sauvegarde"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " a été monté %u fois sans avoir été vérifié"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
-msgstr ""
-" a une date de dernière vérification du système de fichiers dans le futur"
+msgstr " a une date de dernière vérification du système de fichiers dans le futur"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " a passé %u jours sans avoir été vérifié"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", vérification forcée.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s : propre, %u/%u fichiers, %llu/%llu blocs"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (vérification remise à plus tard : sur batterie)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (vérification lors du prochain montage)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (vérification dans %ld montages)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "ERREUR : ne peut ouvrir /dev/null (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Version EA invalide.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Option étendue inconnue : %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"\tligne n°%d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "ERREUR lors de la validation du descripteur de fichier %d : %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "Descripteur de fichier d'information de complétion invalide"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Seule une des options -p/-a, -n ou -y peut être spécifiée."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "L'option -t n'est pas supportée sur cette version d'e2fsck.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Impossible de résoudre « %s »"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
msgstr "Les options -n et -D sont incompatibles."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
msgstr "Les options -n et -c sont incompatibles."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
msgstr "Les options -n et -l/-L sont incompatibles."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Les options -c et -l/-L ne peuvent pas être utilisées simultanément.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"E2FSCK_JBD_DEBUG \"%s\" n'est pas un entier\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"Argument non numérique invalide pour -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"L'intervale de protection contre montage multiple (MMP) est de %u secondes "
-"et temps total d'attente est de %u seconds. Veuillez patienter...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "L'intervale de protection contre montage multiple (MMP) est de %u secondes et temps total d'attente est de %u seconds. Veuillez patienter...\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "lors de la vérification du block MMP"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation "
-"sur aucun noeud, lancer:\n"
+"Si vous êtes sûr(e) que le système de fichiers n'est en cours d'utilisation sur aucun noeud, lancer:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Erreur : la version de la bibliothèque ext2fs est périmée !\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "lors de la tentative d'initialisation du programme"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tUtilisation de %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
msgstr "a besoin d'un terminal pour des réparations en mode interactif"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s : %s tentons d'utiliser les blocs de sauvetage...\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Superbloc invalide,"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Les descripteurs de groupe semblent en mauvais état..."
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s : %s lors de l'utilisation des blocs de sauvetage"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s : retour au superblock originel\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"corrompu)\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Peut-être cette partition est-elle de taille zéro ?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Vous devez avoir un accès %s au système de fichiers ou être root\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
msgstr "Périphérique peut-être inexistent ou pour le swap ?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
msgstr ""
"Système de fichier monté ou ouvert en mode exclusif par un autre\n"
"programme ?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Périphérique peut-être inexistant ?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
"Disque protégé en écriture ; utilisez l'option -n pour effectuer une\n"
"vérification du périphérique en lecture seule.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
msgstr "Veuillez obtenir une version plus récente d'e2fsck !"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "lors de la vérification du journal ext3 pour %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Avertissement : saute la récupération du journal puisque l'on\n"
"procède à l'examen d'un système de fichiers en lecture seule.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "impossible d'initialiser les drapeaux du superbloc sur %s\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "lors de la récupération du journal ext3 de %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s a une(des) fonctionnalité(s) non supportée(s) :"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s : avertissement : le support de la compression est expérimental.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"%s : e2fsck n'est pas compilé avec le support pour HTREE,\n"
"\tmais le système de fichiers %s a des répertoires HTREE.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s : %s lors de la lecture de l'i-noeud des blocs défectueux\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Cela ne semble pas être bien, mais on va quand même essayer...\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Création du journal (%d blocs) : "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr "Complété.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 "
-"***\n"
+"*** le journal a été re-créé - le système de fichiers est de nouveau ext3 ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Re-démarrons e2fsck depuis le début...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "lors de la réinitialisation du contexte"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s : e2fsck a été annulé.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "arrêté"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** LE SYSTÈME DE FICHIERS A ÉTÉ MODIFIÉ *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s : ***** RÉ-AMORCER LINUX *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s : **ATTENTION : le système de fichiers contient encore des erreurs**\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
-msgstr ""
-"lors de l'initialisation de l'information de checksum du groupe de blocs"
+msgstr "lors de l'initialisation de l'information de checksum du groupe de blocs"
#: e2fsck/util.c:189 misc/util.c:70
msgid "yY"
#: e2fsck/util.c:302
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr ""
-"lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds "
-"pour %s"
+msgstr "lors d'une nouvelle tentative d'écriture de bitmaps de blocs et d'i-noeuds pour %s"
#: e2fsck/util.c:314
#, c-format
msgstr "lors de l'allocation d'un tampon de mise à zéro"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le "
-"déroulement de fsck.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "INCOHÉRENCE INATTENDUE : le système de fichiers a été modifié pendant le déroulement de fsck.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Usage : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o fichier_de_sortie]\n"
+"Utilisation : %s [-b taille_de_bloc] [-i fichier_d_entrée] [-o fichier_de_sortie]\n"
" [-svwnf] [-c blocs_à_la_fois] [-d facteur_délai_entre_lectures]\n"
" [-e max_blocks_défectueux] [-p nombre_de_passes]\n"
" [-t motif_de_test [-t motif_de_test [...]]]\n"
#: misc/badblocks.c:777
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr ""
-"Vérification des blocs défectueux (test non destructif de lecture-écriture)\n"
+msgstr "Vérification des blocs défectueux (test non destructif de lecture-écriture)\n"
#: misc/badblocks.c:784
msgid ""
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Usage : %s [-RVf] [-+=AacDdeijsSu] [-v version] fichiers...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Utilisation : %s [-RVf] [-+=AaCcDdeijsSu] [-v version] fichiers...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "version erronée - %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "lors de l'évaluation par stat() de %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "lors de la lecture des drapeaux sur %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr "La suppression du drapeau extent n'est pas supportée sur %s"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Drapeaux de %s initialisés comme "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "lors de l'initialisation des drapeaux sur %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version de %s initialisée à %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "lors de l'initialisation de la version sur %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Ne peut allouer une variable de chemin dans chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
msgstr "= est incompatible avec - et +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
msgstr "Vous devez utiliser « -v », = - ou +\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr ""
-"Usage : %s [-bfhixV] [-o superblock=<nombre>] [-o blocksize=<nombre>] "
-"périphérique\n"
+msgstr "Utilisation : %s [-bfhixV] [-o superblock=<nombre>] [-o blocksize=<nombre>] périphérique\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
"Début du journal : %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Usagers du journal : %s\n"
+msgstr "Numéro erreur du journal: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
msgid "Journal users: %s\n"
msgstr "Usagers du journal : %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Impossible d'allouer de la mémoire pour analyser les options !\n"
"\tblocksize=<taille de bloc>\n"
"\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tUtilisation de %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
#: misc/e2image.c:87
#, c-format
msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Usage : %s [-rsIQ] périphérique fichier_image\n"
+msgstr "Utilisation : %s [-rsIQ] périphérique fichier_image\n"
#: misc/e2image.c:135
#, c-format
#: misc/e2image.c:1341
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr ""
-"lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)"
+msgstr "lors de l'essai de conversion de l'image qcow2 (%s) en image brute (%s)"
#: misc/e2label.c:58
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label : n'est pas un système de fichiers ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Avertissement : étiquette trop longue, sera tronquée.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label : erreur lors de l'écriture du superbloc\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Usage : e2label périphérique [nouvelle_étiquette]\n"
+msgstr "Utilisation : e2label périphérique [nouvelle_étiquette]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Usage : %s <fichier transaction> <système de fichiers>\n"
+msgstr "Utilisation : %s <fichier transaction> <système de fichiers>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
-msgstr ""
-"e2undo ne devrait être lancé que sur un système de fichiers non monté\n"
+msgstr "e2undo ne devrait être lancé que sur un système de fichiers non monté\n"
#: misc/e2undo.c:184
#, c-format
#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
-msgstr ""
-"Avertissement... %s pour le périphérique %s s'est terminé avec le signal "
-"%d.\n"
+msgstr "Avertissement... %s pour le périphérique %s s'est terminé avec le signal %d.\n"
#: misc/fsck.c:622
#, c-format
#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
-msgstr ""
-"Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n"
+msgstr "Impossible d'allouer de la mémoire pour les types de systèmes de fichiers\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
-msgstr ""
-"%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un "
-"numéro de passe fsck non nul\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgstr "%s : saut de la mauvaise ligne de /etc/fstab : montage « bind » avec un numéro de passe fsck non nul\n"
#: misc/fsck.c:911
#, c-format
msgstr "--en attente-- (passe %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Usage : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] "
-"[options_sys_fichiers] [sys_fichiers...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Utilisation : fsck [-AMNPRTV] [ -C [ fd ] ] [-t type_sys_fichiers] [options_sys_fichiers] [sys_fichiers...]\n"
#: misc/fsck.c:1120
#, c-format
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Usage : %s [-RVadlv] [fichiers...]\n"
+msgstr "Utilisation : %s [-RVadlv] [fichiers...]\n"
#: misc/lsattr.c:84
#, c-format
msgid "While reading version on %s"
msgstr "Lors de la lecture de la version sur %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
-"Usage : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-"
-"cluster]\n"
+"Utilisation : %s [-c|-l nom-de-fichier] [-b taille-de-bloc] [-C taille-de-cluster]\n"
"\t[-i octets-par-i-noeud] [-I taille-des-i-noeuds]\n"
"\t[-J options-de-journal] [-G taille-groupe-flex] [-N nombre-d-i-noeuds]\n"
"\t[-m pourcentage-de-blocs-réservés]\n"
"\t[-o système-d-exploitation-de-création] [-g blocs-par-groupe]\n"
"\t[-L étiquette-du-volume] [-M dernier-répertoire-monté]\n"
"\t[-O fonctionnalité[,...]] [-r révision-du-système-de-fichiers]\n"
-"\t[-E option-étendue[,...]] [-t type-système-de-fichiers] [-T type-"
-"d'utilisation]\n"
+"\t[-E option-étendue[,...]] [-t type-système-de-fichiers] [-T type-d'utilisation]\n"
"\t[-U UUID] [-jnqvFKSV] périphérique [nombre-de-blocs]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Exécution de la commande : %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
msgstr "durant la tentative d'exécution de « %s »"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
-msgstr ""
-"lors du traitement de la liste des blocs défectueux à partir du programme"
+msgstr "lors du traitement de la liste des blocs défectueux à partir du programme"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr ""
-"Bloc %d dans la zone du descripteur de superbloc/groupe primaire est "
-"défectueux.\n"
+msgstr "Bloc %d dans la zone du descripteur de superbloc/groupe primaire est défectueux.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
-msgstr ""
-"Les blocs de %u à %u doivent être en bon état pour générer le système de "
-"fichiers.\n"
+msgstr "Les blocs de %u à %u doivent être en bon état pour générer le système de fichiers.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Arrêt immédiat...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbloc %u contiennent des blocs défectueux.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "lors du marquage des blocs défectueux en tant qu'utilisés"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Écriture des tables d'i-noeuds : "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"\n"
"Impossible d'écrire %d blocs dans la table d'i-noeuds débutant à %llu : %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "complété \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "lors de la création du répertoire racine"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "lors de la lecture de l'i-noeud racine"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "lors de l'initialisation de la propriété de l'i-noeud racine"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "lors de la création de /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "lors de la recherche de /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "lors de l'extension de /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "lors de l'initialisation de l'i-noeud des blocs défectueux"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Mémoire épuisée lors de l'effacement des secteurs %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Avertissement : impossible de lire le bloc 0 : %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Avertissement : impossible d'effacer le secteur %d : %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "lors de l'initialisation du journal du superbloc"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Mise à zéro du périphérique de journal : "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
-msgstr ""
-"lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)"
+msgstr "lors de la mise à zéro du périphérique de journal (bloc %llu, compte %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "lors de l'écriture du superbloc de journal"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"Avertissement : %llu blocs inutilisés.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Étiquette de système de fichiers=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "Type de système d'exploitation : %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Taille de bloc=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Taille de cluster=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Taille de fragment=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "« Stride » = %u blocs, « Stripe width » = %u blocs\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u i-noeuds, %llu blocs\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu blocs (%2.2f%%) réservés pour le super utilisateur\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "Premier bloc de données=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Nombre maximum de blocs du système de fichiers=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u groupes de blocs\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u groupe de bloc\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u blocs par groupe, %u clusters par groupe\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blocs par groupe, %u fragments par groupe\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u i-noeuds par groupe\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Superblocs de secours stockés sur les blocs : "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "mmp_update_interval invalide : %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Paramètre « stride » invalide : %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Paramètre « stripe-width » invalide : %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Paramètre de changement de taille invalide : %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
msgstr ""
"La taille maximale de l'agrandissement doit être plus grande que la taille\n"
"du système de fichiers.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Le changement de taille en ligne n'est pas supportée avec les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Paramètre de type de quota invalide : %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\tquotatype=<usr OU grp>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Attention : le « stripe-width » RAID %u n'est pas multiple impair du "
-"« stride » %u.\n"
+"Attention : le « stripe-width » RAID %u n'est pas multiple impair du « stride » %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"\t(%s, ligne n°%d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Jeu d'options de système de fichiers invalide : %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Jeu d'options pour le montage invalide : %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"Votre mke2fs.conf ne précise pas le type de système de fichiers de\n"
"%s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"Il vous faut sans doute installer un fichier mke2fs.conf mis à jour.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Arrêt immédiat...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Avertissement : le fs_type %s n'est pas défini dans mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Impossible d'allouer de la mémoire pour un nouveau chemin.\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "N'a pu initialiser le profilage correctement (erreur : %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "taille invalide des blocs - %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr ""
"Avertissement : la taille de bloc %d n'est pas utilisable\n"
"sur la plupart des systèmes.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "taille de cluster invalide - %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "Nombre de blocs par groupe illégal"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "le nombre de blocs par groupe doit être un multiple de 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Nombre illégal pour la taille flex_bg"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "La taille flex_bg doit être une puissance de 2"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "taux d'i-noeuds invalides %s (min %d/max %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. "
-"Utiliser plutôt l'option étendue « -E nodiscard » !\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Avertissement : l'option -K est dépréciée et ne devrait plus être utilisée. Utiliser plutôt l'option étendue « -E nodiscard » !\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr "dans malloc pour bad_blocks_filename"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "pourcentage de blocs réservés invalide - %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "mauvais numéro de version - %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "taille d'i-noeud invalide - %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "mauvais nombre d'i-noeuds - %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "L'option -t ne peut être spécifiée qu'une fois"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "L'option -T ne peut être spécifiée qu'une fois"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "lors de la tentative d'ouverture du périphérique de journal %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr ""
"la taille de bloc du périphérique de journal (%d) est plus petit que la\n"
"taille de blocs minimum %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Utilisation de la taille de bloc du périphérique de journal : %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "blocs '%s' invalides sur le périphérique %s"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "système de fichiers"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
-msgstr ""
-"lors de la tentative de détermination de la taille du système de fichiers"
+msgstr "lors de la tentative de détermination de la taille du système de fichiers"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Ne peut déterminer la taille du périphérique ; vous devez spécifier\n"
"la taille du système de fichiers\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\toccupée et utilisée. Vous devez ré-amorcer pour forcer une\n"
"\trelecture de la table de partitions.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "Système de fichiers plus grand que la taille apparente du périphérique"
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Échec du parcours de la liste de types de systèmes de fichiers\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%s: La taille (0x%llx blocs) du périphérique %s est trop grande pour\n"
"\tpouvoir être exprimée sur 32 bits en utilisant une taille de bloc de %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "résolution de fs_types pour mke2fs.conf : "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Fonctionnalités du système de fichiers non supportées par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Les superblocs creux ne sont pas supportés par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"Les journaux ne sont pas supportés par les systèmes de\n"
"fichiers de version 0\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "pourcentage de blocs réservés invalide - %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"Les fonctionnalités resize_inode et meta_bg ne sont pas compatibles.\n"
"Elles ne peuvent pas être activées simultanément.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
-msgstr ""
-"lors de la tentative de détermination de la taille matérielle de secteur"
+msgstr "lors de la tentative de détermination de la taille matérielle de secteur"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "lors de la tentative de détermination de la taille de secteur matériel"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
-msgstr ""
-"lors de la définition de la taille de bloc ; trop petite pour le "
-"périphérique\n"
+msgstr "lors de la définition de la taille de bloc ; trop petite pour le périphérique\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Avertissement : la taille de bloc %d spécifiée est plus petite que la taille "
-"de secteur physique %d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Avertissement : la taille de bloc %d spécifiée est plus petite que la taille de secteur physique %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "attention : Impossible d'obtenir la géométrie du périphérique %s\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "L'alignement de %s est décalé de %lu octets.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr ""
-"Cela peut induire de très mauvaises performances, il est suggéré de (re)-"
-"partitionner.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr "Cela peut induire de très mauvaises performances, il est suggéré de (re)-partitionner.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "blocs de %d octets trop gros pour le système (max %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
"Avertissement : blocs de %d octets trop gros pour le système (max %d),\n"
"poursuite forcée\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"la réservation de blocs de changement de taille en ligne n'est pas\n"
"supportée sur un système de fichiers non creux"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
msgstr "compteur de blocs par groupe hors limite"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr ""
-"La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc "
-"pas être spécifiée"
+msgstr "La fonctionnalité flex_bg n'est pas activée, la taille flex_bg ne peut donc pas être spécifiée"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "taille d'i-noeud invalide %d (min %d/max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "trop d'i-noeuds (%llu), augmenter le ratio d'i-noeuds ?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "trop d'i-noeuds (%llu), indiquer < 2^32 i-noeuds"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tsystème de fichiers avec %llu blocs, indiquer un ratio_i_noeud (-i)\n"
"\tplus grand ou un nombre d'i-noeud plus petit (-N).\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Écrasement du système de fichiers existant ; cela peut être défait en "
-"utilisant la commande :\n"
+"Écrasement du système de fichiers existant ; cela peut être défait en utilisant la commande :\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
msgstr "lors de la tentative de mise en place du fichier d'annulation\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Rejet des blocs de périphérique : "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "échoué - "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "lors de l'initialisation du superbloc"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"L'effacement a réussi et retournera des 0s - saut de l'effacement de la "
-"table des i-noeuds\n"
+msgstr "L'effacement a réussi et retournera des 0s - saut de l'effacement de la table des i-noeuds\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "système d'exploitation inconnu - %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Allocation des tables de groupe : "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "lors de la tentative d'allocation des tables de systèmes de fichiers"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\tlors de la conversion du bitmap de sous-cluster"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "lors de la mise à zéro du bloc %llu à la fin du système de fichiers"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "lors de la réservation de blocs pour un changement de taille en ligne"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "journal"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Ajout du journal au périphérique %s : "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
"\tlors de la tentative d'ajout d'un journal au périphérique %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "complété\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "Pas de création de journal en mode super-seul\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Création du journal (%u blocs) : "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
"\tlors de la tentative de création du journal"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Erreur lors de l'activation de la fonctionnalité de protection contre le "
-"montage multiple."
+"Erreur lors de l'activation de la fonctionnalité de protection contre le montage multiple."
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr ""
-"La protection contre le montage multiple est activée avec un intervale de "
-"mise à jour de %d secondes.\n"
+msgstr "La protection contre le montage multiple est activée avec un intervale de mise à jour de %d secondes.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr ""
"Écriture des superblocs et de l'information de comptabilité du système de\n"
"fichiers : "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Attention, des problèmes sont survenus lors de l'écriture des superblocs."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
#: misc/mklost+found.c:50
#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Usage : mklost+found\n"
+msgstr "Utilisation : mklost+found\n"
#: misc/partinfo.c:41
#, c-format
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Usage : %s périphérique...\n"
+"Utilisation : %s périphérique...\n"
"\n"
"Imprime l'information de partition pour chaque périphérique indiqué.\n"
"Par exemple : %s /dev/hda\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Usage : %s [-c limite-maximale-de-montage]\n"
+"Utilisation : %s [-c limite-maximale-de-montage]\n"
"\t[-e comportement-en-cas-d-erreur] [-g groupe]\n"
"\t[-i intervalle[d|m|w]] [-j] [-J options-journal] [-l]\n"
"\t[-m pourcentage-de-blocs-réservés] [-o [^]options-de-montage[,...]]\n"
#: misc/tune2fs.c:456
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr ""
-"La protection contre le montage multiple a été activée avec un intervale de "
-"mise à jour de %ds.\n"
+msgstr "La protection contre le montage multiple a été activée avec un intervale de mise à jour de %ds.\n"
#: misc/tune2fs.c:465
msgid ""
#: misc/tune2fs.c:482
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr ""
-"Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : "
-"%x\n"
+msgstr "Le numéro magique dans le bloc MMP ne correspond pas. attendu : %x, actuel : %x\n"
#: misc/tune2fs.c:487
msgid "while reading MMP block."
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
-msgstr ""
-"Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n"
+msgstr "Effacer le drapeau flex_bg rendrait le système de fichiers incohérent.\n"
#: misc/tune2fs.c:530
msgid ""
"\n"
"\tlors de la tentative de création du fichier journal"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr ""
-"Impossible d'allouer de la mémoire pour analyser les options de quota !\n"
+msgstr "Impossible d'allouer de la mémoire pour analyser les options de quota !\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"Une ou des options de quota spécifiées sont erronées.\n"
"\n"
-"Les options de quota suivantes sont disponibles (les fournir séparées par "
-"des virgules):\n"
+"Les options de quota suivantes sont disponibles (les fournir séparées par des virgules):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Ne peut analyser la spécification de date/heure : %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "compteur de montages erroné - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "mauvais comportement en cas d'erreur - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "nom gid/groupe erroné - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "intervalle erroné - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "taux de blocs réservés erroné - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
msgstr "-o ne peut être spécifié qu'une fois"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
msgstr "-O ne peut être spécifié qu'une fois"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "compteur de blocs réservés erroné - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "nom utilisateur/uid erroné - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "taille d'i-noeud invalide - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "La taille des i-noeuds doit être une puissance de deux - %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval trop grand : %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Définition de l'intervale de mise à jour de la protection contre les "
-"montages multiples à %lu seconde\n"
-msgstr[1] ""
-"Définition de l'intervale de mise à jour de la protection contre les "
-"montages multiples à %lu secondes\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu seconde\n"
+msgstr[1] "Définition de l'intervale de mise à jour de la protection contre les montages multiples à %lu secondes\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Paramètre « stride RAID » invalide : %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Paramètre « stripe-width RAID » invalide : %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Algorithme de hachage invalide : %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Définition de l'algorithme de hachage par défaut à %s (%d)\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
msgstr "Échec de lecture du bitmap d'i-noeuds\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Échec de lecture du bitmap de bloc\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "blocs à déplacer"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr ""
-"N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-"
-"noeud \n"
+msgstr "N'a pu allouer de bitmap de blocs lors d'une augmentation de taille d'i-noeud \n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Pas assez d'espace pour augmenter la taille d'i-noeud \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
msgstr "N'a pu reloger des blocs lors d'un changement de taille d'i-noeud \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
"Erreur lors du changement de la taille des i-noeuds.\n"
"Exécutez e2undo pour défaire les changements du système de fichiers. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Impossible d'allouer de la mémoire pour le nom du fichier tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "lors de la tentative d'effacement de %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en "
-"lançant:\n"
+"Le numéro magique du bloc MMP est incorrect. Essayer de le corriger en lançant:\n"
"'e2fsck -f %s'\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "La taille des i-noeuds est déjà %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "La réduction de la taille des i-noeuds n'est pas supportée\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Définition du nombre maximal de montages à %d\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Définition du nombre courant de montages à %d\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Définition du comportement en cas d'erreur à %d\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Définition du gid des blocs réservés à %lu\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "l'intervalle entre les vérifications est trop grand (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Définition de l'intervalle de vérification à %lu secondes\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Définition du pourcentage de blocs réservés à %g%% (%llu blocs)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "le nombre de blocs réservés est trop grand (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Définition du nombre de blocs réservés à %llu\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Le système de fichiers a déjà des superblocs creux.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"Drapeau de superbloc creux activé. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"\n"
"La suppression du superflag creux n'est pas supportée.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr ""
"Définition de la date de la dernière vérification du système de\n"
"fichiers à %s\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Définition de l'uid de blocs réservés à %lu\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
-msgstr ""
-"Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n"
+msgstr "Erreur lors de l'utilisation de clear_mmp. Elle doit être utilisée avec -f\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr ""
-"La fonctionalité de quota ne peut être changée que lorsque le système de "
-"fichiers est démonté.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr "La fonctionalité de quota ne peut être changée que lorsque le système de fichiers est démonté.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Format UUID invalide\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"La taille des i-noeuds ne peut être changée que lorsque le système\n"
"de fichiers et démonté.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
"Changer la taille des i-noeuds n'est pas supporté pour les systèmes de\n"
"fichiers avec la fonctionalité flex_bg activée.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Définition de la taille des i-noeuds à %lu\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "N'a pu changer la taille d'i-noeud \n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Définition de la taille de « stride » à %d\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Définition de la taille du « stripe width » à %d\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Définition des options de montage étendues par défaut à « %s »\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Usage : %s [-d] [-p fichier-pid] [-s chemin-socket] [-T délai]\n"
+msgstr "Utilisation : %s [-d] [-p fichier-pid] [-s chemin-socket] [-T délai]\n"
#: misc/uuidd.c:50
#, c-format
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Usage : %s [-r] [-t]\n"
+msgstr "Utilisation : %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Usage : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] périphérique\n"
+"Utilisation : %s [-d drapeaux_de_debug] [-f] [-F] [-M] [ -P] [-p] périphérique\n"
" [nouvelle_taille]\n"
"\n"
msgid "while getting stat information for %s"
msgstr "lors de la récupérartion de l'état de %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s : La combinaison des fonctionnalités\n"
-"\tflex_bg et !resize_inode n'est pas supportée par resize2fs.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"SVP exécutez « e2fsck -f %s » d'abord.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Taille minimale estimée du système de fichiers : %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "taille d'i-noeud invalide - %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
msgstr "La nouvelle taille est trop grande pour être exprimée sur 32 bits\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "La nouvelle taille est plus petite que le minimum (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "Longueur « stride » invalide"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"Vous avez demandé une nouvelle taille de %llu blocs.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"Le système de fichiers a déjà %llu blocs. Rien à modifier !\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
#, c-format
-msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
msgstr ""
-"En train de redimensionner le système de fichiers sur %s à %llu (%dk) "
-"blocs.\n"
+"%s : La combinaison des fonctionnalités\n"
+"\tflex_bg et !resize_inode n'est pas supportée par resize2fs.\n"
+
+#: resize/main.c:463
+#, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgstr "En train de redimensionner le système de fichiers sur %s à %llu (%dk) blocs.\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "lors de la tentative de changement de taille de %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"Veuillez lancer « e2fsck -fy %s » pour corriger le système de fichiers\n"
"après l'opération de changement de taille avortée.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"Le système de fichiers %s a maintenant une taille de %llu blocs.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "lors de la troncature de %s"
#: resize/online.c:40
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr ""
-"Le système de fichiers de %s est monté sur %s ; le changement de taille doit "
-"être effectué en ligne\n"
+msgstr "Le système de fichiers de %s est monté sur %s ; le changement de taille doit être effectué en ligne\n"
#: resize/online.c:44
msgid "On-line shrinking not supported"
msgstr "La réduction en ligne n'est pas supportée"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
-msgstr ""
-"Le système de fichiers ne supporte pas le changement de taille en ligne"
+msgstr "Le système de fichiers ne supporte pas le changement de taille en ligne"
+
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Pas assez de blocs gdt réservés pour un changement de taille"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Le noyau ne sait pas retailler un système de fichiers d'une telle taille"
-#: resize/online.c:70
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "lors de la tentative d'ouverture du point de montage %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Permission de redimensionner le système de fichiers refusée"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Lors de la vérification du support de changement de taille en ligne"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr ""
-"Le noyau ne sait pas retailler un système de fichiers d'une telle taille"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "Le noyau ne supporte pas le changement de taille en ligne"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr ""
-"En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) "
-"blocs.\n"
+msgstr "En train d'effectuer un changement de taille en ligne de %s vers %llu (%dk) blocs.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Lors de la tentative d'étendre le dernier groupe"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Lors de la tentative d'ajout du groupe numéro %d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"Le système de fichiers de %s est monté sur %s, et le changement de taille en "
-"ligne n'est pas supporté sur ce système.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "Le système de fichiers de %s est monté sur %s, et le changement de taille en ligne n'est pas supporté sur ce système.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "le nombre d'i-noeuds (%llu) doit être plus petit que %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "blocs réservés"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "blocs de métadonnées"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
-msgstr ""
-"Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n"
+msgstr "Ne devrait jamais se produire : i-noeud de redimensionnement corrompu !\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "Librairie EXT2FS version 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "Librairie EXT2FS version 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:23
msgid "Wrong magic number for directory block list structure"
-msgstr ""
-"Numéro magique invalide pour la structure de liste de bloc de répertoire"
+msgstr "Numéro magique invalide pour la structure de liste de bloc de répertoire"
#: lib/ext2fs/ext2_err.c:24
msgid "Wrong magic number for icount structure"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr ""
-"Tentative d'écriture dans un système de fichiers ouvert en lecture seule"
+msgstr "Tentative d'écriture dans un système de fichiers ouvert en lecture seule"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr ""
-"Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds"
+msgstr "Descripteur de groupe corrompu : bloc invalide pour le bitmap d'i-noeuds"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr ""
-"Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds"
+msgstr "Descripteur de groupe corrompu : bloc invalide pour la table d'i-noeuds"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr ""
-"La tentative de lecture d'un bloc depuis le système de fichiers a produit "
-"une lecture tronquée"
+msgstr "La tentative de lecture d'un bloc depuis le système de fichiers a produit une lecture tronquée"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr ""
-"La tentative d'écriture d'un block vers le système de fichiers a produit une "
-"écriture tronquée"
+msgstr "La tentative d'écriture d'un block vers le système de fichiers a produit une écriture tronquée"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr ""
-"Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle"
+msgstr "Tentative de truquage de la fin du bitmap de blocs au-delà de la fin réelle"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr ""
-"Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle"
+msgstr "Tentative de truquage de la fin du bitmap d'i-noeuds au-delà de la fin réelle"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr ""
-"Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non "
-"supportées"
+msgstr "Le système de fichiers a une(des) fonctionnalité(s) en lecture seule non supportées"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr ""
-"Tentative de modification d'un plan de blocs via un itérateur de blocs en "
-"lecture seule"
+msgstr "Tentative de modification d'un plan de blocs via un itérateur de blocs en lecture seule"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Ne peut pas vérifier si le système de fichiers est monté à cause du manque "
-"de fichier mtab"
+msgstr "Ne peut pas vérifier si le système de fichiers est monté à cause du manque de fichier mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr ""
-"Le système de fichier est trop grand pour utiliser l'ancien style de bitmap"
+msgstr "Le système de fichier est trop grand pour utiliser l'ancien style de bitmap"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
#~ "alors que le @B d'@i est en cours d'utilisation.\n"
#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-#~ msgstr ""
-#~ "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n"
+#~ msgstr "L'@i %i ne devrait pas avoir EOFBLOCKS_FL défini (taille %Is, lblk %r)\n"
#~ msgid "Couldn't determine journal size"
#~ msgstr "N'a pu déterminer la taille du journal"
#~ msgstr "<L'i-noeud des données ACL>"
#~ msgid "short write (only %d bytes) for writing image header"
-#~ msgstr ""
-#~ "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image"
+#~ msgstr "écriture écourtée (seulement %d octets) pour l'écriture de l'en-tête image"
#~ msgid "invalid fragment size - %s"
#~ msgstr "taille de fragment invalide - %s"
#~ msgstr "Le journal N'A PAS été enlevé\n"
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-#~ msgstr ""
-#~ "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j "
-#~ "ext3.\n"
+#~ msgstr "Le @S ne semble pas avoir le drapeau has_journal, mais a un %s de @j ext3.\n"
#~ msgid "Error while deleting extent: %m\n"
#~ msgstr "Erreur lors de la suppression de l'extent : %m\n"
#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
-#~ msgstr ""
-#~ "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n"
+#~ msgstr "Recréer le journal pour rendre le système de fichiers ext3 de nouveau ?\n"
#~ msgid "bad block size - %s"
#~ msgstr "taille des blocs défectueux - %s"
#~ msgid "while retrying to write block bitmaps for %s"
-#~ msgstr ""
-#~ "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s"
+#~ msgstr "lors d'une nouvelle tentative d'écriture des bitmaps de blocs pour %s"
#~ msgid "%s failed for %s: %s\n"
#~ msgstr "%s a échoué pour %s : %s\n"
#~ msgstr "lors de l'écriture de la table d'i-noeuds (groupe %d)"
#~ msgid "Pass 0: Doing byte-swap of filesystem\n"
-#~ msgstr ""
-#~ "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n"
+#~ msgstr "Passe 0 : traitement de l'échange octet par octet du système de fichiers\n"
#~ msgid ""
#~ "%s: the filesystem must be freshly checked using fsck\n"
#~ "and not mounted before trying to byte-swap it.\n"
#~ msgstr ""
-#~ "%s : le système de fichiers doit avoir été récemment vérifié en "
-#~ "utilisant\n"
-#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet "
-#~ "de\n"
+#~ "%s : le système de fichiers doit avoir été récemment vérifié en utilisant\n"
+#~ "fsck et ne doit pas avoir été monté avant d'essayer un échange par octet de\n"
#~ "celui-ci.\n"
#~ msgid "Byte swap"
#~ "cette version d'e2fsck\n"
#~ msgid "Incompatible options not allowed when byte-swapping.\n"
-#~ msgstr ""
-#~ "Les options incompatibles ne sont pas autorisées lors de l'échanges "
-#~ "d'octets.\n"
+#~ msgstr "Les options incompatibles ne sont pas autorisées lors de l'échanges d'octets.\n"
#~ msgid "%s: Filesystem byte order already normalized.\n"
-#~ msgstr ""
-#~ "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n"
+#~ msgstr "%s : l'ordre des octets du système de fichiers a déjà été normalisé.\n"
#~ msgid "invalid starting block - %s"
#~ msgstr "bloc de départ invalide - %s"
#~ msgid "Warning: %d-byte inodes not usable on older systems\n"
#~ msgstr ""
-#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur "
-#~ "les\n"
+#~ "Avertissement : les i-noeuds de %d octets ne sont pas utilisables sur les\n"
#~ "anciens systèmes\n"
#~ msgid "invalid blocks range: %lu-%lu"
#~ "\tea_ver=<ea_version (1 or 2)\n"
#~ "\n"
#~ msgstr ""
-#~ "Les options étendues sont séparées par des virgules, et peuvent prendre "
-#~ "un argument\n"
-#~ "lequel peut être initialisé par un signe d'égalité ('='). Les options "
-#~ "RAID valides sont:\n"
+#~ "Les options étendues sont séparées par des virgules, et peuvent prendre un argument\n"
+#~ "lequel peut être initialisé par un signe d'égalité ('='). Les options RAID valides sont:\n"
#~ "\tea_ver=<ea_version (1 or 2)\n"
#~ "\n"
#~ msgid "Usage: findsuper device [skipbytes [startkb]]\n"
-#~ msgstr ""
-#~ "Usage : findsuper périphérique [octets_à_escamoter [début_en_Ko]]\n"
+#~ msgstr "Usage : findsuper périphérique [octets_à_escamoter [début_en_Ko]]\n"
#~ msgid "skipbytes should be a number, not %s\n"
#~ msgstr "octets à escamoter doit être un nombre, non pas %s\n"
#~ msgstr ""
#~ "Usage : %s <périph1> <périph2> <périph3>\n"
#~ "\n"
-#~ "Ce programme affiche les informations des partitions pour un ensemble de "
-#~ "périphériques\n"
+#~ "Ce programme affiche les informations des partitions pour un ensemble de périphériques\n"
#~ "Une façon usuelle d'utiliser ce programme est:\n"
#~ "\n"
#~ "\t%s /dev/hda?\n"
#~ "\n"
#~ msgid "Forcibly clearing HTREE flag on @i %d (%q). (Beta test code)\n"
-#~ msgstr ""
-#~ "Forcer la mise à zéro du drapeau HTREE sur l'@i %d (%q). (Code en phase "
-#~ "beta test)\n"
+#~ msgstr "Forcer la mise à zéro du drapeau HTREE sur l'@i %d (%q). (Code en phase beta test)\n"
#~ msgid "(unknown os)"
#~ msgstr "(système d'exploitation inconnu)"
# Copyright (C) 2012 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
#
-# Kees wilde slager worden.
-# "Dat lijkt me geen goed idee",
-# zei z'n vader,
-# "dan word je een worstkees."
+# "Ze hield me staande en zei dat mijn opstel
+# haar 'vreselijk was tegengevallen'.
+# Ik was meteen in de zevende hemel."
#
# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011, 2012.
#
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.42.2\n"
+"Project-Id-Version: e2fsprogs-1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-10 21:14+0200\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-22 18:21+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Slecht blok %u ligt buiten bereik; genegeerd.\n"
msgstr "tijdens lezen van de slechteblokken-inode"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "tijdens openen van %s"
msgid "while trying popen '%s'"
msgstr "tijdens een popen() van %s"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
msgstr "tijdens lezen van lijst van slechte blokken uit bestand"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Waarschuwing: ongeldig blok %u gevonden in inode van slecht blok. Gewist.\n"
+msgstr "Waarschuwing: ongeldig blok %u gevonden in inode van slecht blok. Gewist.\n"
#: e2fsck/ehandler.c:55
#, c-format
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr ""
-"ioctl(BLKFLSBUF) wordt niet ondersteund! Kan buffers niet leegmaken.\n"
+msgstr "ioctl(BLKFLSBUF) wordt niet ondersteund! Kan buffers niet leegmaken.\n"
#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Gebruik: %s [-F] [-I inodebufferblokken] apparaat\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
msgstr "tijdens openen van %s om deze leeg te maken"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "tijdens leegmaken van %s"
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Het superblok van het journal is van een onbekend en niet-ondersteund type "
-"%N.\n"
-"Vermoedelijk gebruikt u een ouder 'e2fsck'-programma dat deze journal-"
-"indeling\n"
-"niet ondersteunt. Het kan ook zijn dat het journal-superblok beschadigd "
-"is.\n"
+"Het superblok van het journal is van een onbekend en niet-ondersteund type %N.\n"
+"Vermoedelijk gebruikt u een ouder 'e2fsck'-programma dat deze journal-indeling\n"
+"niet ondersteunt. Het kan ook zijn dat het journal-superblok beschadigd is.\n"
#. @-expanded: journal superblock is corrupt.\n
#: e2fsck/problem.c:221
#: e2fsck/problem.c:226
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr ""
-"Journal-vlag in superblok is niet gezet, maar er is wel een journal %s.\n"
+msgstr "Journal-vlag in superblok is niet gezet, maar er is wel een journal %s.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
#: e2fsck/problem.c:231
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:236
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr ""
-"Reddingsvlag in superblok is niet gezet, maar het journal bevat gegevens.\n"
+msgstr "Reddingsvlag in superblok is niet gezet, maar het journal bevat gegevens.\n"
#. @-expanded: Clear journal
#: e2fsck/problem.c:241
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:276
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr ""
-"Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
+msgstr "Journal-superblok heeft een onbekende alleen-lezen-functievlag gezet.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:281
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr ""
-"Journal-superblok heeft een onbekende en incompatibele functievlag gezet.\n"
+msgstr "Journal-superblok heeft een onbekende en incompatibele functievlag gezet.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:286
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:328
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Functie 'resize_inode' is uitgeschakeld, maar de 'resize'-inode is niet "
-"nul. "
+msgstr "Functie 'resize_inode' is uitgeschakeld, maar de 'resize'-inode is niet nul. "
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:333
#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
#: e2fsck/problem.c:357
msgid "@g descriptor %g checksum is %04x, should be %04y. "
-msgstr ""
-"Van groepsbeschrijver %g is de controlesom %04x, zou %04y moeten zijn. "
+msgstr "Van groepsbeschrijver %g is de controlesom %04x, zou %04y moeten zijn. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
#: e2fsck/problem.c:362
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr ""
-"Groepsbeschrijver %g is gemarkeerd als ongeïnitialiseerd zonder functies.\n"
+msgstr "Groepsbeschrijver %g is gemarkeerd als ongeïnitialiseerd zonder functies.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
#: e2fsck/problem.c:367
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr ""
-"Groepsbeschrijver %g heeft een ongeldig aantal (%b) ongebruikte inodes. "
+msgstr "Groepsbeschrijver %g heeft een ongeldig aantal (%b) ongebruikte inodes. "
#. @-expanded: Last group block bitmap uninitialized.
#: e2fsck/problem.c:372
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Laatste aankoppelingstijd ligt volgens het superblok in de toekomst.\n"
-" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist "
-"ingesteld.) "
+" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist ingesteld.) "
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Laatste schrijftijd ligt volgens het superblok in de toekomst.\n"
-" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist "
-"ingesteld.) "
+" (Maar minder dan een dag; vermoedelijk is de hardwareklok onjuist ingesteld.) "
#. @-expanded: One or more block group descriptor checksums are invalid.
#: e2fsck/problem.c:398
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"De quota-inodes worden verborgen.\n"
-"\n"
+msgstr "De quota-inode %i (%Q) wordt verborgen.\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
#: e2fsck/problem.c:449
msgid "@r has dtime set (probably due to old mke2fs). "
-msgstr ""
-"De verwijderingstijd van de hoofd-inode is niet nul (waarschijnlijk "
-"veroorzaakt door een oude mke2fs). "
+msgstr "De verwijderingstijd van de hoofd-inode is niet nul (waarschijnlijk veroorzaakt door een oude mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
#: e2fsck/problem.c:454
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:474
msgid "@g %g's @b @B at %b @C.\n"
-msgstr ""
-"De blok-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
+msgstr "De blok-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:479
msgid "@g %g's @i @B at %b @C.\n"
-msgstr ""
-"De inode-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
+msgstr "De inode-bitkaart van groep %g botst bij %b met een bestandssysteemblok.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:484
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:544
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr ""
-"Slecht blok %b is in gebruik als indirect blok voor de slechteblokken-"
-"inode. "
+msgstr "Slecht blok %b is in gebruik als indirect blok voor de slechteblokken-inode. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Als het blok echt slecht is, kan het bestandssysteem niet gerepareerd "
-"worden.\n"
+"Als het blok echt slecht is, kan het bestandssysteem niet gerepareerd worden.\n"
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr ""
-"Een groepsbeschrijversblok (%b) staat in de lijst van slechte blokken.\n"
+msgstr "Een groepsbeschrijversblok (%b) staat in de lijst van slechte blokken.\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:583
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr ""
-"Waarschuwing: groep %g bevat een slecht blok (%b) in de groepsbeschrijvers.\n"
+msgstr "Waarschuwing: groep %g bevat een slecht blok (%b) in de groepsbeschrijvers.\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr ""
-"Interne fout?: blok %b is zonder reden geclaimd in process_bad_block().\n"
+msgstr "Interne fout?: blok %b is zonder reden geclaimd in process_bad_block().\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr ""
-"Fout tijdens reserveren van %N aaneengsloten blokken in groep %g voor %s: "
-"%m\n"
+msgstr "Fout tijdens reserveren van %N aaneengsloten blokken in groep %g voor %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
#: e2fsck/problem.c:600
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr ""
-"Fout tijdens opslaan van mapblokkeninformatie (inode=%i, blok=%b, aantal="
-"%N): %m\n"
+msgstr "Fout tijdens opslaan van mapblokkeninformatie (inode=%i, blok=%b, aantal=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
#: e2fsck/problem.c:685
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr ""
-"Inode %i heeft de compressievlag gezet op een bestandssysteem zonder "
-"compressie-ondersteuning. "
+msgstr "Inode %i heeft de compressievlag gezet op een bestandssysteem zonder compressie-ondersteuning. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
#: e2fsck/problem.c:690
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:716
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr ""
-"Inodes gevonden die deel waren van een beschadigde lijst van verweesde "
-"inodes. "
+msgstr "Inodes gevonden die deel waren van een beschadigde lijst van verweesde inodes. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:721
#. @-expanded: Error reading extended attribute block %b for inode %i.
#: e2fsck/problem.c:726
msgid "Error reading @a @b %b for @i %i. "
-msgstr ""
-"Fout tijdens lezen van blok %b met uitgebreide kenmerken voor inode %i. "
+msgstr "Fout tijdens lezen van blok %b met uitgebreide kenmerken voor inode %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
#: e2fsck/problem.c:731
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
#: e2fsck/problem.c:741
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr ""
-"Blok %b met uitgebreide kenmerken heeft verwijzingstal %r, zou %N moeten "
-"zijn. "
+msgstr "Blok %b met uitgebreide kenmerken heeft verwijzingstal %r, zou %N moeten zijn. "
#. @-expanded: Error writing extended attribute block %b (%m).
#: e2fsck/problem.c:746
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:761
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr ""
-"Blok %b met uitgebreide kenmerken is beschadigd (reserveringsoverlap). "
+msgstr "Blok %b met uitgebreide kenmerken is beschadigd (reserveringsoverlap). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
#: e2fsck/problem.c:766
#: e2fsck/problem.c:795
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr ""
-"Inode %i heeft de 'INDEX_FL'-vlag gezet op een bestandssysteem zonder "
-"'htree'-ondersteuning.\n"
+msgstr "Inode %i heeft de 'INDEX_FL'-vlag gezet op een bestandssysteem zonder 'htree'-ondersteuning.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
#: e2fsck/problem.c:800
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
#: e2fsck/problem.c:810
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr ""
-"Inode %i van 'htree'-map gebruikt een niet-ondersteunde hash-versie (%N).\n"
+msgstr "Inode %i van 'htree'-map gebruikt een niet-ondersteunde hash-versie (%N).\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
#: e2fsck/problem.c:815
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
#: e2fsck/problem.c:841
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr ""
-"Een uitgebreid kenmerk in inode %i heeft een ongeldige naamlengte (%N).\n"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige naamlengte (%N).\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
#: e2fsck/problem.c:846
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr ""
-"Een uitgebreid kenmerk in inode %i heeft een ongeldige waardeoffset (%N).\n"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige waardeoffset (%N).\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:851
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr ""
-"Een uitgebreid kenmerk in inode %i heeft een ongeldig waardeblok (%N, moet 0 "
-"zijn).\n"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldig waardeblok (%N, moet 0 zijn).\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
#: e2fsck/problem.c:856
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr ""
-"Een uitgebreid kenmerk in inode %i heeft een ongeldige waardegrootte (%N).\n"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige waardegrootte (%N).\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
#: e2fsck/problem.c:861
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr ""
-"Een uitgebreid kenmerk in inode %i heeft een ongeldige hash-waarde (%N).\n"
+msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige hash-waarde (%N).\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:866
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr ""
-"Inode %i is gemarkeerd als een %It, maar lijkt feitelijk een map te zijn.\n"
+msgstr "Inode %i is gemarkeerd als een %It, maar lijkt feitelijk een map te zijn.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
#: e2fsck/problem.c:871
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"Inode %i heeft de 'EXTENTS_FL'-vlag gezet op een bestandssysteem zonder "
-"'htree'-ondersteuning.\n"
+msgstr "Inode %i heeft de 'EXTENTS_FL'-vlag gezet op een bestandssysteem zonder 'htree'-ondersteuning.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"Inode %i heeft extent-opmaak, maar superblok heeft EXTENTS-functievlag niet "
-"gezet.\n"
+msgstr "Inode %i heeft extent-opmaak, maar superblok heeft EXTENTS-functievlag niet gezet.\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr ""
-"Inode %i heeft extent-opmaak, maar heeft 'EXTENT_FL'-vlag niet gezet.\n"
+msgstr "Inode %i heeft extent-opmaak, maar heeft 'EXTENT_FL'-vlag niet gezet.\n"
#: e2fsck/problem.c:907
#, c-format
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:989 e2fsck/problem.c:1304
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr ""
-"Fout tijdens bijstellen van verwijzingstal van blok %b met uitgebreide "
-"kenmerken (inode %i): %m\n"
+msgstr "Fout tijdens bijstellen van verwijzingstal van blok %b met uitgebreide kenmerken (inode %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
#: e2fsck/problem.c:994
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr ""
-"Stap 1C: Doorzoeken van mappen naar inodes met meervoudig-geclaimde blokken\n"
+msgstr "Stap 1C: Doorzoeken van mappen naar inodes met meervoudig-geclaimde blokken\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
#: e2fsck/problem.c:1000
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1270
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr ""
-"Bestandssysteem bevat grote bestanden, maar heeft in het superblok niet de "
-"'large-file'-vlag gezet.\n"
+msgstr "Bestandssysteem bevat grote bestanden, maar heeft in het superblok niet de 'large-file'-vlag gezet.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
#: e2fsck/problem.c:1275
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
#: e2fsck/problem.c:1285
msgid "@p @h %d: %B has bad min hash\n"
-msgstr ""
-"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige minimum hash.\n"
+msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige minimum hash.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad max hash\n
#: e2fsck/problem.c:1290
msgid "@p @h %d: %B has bad max hash\n"
-msgstr ""
-"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige maximum hash.\n"
+msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige maximum hash.\n"
#. @-expanded: invalid HTREE directory inode %d (%q).
#: e2fsck/problem.c:1295
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
#: e2fsck/problem.c:1314
msgid "@p @h %d: %B has @n limit (%N)\n"
-msgstr ""
-"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige limiet (%N).\n"
+msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige limiet (%N).\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
#: e2fsck/problem.c:1319
#. @-expanded: problem in HTREE directory inode %d: %B has an unordered hash table\n
#: e2fsck/problem.c:1324
msgid "@p @h %d: %B has an unordered hash table\n"
-msgstr ""
-"Probleem in 'htree'-map-inode %d: %B heeft een ongeordende hash-tabel.\n"
+msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeordende hash-tabel.\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid depth (%N)\n
#: e2fsck/problem.c:1329
msgid "@p @h %d: %B has @n depth (%N)\n"
-msgstr ""
-"Probleem in 'htree'-map-inode %d: %B heeft een ongeldige diepte (%N).\n"
+msgstr "Probleem in 'htree'-map-inode %d: %B heeft een ongeldige diepte (%N).\n"
#. @-expanded: Duplicate entry '%Dn' in %p (%i) found.
#: e2fsck/problem.c:1334
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
#: e2fsck/problem.c:1358
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr ""
-"@E verwijst naar inode %Di in groep %g die gemarkeerd is als _INODE_UNINIT.\n"
+msgstr "@E verwijst naar inode %Di in groep %g die gemarkeerd is als _INODE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr ""
-"@E verwijst naar inode %Di in het gebied met ongebruikte inodes van groep "
-"%g.\n"
+msgstr "@E verwijst naar inode %Di in het gebied met ongebruikte inodes van groep %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
#: e2fsck/problem.c:1405
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr ""
-"Beschadigde of niet-bestaande /lost+found. Kan inode niet herverbinden.\n"
+msgstr "Beschadigde of niet-bestaande /lost+found. Kan inode niet herverbinden.\n"
#. @-expanded: Could not expand /lost+found: %m\n
#: e2fsck/problem.c:1410
#: e2fsck/problem.c:1440
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr ""
-"ext2fs_write_dir_block(): %m tijdens maken van mapblok voor /lost+found\n"
+msgstr "ext2fs_write_dir_block(): %m tijdens maken van mapblok voor /lost+found\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
#: e2fsck/problem.c:1445
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet "
-"vinden.\n"
+"Kan ouderverwijzing van inode %i niet herstellen: kan de oudermap niet vinden.\n"
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"PROGRAMMAFOUT in e2fsck: in bestandssysteem %N komen de bitkaart-eindpunten "
-"(%b, %c) niet overeen met de berekende eindpunten (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "PROGRAMMAFOUT in e2fsck: in bestandssysteem %N komen de bitkaart-eindpunten (%b, %c) niet overeen met de berekende eindpunten (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1679
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr ""
-"Blok(ken) van groep %g in gebruik, maar groep is gemarkeerd als "
-"BLOCK_UNINIT\n"
+msgstr "Blok(ken) van groep %g in gebruik, maar groep is gemarkeerd als BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
#: e2fsck/problem.c:1684
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr ""
-"Inode(s) van groep %g in gebruik, maar groep is gemarkeerd als INODE_UNINIT\n"
+msgstr "Inode(s) van groep %g in gebruik, maar groep is gemarkeerd als INODE_UNINIT\n"
#. @-expanded: Recreate journal
#: e2fsck/problem.c:1691
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Quota-informatie bijwerken voor quotatype %N"
#: e2fsck/problem.c:1815
#, c-format
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
" -b superblok Dit superblok gebruiken.\n"
" -B blokgrootte Deze blokgrootte gebruiken bij zoeken naar superblok.\n"
" -j extern_journal Dit externe journal gebruiken.\n"
-" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst "
-"toevoegen.\n"
+" -l slechte_blokkenbestand Deze lijst aan de slechte_blokkenlijst toevoegen.\n"
" -L slechte_blokkenbestand Deze slechte_blokkenlijst gebruiken.\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
-msgstr ""
-"%s: %u/%u bestanden (%0d.%d%% niet-aaneengesloten), %llu/%llu blokken\n"
+msgstr "%s: %u/%u bestanden (%0d.%d%% niet-aaneengesloten), %llu/%llu blokken\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u inode gebruikt (%2.2f%%)\n"
+"%12u inode gebruikt (%2.2f%% van %u)\n"
msgstr[1] ""
"\n"
-"%8u inodes gebruikt (%2.2f%%)\n"
+"%12u inodes gebruikt (%2.2f%% van %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u niet-aaneengesloten bestand (%0d.%d%%)\n"
-msgstr[1] "%8u niet-aaneengesloten bestanden (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u niet-aaneengesloten bestand (%0d.%d%%)\n"
+msgstr[1] "%12u niet-aaneengesloten bestanden (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u niet-aaneengesloten map (%0d.%d%%)\n"
-msgstr[1] "%8u niet-aaneengesloten mappen (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u niet-aaneengesloten map (%0d.%d%%)\n"
+msgstr[1] "%12u niet-aaneengesloten mappen (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr ""
-" aantal inodes met indirecte blokken: %u enkel, %u dubbel, %u "
-"triple\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " aantal inodes met indirecte blokken: %u enkel, %u dubbel, %u triple\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Extents-dieptehistogram: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Extents-dieptehistogram: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu blok gebruikt (%2.2f%%)\n"
-msgstr[1] "%8llu blokken gebruikt (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu blok gebruikt (%2.2f%% van %llu)\n"
+msgstr[1] "%12llu blokken gebruikt (%2.2f%% van %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u slecht blok\n"
-msgstr[1] "%8u slechte blokken\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u slecht blok\n"
+msgstr[1] "%12u slechte blokken\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u groot bestand\n"
-msgstr[1] "%8u grote bestanden\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u groot bestand\n"
+msgstr[1] "%12u grote bestanden\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u normaal bestand\n"
+"%12u normaal bestand\n"
msgstr[1] ""
"\n"
-"%8u normale bestanden\n"
+"%12u normale bestanden\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u map\n"
-msgstr[1] "%8u mappen\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u map\n"
+msgstr[1] "%12u mappen\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u byte-apparaat\n"
-msgstr[1] "%8u byte-apparaten\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u byte-apparaat\n"
+msgstr[1] "%12u byte-apparaten\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blok-apparaat\n"
-msgstr[1] "%8u blok-apparaten\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blok-apparaat\n"
+msgstr[1] "%12u blok-apparaten\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifo's\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifo's\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u koppeling\n"
-msgstr[1] "%8u koppelingen\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u koppeling\n"
+msgstr[1] "%12u koppelingen\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolische koppeling"
-msgstr[1] "%8u symbolische koppelingen"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolische koppeling"
+msgstr[1] "%12u symbolische koppelingen"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u snelle koppeling)\n"
msgstr[1] " (%u snelle koppelingen)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u socket\n"
-msgstr[1] "%8u sockets\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
+msgstr[1] "%12u sockets\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u bestand\n"
-msgstr[1] "%8u bestanden\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u bestand\n"
+msgstr[1] "%12u bestanden\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "tijdens bepalen of %s aangekoppeld is."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "WAARSCHUWING: %s is aangekoppeld!\n"
+msgstr "Waarschuwing! %s is %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s is %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Kan niet doorgaan. Gestopt.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
" Als u doorgaat **ZAL** dit tot **ZWARE** beschadigingen leiden.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Wilt u echt doorgaan"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "De controle is afgebroken.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " bevat een bestandssysteem met fouten"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " is niet goed ontkoppeld"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
-msgstr ""
-" het primaire superblok heeft andere functievlaggen gezet dan de "
-"reserveblokken"
+msgstr " het primaire superblok heeft andere functievlaggen gezet dan de reserveblokken"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " is %u keer aangekoppeld geweest zonder controle"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
msgstr " is schijnbaar het laatst gecontroleerd in de toekomst"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " is gedurende %u dagen niet gecontroleerd"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", gedwongen controle.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: schoon, %u/%u bestanden, %llu/%llu blokken"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (controle is uitgesteld; computer loopt op accu)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (controle bij volgende aankoppeling)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (controle na %ld aankoppelingen)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "FOUT: kan /dev/null niet openen (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Ongeldige versie van uitgebreide kenmerken.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Onbekende uitgebreide optie: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"Syntaxfout in 'e2fsck'-configuratiebestand (%s, regel #%d)\n"
" %s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fout tijdens valideren van bestandsdesriptor %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "Ongeldige completeringsinformatie voor bestandsdescriptor."
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Slechts één van de opties -a, -p, -n of -y mag worden opgegeven."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "De optie '-t' wordt niet ondersteund door deze versie van e2fsck.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Kan apparaat '%s' niet vinden."
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
msgstr "De opties '-n' en '-D' gaan niet samen."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
msgstr "De opties '-n' en '-c' gaan niet samen."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
msgstr "De opties '-n' en '-l' of '-L' gaan niet samen."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "De opties '-c' en '-l' of '-L' kunnen niet samen gebruikt worden.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"E2FSCK_JBD_DEBUG -- \"%s\" is geen geheel getal\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"Ongeldig niet-numeriek argument van '-%c': \"%s\"\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"Het MMP-interval is %u seconden, en de totale wachttijd is %u seconden. "
-"Even geduld...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "Het MMP-interval is %u seconden, en de totale wachttijd is %u seconden. Even geduld...\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "tijdens controleren van MMP-blok"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
"Als u zeker weet dat het bestandssysteem nergens gebruikt wordt,\n"
"geef dan deze opdracht: 'tune2fs -f -E clear_mmp {apparaat}'\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fout: de ext2fs-bibliotheek is te oud!\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "tijdens programma-initialisatie"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr " gebruik makend van %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
msgstr "voor interactieve reparaties is een terminal vereist"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s reservekopieblokken worden bekeken...\n"
# Gebruik van '--' in deze en volgende string is opzettelijk;
# één van deze strings wordt ingevuld voor de tweede %s hierboven.
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Superblok is ongeldig --"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Groepsbeschrijvers zien er slecht uit --"
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s: %s tijdens gebruik van de reservekopieblokken"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: er wordt teruggevallen op het eerste superblok\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"(Of het superblok is beschadigd.)\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Is dit misschien een partitie met lengte nul?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr ""
-"U dient %s-toegang tot het bestandssyteem te hebben, of root te zijn.\n"
+msgstr "U dient %s-toegang tot het bestandssyteem te hebben, of root te zijn.\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
msgstr "Mogelijk een niet-bestaand apparaat of een swap-apparaat?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"Is bestandssysteem exclusief aangekoppeld of geopend door een ander "
-"programma?\n"
+msgstr "Is bestandssysteem exclusief aangekoppeld of geopend door een ander programma?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Mogelijk een niet-bestaand apparaat?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
"De schijf is schrijfbeveiligd. Gebruik de optie '-n' om een\n"
"alleen-lezencontrole van het apparaat uit te voeren.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
msgstr "Installeer een nieuwere versie van e2fsck!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "tijdens controle van het ext3-journal van %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Waarschuwing: afspelen van journal wordt overgeslagen\n"
"omdat een alleen-lezencontrole uitgevoerd wordt.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "Kan superblokvlaggen van %s niet zetten.\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "tijdens afspelen van het ext3-journal van %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
-msgstr ""
-"Bestandssysteem %s heeft functies ingeschakeld die niet ondersteund worden:"
+msgstr "Bestandssysteem %s heeft functies ingeschakeld die niet ondersteund worden:"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s: Waarschuwing: compressie-ondersteuning is nog experimenteel.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"%s: Deze 'e2fsck' is niet gecompileerd met 'htree'-ondersteuning,\n"
" maar het bestandssysteem %s bevat 'htree'-mappen.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s: %s tijdens lezen van slechteblokken-inode\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Dit ziet er niet goed uit, maar we zullen doorgaan...\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Aanmaken van journal (%d blokken): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr " voltooid.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** journal is opnieuw aangemaakt -- het bestandssysteem is nu weer ext3 "
-"***\n"
+"*** journal is opnieuw aangemaakt -- het bestandssysteem is nu weer ext3 ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "E2fsck wordt opnieuw gestart vanaf het begin...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "tijdens wissen van de context"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: 'e2fsck' is geannuleerd.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "afgebroken"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** BESTANDSSYSTEEM IS VERANDERD *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** HERSTART UW SYSTEEM *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s: ********** WAARSCHUWING: bestandssysteem bevat nog fouten **********\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
msgstr "tijdens zetten van controlesom van blokgroep"
msgstr "tijdens reserveren van nulmakingsbuffer"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"ONVERWACHTE INCONSISTENTIE: het bestandssysteem wordt gewijzigd terwijl "
-"'fsck' uitgevoerd wordt.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "ONVERWACHTE INCONSISTENTIE: het bestandssysteem wordt gewijzigd terwijl 'fsck' uitgevoerd wordt.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
"Gebruik: %s [-b blokgrootte] [-i invoerbestand] [-o uitvoerbestand]\n"
-" [-c aantal_blokken_tegelijk] [-d "
-"vertragingsfactor_tussen_leesacties]\n"
+" [-c aantal_blokken_tegelijk] [-d vertragingsfactor_tussen_leesacties]\n"
" [-e maximum_aantal_slechte_blokken] [-p aantal_controles]\n"
" [-t testpatroon [-t testpatroon [...]]] [-fnsvw]\n"
" apparaat [eindblok [beginblok]]\n"
#: misc/badblocks.c:489 misc/badblocks.c:749
msgid "while beginning bad block list iteration"
-msgstr ""
-"tijdens voorbereiding van het langslopen van de lijst met slechte blokken"
+msgstr "tijdens voorbereiding van het langslopen van de lijst met slechte blokken"
#: misc/badblocks.c:503 misc/badblocks.c:602 misc/badblocks.c:759
msgid "while allocating buffers"
#: misc/badblocks.c:771
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr ""
-"Zoeken naar slechte blokken in niet-destructieve lezen-en-schrijven-modus\n"
+msgstr "Zoeken naar slechte blokken in niet-destructieve lezen-en-schrijven-modus\n"
#: misc/badblocks.c:777
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr ""
-"Zoeken naar slechte blokken (niet-destructieve lezen-en-schrijven-test)\n"
+msgstr "Zoeken naar slechte blokken (niet-destructieve lezen-en-schrijven-test)\n"
#: misc/badblocks.c:784
msgid ""
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Gebruik: %s [-RVf] [-+=AacDdeijsSu] [-v versie] bestanden...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Gebruik: %s [-RVf] [-+=AaCcDdeijsSu] [-v VERSIE] BESTAND...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "ongeldige versie: %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "tijdens opvragen van de status van %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "tijdens lezen van vlaggen op %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr "Het uitzetten van de 'extent'-functievlag wordt niet ondersteund op %s"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Vlaggen van %s gezet als "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "tijdens zetten van vlaggen op %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Versie van %s gezet als %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "tijdens zetten van versie op %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Kan geen padvariabele reserveren in chattr_dir_proc()"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
msgstr "'=' gaat niet samen met '-' en '+'\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
msgstr "Gebruik '-v', '=', '-' of '+'.\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr ""
-"Gebruik: %s [-bfhixV] [-o superblock=<nummer>] [-o blocksize=<getal>] "
-"apparaat\n"
+msgstr "Gebruik: %s [-bfhixV] [-o superblock=<nummer>] [-o blocksize=<getal>] apparaat\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
"Begin van journal: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Journal-gebruikers: %s\n"
+msgstr "Journal-foutmnummer: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
msgid "Journal users: %s\n"
msgstr "Journal-gebruikers: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Kan geen geheugen reserveren om opties te ontleden!\n"
" superblock=<superbloknummer>\n"
" blocksize=<blokgrootte>\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tgebruik makend van %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
#: misc/e2image.c:1341
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr ""
-"tijdens converteren van een qcow2-image (%s) naar een raw-imagebestand (%s)"
+msgstr "tijdens converteren van een qcow2-image (%s) naar een raw-imagebestand (%s)"
#: misc/e2label.c:58
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: dit is geen ext2-bestandssysteem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Waarschuwing: label is te lang, wordt afgekapt.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: fout tijdens schrijven van superblok\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Gebruik: e2label apparaat [nieuw_label]\n"
#: misc/e2undo.c:70
#, c-format
msgid "The file system Mount time didn't match %u\n"
-msgstr ""
-"aankoppelingstijd van bestandssysteem komt niet overeen met %u uit "
-"transactiebestand\n"
+msgstr "aankoppelingstijd van bestandssysteem komt niet overeen met %u uit transactiebestand\n"
#: misc/e2undo.c:89
msgid "The file system UUID didn't match \n"
-msgstr ""
-"UUID's van bestandssysteem en uit transactiebestand komen niet overeen\n"
+msgstr "UUID's van bestandssysteem en uit transactiebestand komen niet overeen\n"
#: misc/e2undo.c:163
#, c-format
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
msgstr ""
"%s: ongeldige regel in /etc/fstab wordt overgeslagen:\n"
"zesde veld van 'bind'-aankoppeling is niet nul (fsck-volgnummer)\n"
msgstr "--wachten-- (volgnummer %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
"Gebruik: fsck [-AMNPRTV] [-C [descriptor]] [-t bestandssysteemsoort]\n"
" [bestandssysteemopties] [bestandssysteem...]\n"
msgid "While reading version on %s"
msgstr "Tijdens lezen van versie op %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
"Gebruik: %s [-b blokgrootte] [-c|-l bestandsnaam] [-C clustergrootte]\n"
" [-g blokken_per_groep] [-G flexgroepgrootte] [-i bytes_per_inode]\n"
-" [-I inode-grootte] [-J journal-opties] [-L label] [-N "
-"aantal_inodes]\n"
-" [-m percentage_gereserveerde_blokken] [-M "
-"laatste_aankoppelingspunt]\n"
-" [-o naam_van_aanmakende_besturingssyteem] [-O functie[,...]] [-U "
-"UUID]\n"
-" [-r bestandssysteemversie] [-t bestandssysteemsoort] [-T "
-"gebruikstype]\n"
-" [-E uitgebreide_optie[,...]] [-jnqvDFKSV] apparaat "
-"[aantal_blokken]\n"
-
-#: misc/mke2fs.c:217
+" [-I inode-grootte] [-J journal-opties] [-L label] [-N aantal_inodes]\n"
+" [-m percentage_gereserveerde_blokken] [-M laatste_aankoppelingspunt]\n"
+" [-o naam_van_aanmakende_besturingssyteem] [-O functie[,...]] [-U UUID]\n"
+" [-r bestandssysteemversie] [-t bestandssysteemsoort] [-T gebruikstype]\n"
+" [-E uitgebreide_optie[,...]] [-jnqvDFKSV] apparaat [aantal_blokken]\n"
+
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Uitgevoerde opdracht is: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
msgstr "tijdens uitvoering van '%s'"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
msgstr "tijdens verwerken van de gemaakte lijst van slechte blokken"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr ""
-"Blok %d in het primaire superblok of de groepsbeschrijvers is slecht.\n"
+msgstr "Blok %d in het primaire superblok of de groepsbeschrijvers is slecht.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Blokken %u tot en met %u moeten goed zijn\n"
"om een bestandssysteem aan te kunnen maken.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Gestopt...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"beginnend bij blok %u, bevat slechte blokken.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "tijdens het markeren van slechte blokken (als zijnde in gebruik)"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Schrijven van inodetabellen: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"\n"
"Kan %d blokken in inodetabel niet schrijven, beginnend bij %llu: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "voltooid \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "tijdens aanmaken van hoofdmap"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "tijdens lezen van hoofd-inode"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "tijdens zetten van eigenaar van hoofd-inode"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "tijdens aanmaken van /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "tijdens zoeken van /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "tijdens uitbreiden van /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "tijdens zetten van slechteblokken-inode"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Onvoldoende geheugen tijdens wissen van sectoren %d-%d.\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Waarschuwing: kan blok 0 niet lezen: %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Waarschuwing: kan sector %d niet wissen: %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "tijdens initialiseren van het journal-superblok"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Nulmaken van journal-apparaat: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "tijdens nulmaken van journal-apparaat (blok %llu, nummer %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "tijdens schrijven van journal-superblok"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"Waarschuwing: %llu ongebruikte blokken.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Bestandssysteemlabel=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "Soort besturingssysteem: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blokgrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Clustergrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentgrootte=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "'stride'=%u blokken, 'stripe'-breedte=%u blokken\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u inodes, %llu blokken\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu blokken (%2.2f%%) gereserveerd voor systeembeheer\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "Eerste gegevensblok=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximum aantal bestandssysteemblokken=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u blokgroepen\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u blokgroep\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u blokken per groep, %u clusters per groep\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u blokken per groep, %u fragmenten per groep\n"
# src/main.c:425
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inodes per groep\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Superblokreservekopieën opgeslagen in blokken: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Ongeldig mmp_update_interval: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ongeldig argument van 'stride': %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ongeldig argument van 'stripe_width': %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Ongeldig argument van 'resize': %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"De maximum grootte moet groter zijn dan de huidige bestandssysteemgrootte.\n"
+msgstr "De maximum grootte moet groter zijn dan de huidige bestandssysteemgrootte.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr ""
-"Live vergroten of verkleinen is niet mogelijk op een bestandssysteem van "
-"versie 0.\n"
+msgstr "Live vergroten of verkleinen is niet mogelijk op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Ongeldig argument van 'quotatype': %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"hun argument wordt voorafgegaan door een '='-teken.\n"
"\n"
"Geldige uitgebreide opties zijn:\n"
-" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/"
-"geschreven>\n"
-" stripe_width=<aantal blokken per stripe> (meestal stride × aantal "
-"schijven)\n"
+" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/geschreven>\n"
+" stripe_width=<aantal blokken per stripe> (meestal stride × aantal schijven)\n"
" resize=<maximum grootte van bestandssysteem in blokken>\n"
" lazy_itable_init=<0 voor uitschakelen, 1 voor inschakelen>\n"
" lazy_journal_init=<0 voor uitschakelen, 1 voor inschakelen>\n"
" nodiscard\n"
" quotatype=<usr OF grp>\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"Waarschuwing: 'stripe'-breedte %u is geen even veelvoud van 'stride' %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
" %s\n"
# Dit gaat over het argument van optie -O.
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ongeldige bestandssysteemfunctie: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ongeldige aankoppelingsoptie: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"\n"
"Uw mke2fs.conf definieert geen bestandssysteemtype %s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"U dient waarschijnlijk een nieuwer mke2fs.conf-bestand te installeren.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Gestopt...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Waarschuwing: bestandssysteemtype %s is niet gedefinieerd in mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Kan geen geheugen reserveren voor nieuwe PATH.\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Initialiseren van profile is mislukt (fout: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "ongeldige blokgrootte: %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
-msgstr ""
-"Waarschuwing: blokgrootte %d is op de meeste systemen niet bruikbaar.\n"
+msgstr "Waarschuwing: blokgrootte %d is op de meeste systemen niet bruikbaar.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "ongeldige clustergrootte: %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "Ongeldig aantal blokken per groep"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "argument van -g (blokken per groep) is geen veelvoud van 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Ongeldig getal voor metagroepgrootte"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "Metagroepgrootte moet een macht van 2 zijn"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "ongeldige inodeverhouding %s (min %d / max %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
msgstr ""
"Waarschuwing: optie '-K' is verouderd en zou u niet meer moeten gebruiken;\n"
"gebruik in plaats daarvan de uitgebreide optie '-E nodiscard'.\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr "onvoldoende geheugen in bad_blocks_filename()"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "ongeldig percentage gereserveerde blokken: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "ongeldig versienummer: %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "ongeldige grootte van inode: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "ongeldig aantal inodes: %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "Optie '-t' mag slechts één keer gegeven worden"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "Optie '-T' mag slechts één keer gegeven worden"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "tijdens openen van journal-apparaat %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr ""
-"Blokgrootte %d van journal-apparaat is kleiner dan minimum blokgrootte %d.\n"
+msgstr "Blokgrootte %d van journal-apparaat is kleiner dan minimum blokgrootte %d.\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Blokgrootte van het journal-apparaat wordt gebruikt: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "ongeldige blokken '%s' op apparaat '%s'"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "bestandssysteem"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
msgstr "tijdens bepalen van grootte van bestandssysteem"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Kan de grootte van het apparaat niet bepalen;\n"
"u dient zelf de grootte van het bestandssysteem aan te geven.\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
" in-gebruik-zijn van een gewijzigde partitie. Mogelijk dient u uw\n"
" computer te herstarten om de juiste partitietabel te verkrijgen.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "Bestandssysteem is groter dan de schijnbare apparaatgrootte."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Verwerken van lijst met bestandssysteemsoorten is mislukt\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%s: De grootte (0x%llx blokken) van apparaat %s kan niet uitgedrukt\n"
" worden in 32 bits bij een blokgrootte van %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "Lijst met bestandssysteemsoorten voor mke2fs.conf: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr ""
-"Extra functies worden niet ondersteund op een bestandssysteem van versie 0.\n"
+msgstr "Extra functies worden niet ondersteund op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr ""
-"Schaarse superblokken zijn niet mogelijk op een bestandssysteem van versie "
-"0.\n"
+msgstr "Schaarse superblokken zijn niet mogelijk op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Een journal is niet mogelijk op een bestandssysteem van versie 0.\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "ongeldig percentage gereserveerde blokken: %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"De functies 'resize_inode' en 'meta_bg' gaan niet samen.\n"
"Ze kunnen niet beide ingeschakeld worden.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
msgstr "tijdens bepalen van de hardware-sectorgrootte"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "tijdens bepalen van de fysieke sectorgrootte"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
msgstr "tijdens instellen van de blokgrootte; te klein voor apparaat\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Waarschuwing: de gegeven blokgrootte %d is kleiner dan de fysieke "
-"sectorgrootte %d van het apparaat\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Waarschuwing: de gegeven blokgrootte %d is kleiner dan de fysieke sectorgrootte %d van het apparaat\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "Waarschuwing: kan logische schijfopbouw van %s niet verkrijgen.\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Uitlijning van %s is %lu bytes verschoven.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
msgstr ""
"Dit kan zeer slechte prestaties tot gevolg hebben;\n"
"(her)partitionering wordt aanbevolen.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "Blokken van %d bytes zijn te groot voor dit systeem (max %d)."
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
"Waarschuwing: blokken van %d bytes zijn te groot voor dit systeem,\n"
"het maximum is %d -- maar 'mke2fs' wordt gedwongen uitgevoerd.\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr ""
-"het reserveren van blokken voor bestandssysteemvergroting wordt niet "
-"ondersteund op een niet-schaars bestandssysteem"
+msgstr "het reserveren van blokken voor bestandssysteemvergroting wordt niet ondersteund op een niet-schaars bestandssysteem"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
msgstr "teller van blokken-per-groep ligt buiten het toegestane bereik"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr ""
-"De functie 'flex_bg' is niet ingeschakeld, dus de metagroepgrootte mag niet "
-"opgegeven worden"
+msgstr "De functie 'flex_bg' is niet ingeschakeld, dus de metagroepgrootte mag niet opgegeven worden"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ongeldige inode-grootte %d (min %d / max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "te veel inodes (%llu) -- inodeverhouding verhogen?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "te veel inodes (%llu) -- geef minder dan 2^32 op"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
" geef een hogere bytes-per-inodeverhouding op (-i),\n"
" of verklein het aantal inodes (-N).\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
msgstr "tijdens aanmaken van 'undo'-bestand\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Verwerpen van blokken: "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "is mislukt - "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "tijdens aanmaken van superblok"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"Verwerping is gelukt en zal nullen retourneren -- wissen van inode-tabel "
-"wordt overgeslagen\n"
+msgstr "Verwerping is gelukt en zal nullen retourneren -- wissen van inode-tabel wordt overgeslagen\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "onbekend besturingssysteem: %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Reserveren van groepstabellen: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "tijdens reserveren van bestandssysteemtabellen"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
" tijdens converteren van subcluster-bitkaart"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "tijdens nulmaken van blok %llu aan het eind van het bestandssysteem"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "tijdens reserveren van uitbreidingsblokken"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "journal"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Toevoegen van journal aan apparaat %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
" tijdens toevoegen van journal aan apparaat %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "voltooid\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "Aanmaken van journal wordt overgeslagen wegens optie '-S'.\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Aanmaken van journal (%u blokken): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
" tijdens aanmaken van journal"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Fout tijdens inschakelen van MMP (bescherming tegen meervoudige "
-"aankoppelingen)."
+"Fout tijdens inschakelen van MMP (bescherming tegen meervoudige aankoppelingen)."
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr ""
"Bescherming tegen meervoudige aankoppelingen is ingeschakeld\n"
"met een bijwerkingsinterval van %d seconden.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Schrijven van superblokken en bestandssysteem-metagegevens: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Waarschuwing: problemen tijdens schrijven van superblokken."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
"Gebruik: %s [-c maximum_aantal_aankoppelingen] [-C aankoppelingental]\n"
-" [-e gedrag_bij_fouten] [-E uitgebreide_optie[,...]] [-f] [-g "
-"groep]\n"
+" [-e gedrag_bij_fouten] [-E uitgebreide_optie[,...]] [-f] [-g groep]\n"
" [-i interval[d|w|m]] [-j] [-J journal-opties] [-l] [-L label]\n"
-" [-m percentage_gereserveerde_blokken] [-M "
-"laatste_aankoppelingspunt]\n"
+" [-m percentage_gereserveerde_blokken] [-M laatste_aankoppelingspunt]\n"
" [-o [^]aankoppelingsopties[,...]] [-O [^]functie[,...]]\n"
" [-p MMP-bijwerkingsinterval] [-r aantal_gereserveerde_blokken]\n"
" [-T tijdstip_van_laatste_controle] [-u gebruiker] [-U UUID]\n"
"\n"
" tijdens aanmaken van journal-inode"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Kan geen geheugen reserveren om quota-opties te ontleden!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Kan datum/tijd-specificatie niet ontleden: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "onjuist aankoppelingenaantal: %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "onjuist argument van -e (gedrag bij een fout): %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "onjuiste GID of groepsnaam: %s"
# lib/prange.c:299 lib/prange.c:316
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "onjuist interval: %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "onjuiste verhouding (%s) voor gereserveerde blokken"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
msgstr "Optie '-o' mag slechts één keer gegeven worden"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
msgstr "Optie '-o' mag slechts één keer gegeven worden"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "onjuist aantal gereserveerde blokken: %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "onjuiste UID of gebruikersnaam: %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "ongeldige grootte van inode: %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Inode-grootte moet een macht van 2 zijn -- niet %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "MMP-bijwerkingsinterval is te groot: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
msgstr[0] "Het MMP-bijwerkingsinterval is op %lu seconde gezet\n"
msgstr[1] "Het MMP-bijwerkingsinterval is op %lu seconden gezet\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ongeldig argument van 'stride': %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ongeldig argument van 'stripe_width': %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ongeldig hash-algoritme: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Het standaard-hash-algoritme is op %s (%d) gezet\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
" clear_mmp\n"
" hash_alg=<hash-algoritme>\n"
" mount_opts=<uitgebreide standaard aankoppelingsopties>\n"
-" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/"
-"geschreven>\n"
-" stripe_width=<aantal blokken per stripe> (meestal stride × aantal "
-"schijven)\n"
+" stride=<aantal blokken dat samen per RAID-schijf wordt gelezen/geschreven>\n"
+" stripe_width=<aantal blokken per stripe> (meestal stride × aantal schijven)\n"
" test_fs\n"
" ^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
msgstr "Lezen van inode-bitkaart is mislukt\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Lezen van blok-bitkaart is mislukt\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "te verplaatsen blokken"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr ""
-"Reserveren van blok-bitkaart tijdens inode-grootteverandering is mislukt.\n"
+msgstr "Reserveren van blok-bitkaart tijdens inode-grootteverandering is mislukt.\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Er is onvoldoende ruimte om de inode-grootte te vergroten. \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
-msgstr ""
-"Herplaatsen van blokken tijdens inode-grootteverandering is mislukt. \n"
+msgstr "Herplaatsen van blokken tijdens inode-grootteverandering is mislukt. \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
"Fout tijdens veranderen van de inode-grootte.\n"
"Voer 'e2undo' uit om de bestandssysteemwijzigingen ongedaan te maken. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Kan geen geheugen reserveren voor 'tdb'-bestandsnaam\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "tijdens verwijderen van %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"Probeer het te repareren met:\n"
" e2fsck -f %s\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "De inode-grootte is al %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "Het verkleinen van de inode-grootte is niet mogelijk.\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Het maximum aantal aankoppelingen is op %d gezet\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Het huidige aantal aankoppelingen is op %d gezet\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Gedrag bij fouten is op %d gezet\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "GID van gereserveerde blokken is op %lu gezet\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "interval tussen controles is te groot (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Interval tussen controles is op %lu seconden gezet\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Percentage gereserveerde blokken is op %g%% gezet (%llu blokken)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "aantal gereserveerde blokken is te groot (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Het aantal gereserveerde blokken is op %llu gezet\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Het bestandssysteem is al zuinig met superblokken.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"De zuinig-met-superblokkenvlag is aangezet. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"\n"
"Het uitzetten van de zuinig-met-superblokkenvlag is niet mogelijk.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Tijd van laatste controle is op %s gezet\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "UID van gereserveerde blokken is op %lu gezet\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Fout in gebruik van 'clear_mmp'. Het moet samengaan met '-f'.\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
msgstr ""
"De quota-functie mag alleen gewijzigd worden wanneer het bestandssysteem\n"
"ontkoppeld is.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Onjuiste UUID-indeling\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
msgstr ""
"De inode-grootte mag alleen gewijzigd worden wanneer het bestandssysteem\n"
"ontkoppeld is.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
"Het veranderen van de inode-grootte is niet mogelijk voor\n"
"bestandssystemen met ingeschakelde 'flex_bg'-functievlag.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "De inode-groote is op %lu gezet\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "Het veranderen van de inode-grootte is mislukt. \n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "De 'stride'-lengte is op %d gezet\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "De 'stripe'-breedte is op %d gezet\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "De uitgebreide standaard aankoppelingsopties zijn op '%s' gezet\n"
msgid "while getting stat information for %s"
msgstr "tijdens opvragen van status van %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: De functie 'flex_bg' zonder de functie 'resize_inode'\n"
-" wordt door 'resize2fs' niet ondersteund.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"Voer eerst 'e2fsck -f %s' uit.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Geschatte minimum grootte van het bestandssysteem: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Ongeldige nieuwe grootte: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
-msgstr ""
-"Nieuwe grootte is te groot om uitgedrukt te kunnen worden in 32 bits.\n"
+msgstr "Nieuwe grootte is te groot om uitgedrukt te kunnen worden in 32 bits.\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Nieuwe grootte is kleiner dan minimum (%llu).\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "Ongeldige lengte voor 'stride'"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"U vroeg om een nieuwe grootte van %llu blokken.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"Het bestandssysteem is al %llu blokken groot. Er is niets te doen!\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
#, c-format
-msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
msgstr ""
-"Van grootte veranderen van bestandssysteem op %s naar %llu blokken (van "
-"%dK).\n"
+"%s: De functie 'flex_bg' zonder de functie 'resize_inode'\n"
+" wordt door 'resize2fs' niet ondersteund.\n"
+
+#: resize/main.c:463
+#, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgstr "Van grootte veranderen van bestandssysteem op %s naar %llu blokken (van %dK).\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "tijdens veranderen van de grootte van %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"Voer 'e2fsck -fy %s' uit om het bestandssysteem\n"
"te repareren na de afgebroken grootteverandering.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"Het bestandssysteem op %s is nu %llu blokken groot.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "tijdens inkorten van %s"
msgid "On-line shrinking not supported"
msgstr "Het live krimpen wordt niet ondersteund"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
msgstr "Bestandssysteem ondersteunt live vergroten/verkleinen niet"
-#: resize/online.c:70
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Niet genoeg gereserveerde GDT-blokken om grootte te kunnen veranderen"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr ""
+"De kernel ondersteunt het vergroten/verkleinen van\n"
+"een bestandssysteem met deze afmetingen niet"
+
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "tijdens openen van aankoppelingspunt %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Toegang geweigerd voor het vergroten/verkleinen van bestandssysteem"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Tijdens controle op ondersteuning voor live vergroten/verkleinen"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr ""
-"De kernel ondersteunt het vergroten/verkleinen van\n"
-"een bestandssysteem met deze afmetingen niet"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "De kernel ondersteunt het live vergroten/verkleinen niet"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Uitvoeren van live verandering van %s naar %llu blokken (van %dK).\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Tijdens uitbreiden van de laatste groep"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Tijdens toevoegen van groep #%d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
msgstr ""
"Bestandssysteem op %s is aangekoppled op %s;\n"
"op dit systeem is live vergroten/verkleinen niet mogelijk.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "aantal inodes (%llu) moet kleiner zijn dan %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "gereserveerde blokken"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "blokken voor metagegevens"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Zou nooit mogen gebeuren: de 'resize'-inode is beschadigd!\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "EXT2FS-bibliotheek versie 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "EXT2FS-bibliotheek versie 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr ""
-"Poging tot schrijven naar bestandssysteem dat geopend is voor alleen-lezen"
+msgstr "Poging tot schrijven naar bestandssysteem dat geopend is voor alleen-lezen"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr ""
-"Er is onvoldoende ruimte om het voorgestelde bestandssysteem te creëren"
+msgstr "Er is onvoldoende ruimte om het voorgestelde bestandssysteem te creëren"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr ""
-"Poging om het eind van inode-bitkaart voorbij het echte eind te smurfen"
+msgstr "Poging om het eind van inode-bitkaart voorbij het echte eind te smurfen"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr ""
-"Poging tot het toevoegen van een relatie aan een knoop die geen sectie is"
+msgstr "Poging tot het toevoegen van een relatie aan een knoop die geen sectie is"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
#~ msgstr "Partitie %s is aangekoppeld. "
#~ msgid "@g %g @b @B uninitialized but @i @B in use.\n"
-#~ msgstr ""
-#~ "Groepsbeschrijver %g heeft een ongeïnitialiseerde blok-bitkaart maar de "
-#~ "inode-bitkaart is in gebruik.\n"
+#~ msgstr "Groepsbeschrijver %g heeft een ongeïnitialiseerde blok-bitkaart maar de inode-bitkaart is in gebruik.\n"
#~ msgid "@i %i should not have EOFBLOCKS_FL set (size %Is, lblk %r)\n"
-#~ msgstr ""
-#~ "Inode %i zou niet de 'EOFBLOCKS_FL'-vlag gezet moeten hebben (grootte "
-#~ "%Is, lblk %r)\n"
+#~ msgstr "Inode %i zou niet de 'EOFBLOCKS_FL'-vlag gezet moeten hebben (grootte %Is, lblk %r)\n"
#~ msgid "Couldn't determine journal size"
#~ msgstr "Kan journal-grootte niet bepalen"
#~ msgstr "ongeldige fragmentgrootte: %s"
#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
-#~ msgstr ""
-#~ "Waarschuwing: fragmenten worden niet ondersteund; optie '-f' wordt "
-#~ "genegeerd\n"
+#~ msgstr "Waarschuwing: fragmenten worden niet ondersteund; optie '-f' wordt genegeerd\n"
#~ msgid "Calling BLKDISCARD from %llu to %llu "
#~ msgstr "Aanroepen van BLKDISCARD van %llu tot %llu "
#~ msgstr "Journal is NIET verwijderd.\n"
#~ msgid "@S doesn't have has_@j flag, but has ext3 @j %s.\n"
-#~ msgstr ""
-#~ "Superblok heeft journal-vlag niet gezet, maar heeft wel een ext3-journal "
-#~ "%s.\n"
+#~ msgstr "Superblok heeft journal-vlag niet gezet, maar heeft wel een ext3-journal %s.\n"
#~ msgid "Error while deleting extent: %m\n"
#~ msgstr "Fout tijdens verwijderen van extent: %m\n"
#~ msgid "Recreate journal to make the filesystem ext3 again?\n"
-#~ msgstr ""
-#~ "Het journal heraanmaken om het bestandssysteem weer ext3 te maken?\n"
+#~ msgstr "Het journal heraanmaken om het bestandssysteem weer ext3 te maken?\n"
#~ msgid "bad block size - %s"
#~ msgstr "ongeldige blokgrootte: %s"
#~ msgstr "Opvragen van grootte"
#~ msgid "@a in @i %i has a hash (%N) which is @n (must be 0)\n"
-#~ msgstr ""
-#~ "Een uitgebreid kenmerk in inode %i heeft een ongeldige hashwaarde (%N, "
-#~ "moet 0 zijn).\n"
+#~ msgstr "Een uitgebreid kenmerk in inode %i heeft een ongeldige hashwaarde (%N, moet 0 zijn).\n"
#~ msgid "while calling ext2fs_block_iterate"
#~ msgstr "tijdens aanroep van ext2fs_block_iterate()"
#~ msgstr "tijdens schrijven van inodetabel (groep %d)"
#~ msgid "Pass 0: Doing byte-swap of filesystem\n"
-#~ msgstr ""
-#~ "Stap 0: Omwisseling van hoge en lage bytes in hele bestandssysteem\n"
+#~ msgstr "Stap 0: Omwisseling van hoge en lage bytes in hele bestandssysteem\n"
#~ msgid ""
#~ "%s: the filesystem must be freshly checked using fsck\n"
#~ "\n"
#~ msgid "Warning: %d-byte inodes not usable on older systems\n"
-#~ msgstr ""
-#~ "Waarschuwing: inodes van %d bytes zijn onbruikbaar op oudere systemen\n"
+#~ msgstr "Waarschuwing: inodes van %d bytes zijn onbruikbaar op oudere systemen\n"
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42.2\n"
+"Project-Id-Version: e2fsprogs 1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-10 17:30+0200\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-19 21:02+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Wadliwy blok %u poza zakresem - zignorowany.\n"
msgstr "podczas odczytu i-wêz³a wadliwych bloków"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "podczas próby otworzenia %s"
msgid "while trying popen '%s'"
msgstr "podczas próby popen '%s'"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
msgstr "podczas wczytywania z pliku listy wadliwych bloków"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Uwaga: znaleziono niedopuszczalny blok %u w i-wê¼le wadliwego bloku. "
-"Wyczyszczono.\n"
+msgstr "Uwaga: znaleziono niedopuszczalny blok %u w i-wê¼le wadliwego bloku. Wyczyszczono.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
msgstr "Sk³adnia: %s [-F] [-I bloki_bufora_i-wêz³ów] urz±dzenie\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
msgstr "podczas otwierania %s w celu opró¿nienia"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "podczas próby opró¿nienia %s"
#: e2fsck/journal.c:872
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
-msgstr ""
-"%s: odtworzenie z kroniki nie zostanie wykonane w trybie tylko do odczytu\n"
+msgstr "%s: odtworzenie z kroniki nie zostanie wykonane w trybie tylko do odczytu\n"
#: e2fsck/journal.c:899
#, c-format
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
#: e2fsck/problem.c:193
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr ""
-"Zewnêtrzna @j ma wielu u¿ytkowników systemu plików (nie obs³ugiwane).\n"
+msgstr "Zewnêtrzna @j ma wielu u¿ytkowników systemu plików (nie obs³ugiwane).\n"
#. @-expanded: Can't find external journal\n
#: e2fsck/problem.c:198
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"@S kroniki systemu plików ma nieznany typ %N (nie obs³ugiwany).\n"
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:328
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_inode nie w³±czone, ale i-wêze³ zmiany rozmiaru jest niezerowy. "
+msgstr "Resize_inode nie w³±czone, ale i-wêze³ zmiany rozmiaru jest niezerowy. "
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:333
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Czas ostatniego montowania @Su jest w przysz³o¶ci\n"
"\t(o mniej ni¿ dzieñ, zapewne z powodu z³ego ustawienia zegara sprzêtowego) "
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Czas ostatniego zapisu @Su jest w przysz³o¶ci\n"
"\t(o mniej ni¿ dzieñ, zapewne z powodu z³ego ustawienia zegara sprzêtowego) "
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"Zmiana i-wêz³ów @qów na ukryte.\n"
-"\n"
+msgstr "Zmiana i-wêz³a @qów na ukryty.\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:544
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr ""
-"Wadliwy @b %b jest u¿ywany jako niebiezpo¶redni @b i-wê¼³a z wadliwym @biem. "
+msgstr "Wadliwy @b %b jest u¿ywany jako niebiezpo¶redni @b i-wê¼³a z wadliwym @biem. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:655
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr ""
-"B³±d podczas zapisu informacji o liczbie i-wêz³ów (@i=%i, liczba=%N): %m\n"
+msgstr "B³±d podczas zapisu informacji o liczbie i-wêz³ów (@i=%i, liczba=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr ""
-"B³±d podczas zapisu informacji o @dch @bach (@i=%i, @b=%b, liczba=%N): %m\n"
+msgstr "B³±d podczas zapisu informacji o @dch @bach (@i=%i, @b=%b, liczba=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:761
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr ""
-"@b rozszerzonych atrybutów %b jest uszkodzony (kolizja przydzielania). "
+msgstr "@b rozszerzonych atrybutów %b jest uszkodzony (kolizja przydzielania). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
#: e2fsck/problem.c:766
#: e2fsck/problem.c:795
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr ""
-"@i %i ma ustawion± flagê INDEX_FL na systemie plików bez obs³ugi htree.\n"
+msgstr "@i %i ma ustawion± flagê INDEX_FL na systemie plików bez obs³ugi htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
#: e2fsck/problem.c:800
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"@i %i ma ustawion± flagê EXTENTS_FL na systemie plików bez obs³ugi "
-"ekstentów.\n"
+msgstr "@i %i ma ustawion± flagê EXTENTS_FL na systemie plików bez obs³ugi ekstentów.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"@i %i ma format z ekstentami, ale w superbloku brakuje w³a¶ciwo¶ci EXTENTS\n"
+msgstr "@i %i ma format z ekstentami, ale w superbloku brakuje w³a¶ciwo¶ci EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:989 e2fsck/problem.c:1304
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr ""
-"B³±d podczas poprawiania refcount dla @bu rozszerzonych atrybutów %b (@i "
-"%i): %m\n"
+msgstr "B³±d podczas poprawiania refcount dla @bu rozszerzonych atrybutów %b (@i %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
#: e2fsck/problem.c:994
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr ""
-"Przebieg 1C: Przeszukiwanie katalogów pod k±tem i-wêz³ów z @mmi @bami\n"
+msgstr "Przebieg 1C: Przeszukiwanie katalogów pod k±tem i-wêz³ów z @mmi @bami\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
#: e2fsck/problem.c:1000
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
#: e2fsck/problem.c:1358
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr ""
-"@i %Di znaleziony w grupie %g, która ma ustawion± flagê _INONE_UNINIT.\n"
+msgstr "@i %Di znaleziony w grupie %g, która ma ustawion± flagê _INONE_UNINIT.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"B£¡D PROGRAMU: koñce bitmap systemu plików (#%N) (%b, %c) nie zgadzaj± siê z "
-"policzonymi koñcami bitmap (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "B£¡D PROGRAMU: koñce bitmap systemu plików (#%N) (%b, %c) nie zgadzaj± siê z policzonymi koñcami bitmap (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Uaktualniæ informacje o limitach typu %N"
#: e2fsck/problem.c:1815
#, c-format
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
" -n Nie wykonywanie zmian w systemie plików\n"
" -y Przyjêcie odpowiedzi \"tak\" na wszystkie pytania\n"
" -c Szukanie wadliwych bloków i dodanie ich do listy\n"
-" -f Wymuszenie sprawdzenia nawet \"czystego\" systemu "
-"plików\n"
+" -f Wymuszenie sprawdzenia nawet \"czystego\" systemu plików\n"
#: e2fsck/unix.c:86
#, c-format
msgstr ""
" -v Pokazywanie wiêkszej ilo¶ci informacji\n"
" -b superblok U¿ycie innego superbloku\n"
-" -B rozm.bloku Wymuszenie rozmiaru bloku przy poszukiwaniu "
-"superbloku\n"
+" -B rozm.bloku Wymuszenie rozmiaru bloku przy poszukiwaniu superbloku\n"
" -j zewn-kronika Ustawienie po³o¿enia zewnêtrznej kroniki\n"
" -l plik_z³ych_bloków Dodanie do listy wadliwych bloków\n"
" -L plik_z³ych_bloków Ustawienie listy wadliwych bloków\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u plików (%0d.%d%% nieci±g³ych), %llu/%llu bloków\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u u¿yty i-wêze³ (%2.2f%%)\n"
+"%12u u¿yty i-wêze³ (%2.2f%% z %u)\n"
msgstr[1] ""
"\n"
-"%8u u¿yte i-wêz³y (%2.2f%%)\n"
+"%12u u¿yte i-wêz³y (%2.2f%% z %u)\n"
msgstr[2] ""
"\n"
-"%8u u¿ytych i-wêz³ów (%2.2f%%)\n"
+"%12u u¿ytych i-wêz³ów (%2.2f%% z %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u plik nieci±g³y (%0d.%d%%)\n"
-msgstr[1] "%8u pliki nieci±g³e (%0d.%d%%)\n"
-msgstr[2] "%8u plików nieci±g³ych (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u plik nieci±g³y (%0d.%d%%)\n"
+msgstr[1] "%12u pliki nieci±g³e (%0d.%d%%)\n"
+msgstr[2] "%12u plików nieci±g³ych (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u katalog nieci±g³y (%0d.%d%%)\n"
-msgstr[1] "%8u katalogi nieci±g³e (%0d.%d%%)\n"
-msgstr[2] "%8u katalogów nieci±g³ych (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u katalog nieci±g³y (%0d.%d%%)\n"
+msgstr[1] "%12u katalogi nieci±g³e (%0d.%d%%)\n"
+msgstr[2] "%12u katalogów nieci±g³ych (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " liczba i-wêz³ów z blokami ind/dind/tind: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " liczba i-wêz³ów z blokami ind/dind/tind: %u/%u/%u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Histogram g³êboko¶ci ekstentów: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram g³êboko¶ci ekstentów: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu u¿yty blok (%2.2f%%)\n"
-msgstr[1] "%8llu u¿yte bloki (%2.2f%%)\n"
-msgstr[2] "%8llu u¿ytych bloków (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu u¿yty blok (%2.2f%% z %llu)\n"
+msgstr[1] "%12llu u¿yte bloki (%2.2f%% z %llu)\n"
+msgstr[2] "%12llu u¿ytych bloków (%2.2f%% z %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u wadliwy blok\n"
-msgstr[1] "%8u wadliwe bloki\n"
-msgstr[2] "%8u wadliwych bloków\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u wadliwy blok\n"
+msgstr[1] "%12u wadliwe bloki\n"
+msgstr[2] "%12u wadliwych bloków\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u du¿y plik\n"
-msgstr[1] "%8u du¿e pliki\n"
-msgstr[2] "%8u du¿ych plików\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u du¿y plik\n"
+msgstr[1] "%12u du¿e pliki\n"
+msgstr[2] "%12u du¿ych plików\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u zwyk³y plik\n"
+"%12u zwyk³y plik\n"
msgstr[1] ""
"\n"
-"%8u zwyk³e pliki\n"
+"%12u zwyk³e pliki\n"
msgstr[2] ""
"\n"
-"%8u zwyk³ych plików\n"
+"%12u zwyk³ych plików\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u katalog\n"
-msgstr[1] "%8u katalogi\n"
-msgstr[2] "%8u katalogów\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u katalog\n"
+msgstr[1] "%12u katalogi\n"
+msgstr[2] "%12u katalogów\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u plik urz±dzenia znakowego\n"
-msgstr[1] "%8u pliki urz±dzeñ znakowych\n"
-msgstr[2] "%8u plików urz±dzeñ znakowych\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u plik urz±dzenia znakowego\n"
+msgstr[1] "%12u pliki urz±dzeñ znakowych\n"
+msgstr[2] "%12u plików urz±dzeñ znakowych\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u plik urz±dzenia blokowego\n"
-msgstr[1] "%8u pliki urz±dzeñ blokowych\n"
-msgstr[2] "%8u plików urz±dzeñ blokowych\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u plik urz±dzenia blokowego\n"
+msgstr[1] "%12u pliki urz±dzeñ blokowych\n"
+msgstr[2] "%12u plików urz±dzeñ blokowych\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u potok\n"
-msgstr[1] "%8u potoki\n"
-msgstr[2] "%8u potoków\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u potok\n"
+msgstr[1] "%12u potoki\n"
+msgstr[2] "%12u potoków\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u dowi±zanie\n"
-msgstr[1] "%8u dowi±zania\n"
-msgstr[2] "%8u dowi±zañ\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u dowi±zanie\n"
+msgstr[1] "%12u dowi±zania\n"
+msgstr[2] "%12u dowi±zañ\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u dowi±zanie symboliczne"
-msgstr[1] "%8u dowi±zania symboliczne"
-msgstr[2] "%8u dowi±zañ symbolicznych"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u dowi±zanie symboliczne"
+msgstr[1] "%12u dowi±zania symboliczne"
+msgstr[2] "%12u dowi±zañ symbolicznych"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[1] " (%u szybkie dowi±zania symboliczne)\n"
msgstr[2] " (%u szybkich dowi±zañ symbolicznych)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u gniazdo\n"
-msgstr[1] "%8u gniazda\n"
-msgstr[2] "%8u gniazd\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u gniazdo\n"
+msgstr[1] "%12u gniazda\n"
+msgstr[2] "%12u gniazd\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u plik\n"
-msgstr[1] "%8u pliki\n"
-msgstr[2] "%8u plików\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u plik\n"
+msgstr[1] "%12u pliki\n"
+msgstr[2] "%12u plików\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "podczas sprawdzania, czy %s jest zamontowany."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Uwaga! %s jest zamontowany.\n"
+msgstr "Uwaga! %s jest %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s jest %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Nie mo¿na kontynuowaæ, przerwano.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
"***POWA¯NE*** uszkodzenie systemu plików.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Naprawdê kontynuowaæ?"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "sprawdzanie przerwane.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " zawiera system plików z b³êdami"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " nie by³ czysto odmontowany"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
msgstr " cechy g³ównego superbloku ró¿ni± siê od kopii zapasowej"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " by³ montowany %u razy bez sprawdzania"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
msgstr " ma czas ostatniego sprawdzenia systemu plików w przysz³o¶ci"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " przetrwa³ %u dni bez sprawdzania"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", wymuszono sprawdzenie.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: czysty, %u/%u plików, %llu/%llu bloków"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (sprawdzenie wstrzymane; zasilanie z baterii)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (sprawdzenie po nastêpnym montowaniu)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr "(sprawdzenie za %ld montowañ)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
msgstr "B£¡D: Nie mo¿na otworzyæ /dev/null (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "B³êdna wersja EA.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Nieznana opcja rozszerzona: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"B³±d sk³adni w pliku konfiguracyjnym e2fsck (%s, linia %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "B³±d podczas kontroli deskryptora pliku %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "B³êdne informacje dope³niaj±ce deskryptora plików"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Mo¿na podaæ tylko jedn± z opcji -p/-a, -n lub -y."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
msgstr "Opcja -t nie jest obs³ugiwana przez tê wersjê e2fsck.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Nie uda³o siê rozwi±zaæ '%s'"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
msgstr "Opcje -n i -D s± niekompatybilne."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
msgstr "Opcje -n i -c s± niekompatybilne."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
msgstr "Opcje -n i -l/-L s± niekompatybilne."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
msgstr "Opcje -c oraz -l/-L nie mog± byæ podane jednocze¶nie.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"E2FSCK_JBD_DEBUG \"%s\" nie jest liczb± ca³kowit±\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"B³êdny argument nieliczbowy dla -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"Przedzia³ MMP to %u sek, a ca³kowity czas oczekiwania %u sek. Proszê "
-"czekaæ...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "Przedzia³ MMP to %u sek, a ca³kowity czas oczekiwania %u sek. Proszê czekaæ...\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "podczas sprawdzania bloku MMP"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Je¶li system plików nie jest na pewno u¿ywany przez ¿aden system, mo¿na "
-"uruchomiæ:\n"
+"Je¶li system plików nie jest na pewno u¿ywany przez ¿aden system, mo¿na uruchomiæ:\n"
"'tune2fs -f -E clear_mmp {urz±dzenie}'\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "B³±d: wersja biblioteki ext2fs jest za stara!\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "podczas próby inicjalizacji programu"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tU¿ywane %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
msgstr "interaktywna naprawa wymaga terminala"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
msgstr "%s: %s próba u¿ycia zapasowych bloków...\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Superblok b³êdny,"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Deskryptory grup wygl±daj± ¼le..."
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s: %s podczas próby u¿ycia zapasowych bloków"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: powracanie do oryginalnego superbloku\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"(lub superblok systemu plików jest uszkodzony)\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Czy to mo¿e jest partycja zerowej d³ugo¶ci?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
msgstr "Trzeba mieæ dostêp %s do systemu plików lub byæ rootem\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
msgstr "Zapewne nie istniej±ce urz±dzenie lub swap?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"System plików zamontowany lub otwarty na wy³±czno¶æ przez inny program?\n"
+msgstr "System plików zamontowany lub otwarty na wy³±czno¶æ przez inny program?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Zapewne nie istniej±ce urz±dzenie?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
"Dysk zabezpieczony przed zapisem; mo¿na u¿yæ opcji -n aby sprawdziæ\n"
"urz±dzenie w trybie tylko do odczytu.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
msgstr "Potrzeba nowszej wersji e2fsck!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "podczas sprawdzania kroniki ext3 dla %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
msgstr ""
"Uwaga: pominiêto odtwarzanie z kroniki z powodu sprawdzania w trybie tylko\n"
"do odczytu.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "nie mo¿na ustawiæ flag superbloku na %s\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "podczas odtwarzania z kroniki ext3 dla %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s ma w³±czone nie obs³ugiwane cechy:"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s: uwaga: obs³uga kompresji jest eksperymentalna.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"%s: e2fsck skompilowany bez obs³ugi HTREE,\n"
"\tale system plików %s ma katalogi HTREE.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s: %s podczas odczytu i-wêz³a wadliwych bloków\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
msgstr "Nie wró¿y to dobrze, ale spróbujê kontynuowaæ...\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Tworzenie kroniki (%d bloków): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr " Wykonano.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
"\n"
"*** kronika zosta³a ponownie utworzona - system plików to znowu ext3 ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Restart e2fsck od pocz±tku...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "podczas resetowania kontekstu"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
msgstr "%s: e2fsck przerwany.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "przerwano"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** SYSTEM PLIKÓW ZMODYFIKOWANY *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** WYMAGANY RESTART LINUKSA *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s: ********** UWAGA: System plików nadal ma b³êdy **********\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
msgstr "podczas ustawiania informacji o sumie kontrolnej grupy bloków"
msgstr "podczas przydzielania bufora zeruj±cego"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"NIEOCZEKIWANA NIESPÓJNO¦Æ: system plików zosta³ zmodyfikowany podczas "
-"dzia³ania fsck.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "NIEOCZEKIWANA NIESPÓJNO¦Æ: system plików zosta³ zmodyfikowany podczas dzia³ania fsck.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
#: misc/badblocks.c:1298
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
-msgstr ""
-"Przebieg zakoñczony, znaleziono %u wadliwych bloków (b³êdów: %d/%d/%d).\n"
+msgstr "Przebieg zakoñczony, znaleziono %u wadliwych bloków (b³êdów: %d/%d/%d).\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Sk³adnia: %s [-RVf] [-+=AacDdeijsSu] [-v wersja] pliki...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Sk³adnia: %s [-RVf] [-+=AaCcDdeijsSu] [-v wersja] pliki...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "b³êdna wersja - %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "podczas próby stat %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "podczas odczytu flag %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr "Usuwanie flagi ekstentów nie jest obs³ugiwane na %s"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Flagi %s ustawiono jako "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "podczas ustawiania flag %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Wersja %s ustawiona jako %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "podczas ustawiania wersji %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Nie mo¿na przydzieliæ zmiennej path w chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
msgstr "= jest niekompatybilne z - i +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
msgstr "Trzeba u¿yæ '-v', =, - lub +\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr ""
-"Sk³adnia: %s [-bfhixV] [-o superblok=<numer>] [-o blocksize=<rozmiar>] "
-"urz±dzenie\n"
+msgstr "Sk³adnia: %s [-bfhixV] [-o superblok=<numer>] [-o blocksize=<rozmiar>] urz±dzenie\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
"Pocz±tek kroniki: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "U¿ytkownicy kroniki: %s\n"
+msgstr "B³±d kroniki: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
msgid "Journal users: %s\n"
msgstr "U¿ytkownicy kroniki: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
msgstr "Nie mo¿na przydzieliæ pamiêci do analizy opcji!\n"
"\tsuperblock=<numer superbloku>\n"
"\tblocksize=<rozmiar bloku>\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tU¿ywane %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: to nie jest system plików ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Uwaga: etykieta za d³uga, skrócono.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: b³±d podczas zapisu superbloku\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
msgstr "Sk³adnia: e2label urz±dzenie [nowa-etykieta]\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
-msgstr ""
-"%s: pominiêto b³êdn± liniê w /etc/fstab: montowanie bind z niezerowym "
-"numerem przebiegu fsck\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgstr "%s: pominiêto b³êdn± liniê w /etc/fstab: montowanie bind z niezerowym numerem przebiegu fsck\n"
#: misc/fsck.c:911
#, c-format
msgstr "--oczekiwanie-- (przebieg %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Sk³adnia: fsck [-AMNPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] "
-"[system-plików ...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Sk³adnia: fsck [-AMNPRTV] [ -C [ deskryptor ] ] [-t rodzaj-fs] [opcje-fs] [system-plików ...]\n"
#: misc/fsck.c:1120
#, c-format
msgid "While reading version on %s"
msgstr "Podczas odczytu wersji %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
"Sk³adnia: %s [-c|-l nazwa-pliku] [-b rozm.bloku] [-C rozm.klastra]\n"
"\t[-i bajtów-na-i-wêze³] [-I rozm-i-wêz³a] [-J opcje-kroniki]\n"
"\t[-m procent-rezerw.-bloków] [-o os-twórcy]\n"
"\t[-g bloków-w-grupie] [-L etykieta-wolumenu] [-M ost.-mont.-katalog]\n"
"\t[-O cecha[,...]] [-r wersja-fs] [-E opcja-rozszerzona[,...]]\n"
-"\t[-t typ-fs] [-T typ-u¿ycia] [-U UUID] [-jnqvDFKSV] urz±dzenie [liczba-"
-"bloków]\n"
+"\t[-t typ-fs] [-T typ-u¿ycia] [-U UUID] [-jnqvDFKSV] urz±dzenie [liczba-bloków]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Uruchamianie polecenia: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
msgstr "podczas próby uruchomienia '%s'"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
msgstr "podczas przetwarzania listy wadliwych bloków z programu"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Wadliwy blok %d w g³ównym superbloku/obszarze deskryptora grup.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr "Bloki od %u do %u musz± byæ dobre, aby stworzyæ system plików.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Przerwano...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\twadliwe bloki.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "podczas zaznaczania wadliwych bloków jako u¿ywane"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Zapis tablicy i-wêz³ów: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"\n"
"Nie uda³o siê zapisaæ %d bloków w tablicy i-wêz³ów pocz±wszy od %llu: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "zakoñczono \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "podczas tworzenia g³ównego katalogu"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "podczas odczytu g³ównego i-wêz³a"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "podczas ustawiania w³a¶ciciela g³ównego i-wêz³a"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "podczas tworzenia /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "podczas szukania /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "podczas rozszerzania /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "podczas ustawiania i-wêz³a wadliwych bloków"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Brak pamiêci podczas czyszczenia sektorów %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Uwaga: nie mo¿na odczytaæ bloku 0: %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Uwaga: nie mo¿na wyczy¶ciæ sektora %d: %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "podczas inicjalizacji superbloku kroniki"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Zerowanie urz±dzenia kroniki: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "podczas zerowania urz±dzenia kroniki (blok %llu, liczba %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "podczas zapisu superbloku kroniki"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"uwaga: %llu bloków nie u¿ywanych.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Etykieta systemu plików=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "Typ OS: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Rozmiar bloku=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Rozmiar klastra=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Rozmiar fragmentu=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Stride=%u bloków, szeroko¶æ Stripe=%u bloków\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u i-wêz³ów, %llu bloków\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu bloków (%2.2f%%) zarezerwowanych dla superu¿ytkownika\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "Pierwszy blok danych=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maksymalna liczba bloków systemu plików=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u grup bloków\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u grupa bloków\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u bloków w grupie, %u klastrów w grupie\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u bloków w grupie, %u fragmentów w grupie\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u i-wêz³ów w grupie\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Kopie zapasowe superbloku zapisane w blokach: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "B³êdny okres uaktualniania mmp: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "B³êdny parametr stride: %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "B³êdny parametr stripe-width: %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "B³êdny parametr resize: %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"Maksymalny rozmiar (resize) musi byæ wiêkszy od rozmiaru systemu plików.\n"
+msgstr "Maksymalny rozmiar (resize) musi byæ wiêkszy od rozmiaru systemu plików.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr ""
-"Zmiana rozmiaru w locie nie jest obs³ugiwana przez systemy plików w wersji "
-"0\n"
+msgstr "Zmiana rozmiaru w locie nie jest obs³ugiwana przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "B³êdny parametr quotatype: %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\tquotatype=<usr LUB grp>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"Uwaga: RAID stripe-width %u nie jest parzyst± wielokrotno¶ci± stride %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"B³±d sk³adni w pliku konfiguracyjnym mke2fs (%s, linia %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ustawiona b³êdna opcja systemu plików: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ustawiona b³êdna opcja montowania: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"\n"
"Uwaga! Plik mke2fs.conf nie okre¶la typu systemu plików %s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"Prawdopodobnie trzeba zainstalowaæ uaktualniony plik mke2fs.conf.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Przerwano...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Uwaga: typ systemu plików %s nie jest zdefiniowany w mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Nie uda³o siê przydzieliæ pamiêci na now± PATH\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Nie uda³o siê poprawnie zainicjowaæ profilu (b³±d: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "b³êdny rozmiar bloku - %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Uwaga: rozmiar bloku %d nie u¿ywalny na wiêkszo¶ci systemów.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "b³êdny rozmiar klastra - %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "B³êdna liczba bloków w grupie"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "liczba bloków w grupie musi byæ wielokrotno¶ci± 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Niedopuszczalny rozmiar flex_bg"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "rozmiar flex_bg musi byæ potêg± 2"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "b³êdny stosunek i-wêz³ów %s (min %d/max %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Uwaga: opcja -K jest przestarza³a i nie powinna ju¿ byæ u¿ywana. Zamiast "
-"niej nale¿y u¿yæ opcji rozszerzonej '-E nodiscard'.\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Uwaga: opcja -K jest przestarza³a i nie powinna ju¿ byæ u¿ywana. Zamiast niej nale¿y u¿yæ opcji rozszerzonej '-E nodiscard'.\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr "w malloc dla bad_blocks_filename"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "b³êdny procent zarezerwowanych bloków - %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "b³êdny poziom wersji - %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "b³êdny rozmiar i-wêz³a - %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "b³êdna liczba i-wêz³ów - %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "Opcja -t mo¿e byæ u¿yta tylko raz"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "Opcja -T mo¿e byæ u¿yta tylko raz"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "podczas próby otwarcia urz±dzenia kroniki %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr "Rozmiar bloku urz±dzenia z kronik± (%d) mniejszy od minimalnego %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "U¿ycie rozmiaru bloku urz±dzenia kroniki: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
msgstr "b³êdna liczba bloków '%s' na urz±dzeniu '%s'"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "system plików"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
msgstr "podczas próby okre¶lenia rozmiaru systemu plików"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Nie mo¿na okre¶liæ rozmiaru urz±dzenia; rozmiar systemu\n"
"plików musi byæ podany\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\tfdiska z powodu zajêtej modyfikowanej partycji. Ponowny odczyt\n"
"\ttablicy partycji mo¿e wymagaæ rebootu.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "System plików wiêkszy od widocznego rozmiaru urz±dzenia."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Nie uda³o siê przeanalizowaæ listy typów systemów plików\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%s: Rozmiar urz±dzenia (0x%llx bloków) %s jest zbyt du¿y, aby wyraziæ go\n"
"\tw 32 bitach przy u¿yciu rozmiaru bloku %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "Rozwiniêcie fs_types dla mke2fs.conf: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr "Cechy systemu plików nie obs³ugiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr ""
-"Rzadkie superbloki nie s± obs³ugiwane przez systemy plików w wersji 0\n"
+msgstr "Rzadkie superbloki nie s± obs³ugiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr "Kroniki nie s± obs³ugiwane przez systemy plików w wersji 0\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "b³êdny procent zarezerwowanych bloków - %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"Cechy resize_inode i meta_bg nie s± kompatybilne.\n"
"Nie mo¿na ich w³±czyæ jednocze¶nie.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
msgstr "podczas próby okre¶lenia rozmiaru sprzêtowego sektora"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "podczas próby okre¶lenia rozmiaru sektora fizycznego"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
msgstr "podczas ustawiania rozmiaru bloku; zbyt ma³y dla urz±dzenia\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Uwaga: podany rozmiar bloku %d jest mniejszy ni¿ rozmiar sektora fizycznego "
-"%d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Uwaga: podany rozmiar bloku %d jest mniejszy ni¿ rozmiar sektora fizycznego %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "uwaga: nie uda³o siê odczytaæ geometrii urz±dzenia dla %s\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Wyrównanie %s jest przesuniête o %lu bajtów.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr ""
-"Mo¿e to powodowaæ bardzo nisk± wydajno¶æ, zalecane jest (prze)"
-"partycjonowanie.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr "Mo¿e to powodowaæ bardzo nisk± wydajno¶æ, zalecane jest (prze)partycjonowanie.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "%d-bajtowe bloki s± zbyt du¿e dla systemu (max %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Uwaga: %d-bajtowe bloki s± zbyt du¿e dla systemu (max %d), wymuszono "
-"kontynuacjê\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr "Uwaga: %d-bajtowe bloki s± zbyt du¿e dla systemu (max %d), wymuszono kontynuacjê\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr ""
-"zarezerwowane bloki do zmiany rozmiaru w locie nie obs³ugiwane na nieci±g³ym "
-"systemie plików"
+msgstr "zarezerwowane bloki do zmiany rozmiaru w locie nie obs³ugiwane na nieci±g³ym systemie plików"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
msgstr "liczba bloków w grupie spoza zakresu"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr ""
-"Cecha flex_bg nie jest w³±czona, wiêc nie mo¿na okre¶liæ rozmiaru flex_bg"
+msgstr "Cecha flex_bg nie jest w³±czona, wiêc nie mo¿na okre¶liæ rozmiaru flex_bg"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "b³êdny rozmiar i-wêz³a %d (min %d/max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "zbyt du¿o i-wêz³ów (%llu), zwiêkszyæ wspó³czynnik i-wêz³ów?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "zbyt du¿o i-wêz³ów (%llu), nale¿y podaæ < 2^32"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tplików o liczbie bloków %llu, nale¿y podaæ wiêkszy wspó³czynnik (-i)\n"
"\tlub mniejsz± liczbê i-wêz³ów (-N).\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
msgstr "podczas próby utworzenia pliku cofniêcia (undo)\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Porzucanie bloków urz±dzenia: "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "nie powiod³o siê - "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "podczas ustawiania superbloku"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"Czyszczenie siê powiod³o i bêdzie zwracaæ zera - pominiêto czyszczenie "
-"tablicy i-wêz³ów\n"
+msgstr "Czyszczenie siê powiod³o i bêdzie zwracaæ zera - pominiêto czyszczenie tablicy i-wêz³ów\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "nieznany os - %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Przydzielanie tablicy grup: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "podczas próby przydzielenia tablic systemu plików"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\tpodczas próby przekszta³cenia bitmapy podklastrów"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "podczas zerowania bloku %llu na koñcu systemu plików"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "podczas rezerwowania bloków na zmianê rozmiaru w locie"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "kronika"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Dodano kronikê do urz±dzenia %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
"\tpodczas próby dodania kroniki do urz±dzenia %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "wykonano\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "Pominiêto tworzenie kroniki w trybie super-only\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Tworzenie kroniki (%u bloków): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
"\tpodczas próby utworzenia kroniki"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"\n"
"B³±d podczas w³±czania funkcji zabezpieczenia przed wielokrotnym montowaniem."
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr ""
-"Zabezpieczenie przed wielokrotnym montowaniem jest w³±czone z okresem "
-"uaktualniania %d sekund.\n"
+msgstr "Zabezpieczenie przed wielokrotnym montowaniem jest w³±czone z okresem uaktualniania %d sekund.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Zapis superbloków i podsumowania systemu plików: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Uwaga, problemy z zapisem superbloków."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
msgstr ""
"Sk³adnia: %s [-c max_licznik_montowañ] [-e trakt._b³êdów] [-g grupa]\n"
"\t[-i odstêp[d|m|w]] [-j] [-J opcje_kroniki] [-l]\n"
-"\t[-m procent_rezerw._bloków] [-o [^]opcje_montowania[,...]] [-p okres_uakt."
-"_mmp]\n"
+"\t[-m procent_rezerw._bloków] [-o [^]opcje_montowania[,...]] [-p okres_uakt._mmp]\n"
"\t[-r liczba_zarez._bloków] [-u u¿ytkownik] [-C licznik_montowañ]\n"
"\t[-L etykieta_wolumenu] [-M ostatnio_mont._katalog] [-O [^]cecha[,...]]\n"
"\t[-E opcja_rozszerzona[,...]] [-T czas_ost._sprawdz.] [-U UUID]\n"
#: misc/tune2fs.c:456
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr ""
-"Zavezpieczenie przed wielokrotnym montowaniem zosta³a w³±czona z czasem "
-"uaktualniania %ds.\n"
+msgstr "Zavezpieczenie przed wielokrotnym montowaniem zosta³a w³±czona z czasem uaktualniania %ds.\n"
#: misc/tune2fs.c:465
msgid ""
"\n"
"\tpodczas próby utworzenia pliku kroniki"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Nie mo¿na przydzieliæ pamiêci do analizy opcji limitów!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"Podano b³êdne opcje limitów.\n"
"\n"
-"Dostêpne s± nastêpuj±ce opcje limitów (mo¿na je przekazywaæ oddzielone "
-"przecinkiem):\n"
+"Dostêpne s± nastêpuj±ce opcje limitów (mo¿na je przekazywaæ oddzielone przecinkiem):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Nie mo¿na przeanalizowaæ podanej daty/czasu: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "b³êdna liczba montowañ - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "b³êdne traktowanie b³êdów - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "b³êdny gid/nazwa grupy - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "b³êdny odstêp - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "b³êdny procent zarezerwowanych bloków - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
msgstr "-o mo¿e byæ podane tylko raz"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
msgstr "-O mo¿e byæ podane tylko raz"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "b³êdna liczba zarezerwowanych bloków - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "b³êdny uid/nazwa u¿ytkownika - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "b³êdny rozmiar i-wêz³a - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Rozmiar i-wêz³a musi byæ potêg± dwójki - %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "Okres uaktualniania mmp zbyt du¿y: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
-"montowaniem na %lu sekundê\n"
-msgstr[1] ""
-"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
-"montowaniem na %lu sekundy\n"
-msgstr[2] ""
-"Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym "
-"montowaniem na %lu sekund\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekundê\n"
+msgstr[1] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekundy\n"
+msgstr[2] "Ustawianie okresu uaktualniania zabezpieczenia przed wielokrotnym montowaniem na %lu sekund\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "B³êdny parametr RAID stride: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "B³êdny parametr RAID stripe-width: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "B³êdny algorytm haszowania: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Ustawianie domy¶lnego algorytmu haszowania na %s (%d)\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
msgstr "Nie uda³o siê odczytaæ bitmapy i-wêz³ów\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Nie uda³o siê odczytaæ bitmapy bloków\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "bloki do przeniesienia"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr ""
-"Nie uda³o siê przydzieliæ bitmapy bloków podczas zwiêkszania rozmiaru i-"
-"wêz³a\n"
+msgstr "Nie uda³o siê przydzieliæ bitmapy bloków podczas zwiêkszania rozmiaru i-wêz³a\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Za ma³o miejsca, aby zwiêkszyæ rozmiar i-wêz³a\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Nie uda³o siê przemie¶ciæ bloków podczas zmiany rozmiaru i-wêz³a\n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
"B³±d podczas zmiany rozmiaru i-wêz³a.\n"
"Nale¿y uruchomiæ e2undo w celu wycofania zmian w systemie plików.\n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Nie mo¿na przydzieliæ pamiêci na nazwê plików tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "podczas próby usuniêcia %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"Liczba magiczna bloku MMP jest b³êdna. Mo¿na próbowaæ to naprawiæ "
-"uruchamiaj±c:\n"
+"Liczba magiczna bloku MMP jest b³êdna. Mo¿na próbowaæ to naprawiæ uruchamiaj±c:\n"
"'e2fsck -f %s'\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Rozmiar i-wêz³a ju¿ wynosi %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "Zmniejszanie rozmiaru i-wêz³a nie jest obs³ugiwane\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Ustawianie maksymalnej liczby montowañ na %d\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Ustawianie aktualnego licznika montowañ na %d\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Ustawianie traktowania b³êdów na %d\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Ustawianie gid-a zarezerwowanych bloków na %lu\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "odstêp pomiêdzy sprawdzeniami jest zbyt du¿y (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Ustawianie odstêpu pomiêdzy sprawdzeniami na %lu sekund\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Ustawianie procentu zarezerwowanych bloków na %g%% (%llu bloków)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "liczba zarezerwowanych bloków jest zbyt du¿a (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Ustawianie liczby zarezerwowanych bloków na %llu\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"System plików ju¿ ma rzadkie superbloki.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"Flaga rzadkich superbloków ustawiona. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"\n"
"Usuwanie superflagi sparse nie jest obs³ugiwane.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Ustawianie czasu ostatniego sprawdzenia systemu plików na %s\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Ustawianie uid-a zarezerwowanych bloków na %lu\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "B³±d w u¿yciu clear_mmp. Opcja ta musi byæ u¿yta z -f\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr ""
-"Funkcjê limitów mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr "Funkcjê limitów mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "B³êdny format UUID-a\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr ""
-"Rozmiar i-wêz³a mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
+msgstr "Rozmiar i-wêz³a mo¿na zmieniæ tylko na niezamontowanym systemie plików.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
"Zmiana rozmiaru i-wêz³a nie jest obs³ugiwana dla systemów plików\n"
"z w³±czon± cech± flex_bg.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Ustawianie rozmiaru i-wêz³a na %lu\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "Nie uda³o siê zmieniæ rozmiaru i-wêz³a\n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Ustawianie rozmiaru stride na %d\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Ustawianie szeroko¶ci stripe na na %d\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
msgstr "Ustawianie rozszerzonych domy¶lnych opcji montowania na '%s'\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr ""
-"Sk³adnia: %s [-d] [-p plik_pid] [-s ¶cie¿ka_gniazda] [-T limit_czasu]\n"
+msgstr "Sk³adnia: %s [-d] [-p plik_pid] [-s ¶cie¿ka_gniazda] [-T limit_czasu]\n"
#: misc/uuidd.c:50
#, c-format
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Sk³adnia: %s [-d flagi_¶ledzenia] [-f] [-F] [-M] [-P] [-p] urz±dzenie "
-"[nowy_rozm]\n"
+"Sk³adnia: %s [-d flagi_¶ledzenia] [-f] [-F] [-M] [-P] [-p] urz±dzenie [nowy_rozm]\n"
"\n"
#: resize/main.c:65
msgid "while getting stat information for %s"
msgstr "podczas pobierania informacji stat dla %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinacja cech flex_bg i\n"
-"\t!resize_inode nie jest obs³ugiwana przez resize2fs.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"Proszê uruchomiæ najpierw 'e2fsck -f %s'.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Przybli¿ony minimalny rozmiar systemu plików: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "B³êdny nowy rozmiar: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Nowy rozmiar zbyt du¿y, by móg³ byæ wyra¿ony w 32 bitach\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Nowy rozmiar jest mniejszy ni¿ minimalny (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "B³êdna d³ugo¶æ stride"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"Za¿±dano nowego rozmiaru %llu bloków.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"System plików ju¿ ma wielko¶æ %llu bloków. Nie ma nic do roboty!\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
+#, c-format
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
+msgstr ""
+"%s: Kombinacja cech flex_bg i\n"
+"\t!resize_inode nie jest obs³ugiwana przez resize2fs.\n"
+
+#: resize/main.c:463
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
msgstr "Zmiana rozmiaru systemu plików %s na %llu (%dk) bloków.\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "podczas próby zmiany rozmiaru %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"Proszê uruchomiæ 'e2fsck -fy %s', aby naprawiæ system plików\n"
"po przerwanej operacji zmiany rozmiaru.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"System plików na %s ma teraz %llu bloków.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "podczas próby skrócenia %s"
#: resize/online.c:40
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr ""
-"System plików %s jest zamontowany pod %s; wymagana zmiana rozmiaru w locie\n"
+msgstr "System plików %s jest zamontowany pod %s; wymagana zmiana rozmiaru w locie\n"
#: resize/online.c:44
msgid "On-line shrinking not supported"
msgstr "Zmniejszanie w locie nie jest obs³ugiwane"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
msgstr "System plików nie obs³uguje zmiany rozmiaru w locie"
-#: resize/online.c:70
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Zbyt ma³o zarezerwowanych bloków gdt do zmiany rozmiaru"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "J±dro nie obs³uguje zmiany rozmiaru tak du¿ego systemu plików"
+
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "podczas próby otwarcia punktu montowania %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Brak uprawnieñ do zmiany rozmiaru systemu plików"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Podczas sprawdzania obs³ugi zmiany rozmiaru w locie"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "J±dro nie obs³uguje zmiany rozmiaru tak du¿ego systemu plików"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "J±dro nie obs³uguje zmiany rozmiaru w locie"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
msgstr "Wykonywanie zmiany rozmiaru w locie %s na %llu (%dk) bloków.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Podczas próby rozszerzenia ostatniej grupy"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Podczas próby dodania grupy #%d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"System plików na %s jest zamontowany pod %s, zmiana rozmiaru w locie nie "
-"jest obs³ugiwana na tym systemie.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "System plików na %s jest zamontowany pod %s, zmiana rozmiaru w locie nie jest obs³ugiwana na tym systemie.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "liczba i-wêz³ów (%llu) musi byæ mniejsza ni¿ %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "zarezerwowane bloki"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "bloki metadanych"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Nigdy siê nie powinno zdarzyæ: i-wêze³ zmiany rozmiaru uszkodzony!\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "Biblioteka EXT2FS w wersji 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "Biblioteka EXT2FS w wersji 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr ""
-"Nie powiod³o siê przemieszczenie w kana³ we/wy przy odczycie lub zapisie"
+msgstr "Nie powiod³o siê przemieszczenie w kana³ we/wy przy odczycie lub zapisie"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr ""
-"Próba zmodyfikowania mapy bloków poprzez iterator bloków tylko do odczytu"
+msgstr "Próba zmodyfikowania mapy bloków poprzez iterator bloków tylko do odczytu"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Nie mo¿na sprawdziæ, czy system plików jest zamontowany z powodu braku pliku "
-"mtab"
+msgstr "Nie mo¿na sprawdziæ, czy system plików jest zamontowany z powodu braku pliku mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr ""
-"Iterowanie poprzez wszystkie sekcje najwy¿szego poziomu nie jest obs³ugiwane"
+msgstr "Iterowanie poprzez wszystkie sekcje najwy¿szego poziomu nie jest obs³ugiwane"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
# Swedish messages for e2fsprogs.
-# Copyright © 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012 Theodore Tso (msgids)
+# Copyright © 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012 Theodore Tso (msgids)
# This file is distributed under the same license as the e2fsprogs package.
-# Göran Uddeborg <goeran@uddeborg.se>, 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012.
+# Göran Uddeborg <goeran@uddeborg.se>, 2003, 2005, 2006, 2008, 2009, 2010, 2011, 2012.
#
-# $Revision: 1.69 $
+# $Revision: 1.72 $
#
#. The strings in e2fsck's problem.c can be very hard to translate,
#. since the strings are expanded in two different ways. First of all,
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs 1.42.2\n"
+"Project-Id-Version: e2fsprogs 1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-14 18:31+0200\n"
-"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-22 13:13+0100\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
-msgstr "Dåligt block %u utanför giltigt intervall; ignoreras.\n"
+msgstr "Dåligt block %u utanför giltigt intervall; ignoreras.\n"
#: e2fsck/badblocks.c:46
msgid "while sanity checking the bad blocks inode"
-msgstr "vid rimlighetskontroll av inoden för dåliga block"
+msgstr "vid rimlighetskontroll av inoden för dåliga block"
#: e2fsck/badblocks.c:58
msgid "while reading the bad blocks inode"
-msgstr "vid läsning av inoden för dåliga block"
+msgstr "vid läsning av inoden för dåliga block"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
-msgstr "vid försök att öppna %s"
+msgstr "vid försök att öppna %s"
#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
-msgstr "vid försök att använda popen \"%s\""
+msgstr "vid försök att använda popen \"%s\""
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
-msgstr "vid läsning i listan över dåliga block från fil"
+msgstr "vid läsning i listan över dåliga block från fil"
#: e2fsck/badblocks.c:105
msgid "while updating bad block inode"
-msgstr "vid uppdatering av inoden för dåliga block"
+msgstr "vid uppdatering av inoden för dåliga block"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr "Varning: otillåtet block %u hittat i inoden får dåliga block. Tömt.\n"
+msgstr "Varning: otillåtet block %u hittat i inoden får dåliga block. Tömt.\n"
#: e2fsck/ehandler.c:55
#, c-format
msgid "Error reading block %lu (%s) while %s. "
-msgstr "Fel vid läsning av block %lu (%s) vid %s. "
+msgstr "Fel vid läsning av block %lu (%s) vid %s. "
#: e2fsck/ehandler.c:58
#, c-format
msgid "Error reading block %lu (%s). "
-msgstr "Fel vid läsning av block %lu (%s). "
+msgstr "Fel vid läsning av block %lu (%s). "
#: e2fsck/ehandler.c:61 e2fsck/ehandler.c:110
msgid "Ignore error"
#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
-msgstr "Otillåtet antal block!\n"
+msgstr "Otillåtet antal block!\n"
#: e2fsck/extend.c:50
#, c-format
#: e2fsck/flushb.c:35
#, c-format
msgid "Usage: %s disk\n"
-msgstr "Användning: %s disk\n"
+msgstr "Användning: %s disk\n"
#: e2fsck/flushb.c:64
#, c-format
msgid "BLKFLSBUF ioctl not supported! Can't flush buffers.\n"
-msgstr "BLKFLSBUF-ioctl stöds inte! Kan inte tömma buffertar.\n"
+msgstr "BLKFLSBUF-ioctl stöds inte! Kan inte tömma buffertar.\n"
#: e2fsck/iscan.c:44
#, c-format
msgid "Usage: %s [-F] [-I inode_buffer_blocks] device\n"
-msgstr "Användning: %s [-F] [-I inodbuffertblock] enhet\n"
+msgstr "Användning: %s [-F] [-I inodbuffertblock] enhet\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
-msgstr "vid öppning av %s för utskrivning"
+msgstr "vid öppning av %s för utskrivning"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
-msgstr "vid försök att skriva ut %s"
+msgstr "vid försök att skriva ut %s"
#: e2fsck/iscan.c:119 e2fsck/scantest.c:114 misc/e2image.c:1084
msgid "while opening inode scan"
-msgstr "vid öppning av inodsökning"
+msgstr "vid öppning av inodsökning"
#: e2fsck/iscan.c:127 misc/e2image.c:1102
msgid "while getting next inode"
-msgstr "när nästa inod hämtades"
+msgstr "när nästa inod hämtades"
#: e2fsck/iscan.c:136
#, c-format
msgid "%u inodes scanned.\n"
-msgstr "%u inoder genomsökta.\n"
+msgstr "%u inoder genomsökta.\n"
#: e2fsck/journal.c:512
msgid "reading journal superblock\n"
-msgstr "läser journalsuperblock\n"
+msgstr "läser journalsuperblock\n"
#: e2fsck/journal.c:569
#, c-format
#: e2fsck/journal.c:578
#, c-format
msgid "%s: journal too short\n"
-msgstr "%s: journalen för kort\n"
+msgstr "%s: journalen för kort\n"
#: e2fsck/journal.c:870
#, c-format
msgid "%s: recovering journal\n"
-msgstr "%s: återhämtar journalen\n"
+msgstr "%s: återhämtar journalen\n"
#: e2fsck/journal.c:872
#, c-format
msgid "%s: won't do journal recovery while read-only\n"
-msgstr "%s: återhämtar inte journalen i skrivskyddat läge\n"
+msgstr "%s: återhämtar inte journalen i skrivskyddat läge\n"
#: e2fsck/journal.c:899
#, c-format
msgid "while trying to re-open %s"
-msgstr "vid försök att återöppna %s"
-
-# Första bokstaven i detta och följande meddelanden är ett index som
-# används som en förkortning i andra meddelanden, och inte skrivs ut.
-# Uppslagningen sker på det ursprungliga meddelandet, så det spelar
-# egentligen ingen roll vilket tecken som står först i den översatta
-# strängen. Det viktiga är att det står någon platshållare där, första
-# tecknet skrivs inte ut, vare sig i orginalsträngen eller den översatta
-# strängen. Jag tyckte det var bäst att behålla orginaltecknet.
+msgstr "vid försök att återöppna %s"
+
+# Första bokstaven i detta och följande meddelanden är ett index som
+# används som en förkortning i andra meddelanden, och inte skrivs ut.
+# Uppslagningen sker på det ursprungliga meddelandet, så det spelar
+# egentligen ingen roll vilket tecken som står först i den översatta
+# strängen. Det viktiga är att det står någon platshållare där, första
+# tecknet skrivs inte ut, vare sig i orginalsträngen eller den översatta
+# strängen. Jag tyckte det var bäst att behålla orginaltecknet.
#
-# Jag har felrapporterat hela idén. Det innebär ju att man bygger ihop
-# meningar från delar, och det brukar ju gå sönder i översättningar med
-# olika genus och dylikt. Men författaren har en del bra argument om
-# att förkortningssystemet är en fördel när man skall få plats med så
-# mycket som möjligt på en räddningsdiskett. I det fallet är ändå
-# knappast översättningar med. Så den bästa lösningen är nog att låta
-# systemet som sådant finnas kvar, men inte använda det alls i översatta
+# Jag har felrapporterat hela idén. Det innebär ju att man bygger ihop
+# meningar från delar, och det brukar ju gå sönder i översättningar med
+# olika genus och dylikt. Men författaren har en del bra argument om
+# att förkortningssystemet är en fördel när man skall få plats med så
+# mycket som möjligt på en räddningsdiskett. I det fallet är ändå
+# knappast översättningar med. Så den bästa lösningen är nog att låta
+# systemet som sådant finnas kvar, men inte använda det alls i översatta
# meddelanden.
#: e2fsck/message.c:113
msgid "aextended attribute"
-msgstr "autökat attribut"
+msgstr "autökat attribut"
#: e2fsck/message.c:114
msgid "Aerror allocating"
#: e2fsck/message.c:118
msgid "Cconflicts with some other fs @b"
-msgstr "Ckonflikt med något annat fs @b"
+msgstr "Ckonflikt med något annat fs @b"
#: e2fsck/message.c:119
msgid "iinode"
#: e2fsck/message.c:120
msgid "Iillegal"
-msgstr "Iotillåten"
+msgstr "Iotillåten"
#: e2fsck/message.c:121
msgid "jjournal"
#: e2fsck/message.c:127
msgid "Ffor @i %i (%Q) is"
-msgstr "Fför inod %i (%Q) är"
+msgstr "Fför inod %i (%Q) är"
#: e2fsck/message.c:128
msgid "ggroup"
#: e2fsck/message.c:131
msgid "Lis a link"
-msgstr "Lär en länk"
+msgstr "Lär en länk"
#: e2fsck/message.c:132
msgid "mmultiply-claimed"
-msgstr "mflerfaldigt ianspråkstagna"
+msgstr "mflerfaldigt ianspråkstagna"
#: e2fsck/message.c:133
msgid "ninvalid"
#: e2fsck/message.c:134
msgid "oorphaned"
-msgstr "oföräldralös"
+msgstr "oföräldralös"
#: e2fsck/message.c:135
msgid "pproblem in"
#: e2fsck/message.c:140
msgid "uunattached"
-msgstr "ulös"
+msgstr "ulös"
#: e2fsck/message.c:141
msgid "vdevice"
#: e2fsck/message.c:142
msgid "xextent"
-msgstr "xutsträckning"
+msgstr "xutsträckning"
#: e2fsck/message.c:143
msgid "zzero-length"
-msgstr "znollängds"
+msgstr "znollängds"
#: e2fsck/message.c:154
msgid "<The NULL inode>"
#: e2fsck/message.c:155
msgid "<The bad blocks inode>"
-msgstr "<Inoden för dåliga block>"
+msgstr "<Inoden för dåliga block>"
#: e2fsck/message.c:157
msgid "<The user quota inode>"
-msgstr "<Inoden för användarkvoter>"
+msgstr "<Inoden för användarkvoter>"
#: e2fsck/message.c:158
msgid "<The group quota inode>"
-msgstr "<Inoden för gruppkvoter>"
+msgstr "<Inoden för gruppkvoter>"
#: e2fsck/message.c:159
msgid "<The boot loader inode>"
#: e2fsck/message.c:160
msgid "<The undelete directory inode>"
-msgstr "<Inoden för återhämtning av borttagna kataloger>"
+msgstr "<Inoden för återhämtning av borttagna kataloger>"
#: e2fsck/message.c:161
msgid "<The group descriptor inode>"
#: e2fsck/message.c:341
msgid "named pipe"
-msgstr "namngivet rör"
+msgstr "namngivet rör"
#: e2fsck/message.c:343
msgid "symbolic link"
-msgstr "symbolisk länk"
+msgstr "symbolisk länk"
#: e2fsck/message.c:345 misc/uuidd.c:161
msgid "socket"
#: e2fsck/message.c:347
#, c-format
msgid "unknown file type with mode 0%o"
-msgstr "okänd filtyp med typ 0%o"
+msgstr "okänd filtyp med typ 0%o"
#: e2fsck/message.c:423
msgid "indirect block"
#: e2fsck/message.c:429
msgid "translator block"
-msgstr "översättningsblock"
+msgstr "översättningsblock"
#: e2fsck/message.c:431
msgid "block #"
#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
-msgstr "karta över flerfaldigt i anspråkstagna inoder"
+msgstr "karta över flerfaldigt i anspråkstagna inoder"
#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:729
#, c-format
msgid "internal error: can't find dup_blk for %llu\n"
-msgstr "internt fel: kan inte hitta dup_blk för %llu\n"
+msgstr "internt fel: kan inte hitta dup_blk för %llu\n"
#: e2fsck/pass1b.c:820
msgid "returned from clone_file_block"
-msgstr "återvände från clone_file_block"
+msgstr "återvände från clone_file_block"
#: e2fsck/pass1b.c:842
#, c-format
msgid "internal error: couldn't lookup EA block record for %llu"
-msgstr "internt fel: det gick inte att slå upp EA-blockpost för %llu"
+msgstr "internt fel: det gick inte att slå upp EA-blockpost för %llu"
#: e2fsck/pass1b.c:854
#, c-format
msgid "internal error: couldn't lookup EA inode record for %u"
-msgstr "internt fel: det gick inte att slå upp EA-inodpost för %u"
+msgstr "internt fel: det gick inte att slå upp EA-inodpost för %u"
#: e2fsck/pass1.c:476 e2fsck/pass2.c:782
msgid "reading directory block"
-msgstr "läser katalogblock"
+msgstr "läser katalogblock"
#: e2fsck/pass1.c:599
msgid "in-use inode map"
-msgstr "karta över använda inoder"
+msgstr "karta över använda inoder"
#: e2fsck/pass1.c:610
msgid "directory inode map"
#: e2fsck/pass1.c:620
msgid "regular file inode map"
-msgstr "inodskarta över reguljära filer"
+msgstr "inodskarta över reguljära filer"
#: e2fsck/pass1.c:629
msgid "in-use block map"
-msgstr "karta över använda block"
+msgstr "karta över använda block"
#: e2fsck/pass1.c:696
msgid "opening inode scan"
-msgstr "öppnar inodsökning"
+msgstr "öppnar inodsökning"
#: e2fsck/pass1.c:730
msgid "getting next inode from scan"
-msgstr "hämtar nästa inod från sökning"
+msgstr "hämtar nästa inod från sökning"
#: e2fsck/pass1.c:1240
msgid "Pass 1"
#: e2fsck/pass1.c:1297
#, c-format
msgid "reading indirect blocks of inode %u"
-msgstr "läser indirektblock för inod %u"
+msgstr "läser indirektblock för inod %u"
#: e2fsck/pass1.c:1347
msgid "bad inode map"
-msgstr "karta över dåliga inoder"
+msgstr "karta över dåliga inoder"
#: e2fsck/pass1.c:1370
msgid "inode in bad block map"
-msgstr "inod i karta över dåliga block"
+msgstr "inod i karta över dåliga block"
#: e2fsck/pass1.c:1390
msgid "imagic inode map"
#: e2fsck/pass1.c:1417
msgid "multiply claimed block map"
-msgstr "karta över flerfaldigt i anspråkstagna block"
+msgstr "karta över flerfaldigt i anspråkstagna block"
#: e2fsck/pass1.c:1518
msgid "ext attr block map"
-msgstr "karta över block för utökade attribut"
+msgstr "karta över block för utökade attribut"
#: e2fsck/pass1.c:2266
#, c-format
msgid "%6lu(%c): expecting %6lu got phys %6lu (blkcnt %lld)\n"
-msgstr "%6lu(%c): förväntade %6lu fick fys %6lu (blkant %lld)\n"
+msgstr "%6lu(%c): förväntade %6lu fick fys %6lu (blkant %lld)\n"
#: e2fsck/pass1.c:2627
msgid "block bitmap"
#: e2fsck/pass2.c:805
msgid "Can not continue."
-msgstr "Kan inte fortsätta."
+msgstr "Kan inte fortsätta."
#: e2fsck/pass3.c:77
msgid "inode done bitmap"
#: e2fsck/pass3.c:322
msgid "inode loop detection bitmap"
-msgstr "bitkarta för upptäckt av inodsslingor"
+msgstr "bitkarta för upptäckt av inodsslingor"
#: e2fsck/pass4.c:195
msgid "Pass 4"
#: e2fsck/problem.c:53
msgid "Clear"
-msgstr "Töm"
+msgstr "Töm"
#: e2fsck/problem.c:54
msgid "Relocate"
#: e2fsck/problem.c:59
msgid "Salvage"
-msgstr "Rädda"
+msgstr "Rädda"
#: e2fsck/problem.c:60
msgid "Truncate"
#: e2fsck/problem.c:61
msgid "Clear inode"
-msgstr "Töm inod"
+msgstr "Töm inod"
#: e2fsck/problem.c:62
msgid "Abort"
#: e2fsck/problem.c:64
msgid "Continue"
-msgstr "Fortsätt"
+msgstr "Fortsätt"
#: e2fsck/problem.c:65
msgid "Clone multiply-claimed blocks"
-msgstr "Klona flerfaldigt ianspråkstagna block"
+msgstr "Klona flerfaldigt ianspråkstagna block"
#: e2fsck/problem.c:66
msgid "Delete file"
#: e2fsck/problem.c:68
msgid "Unlink"
-msgstr "Avlänka"
+msgstr "Avlänka"
#: e2fsck/problem.c:69
msgid "Clear HTree index"
-msgstr "Töm HTree-index"
+msgstr "Töm HTree-index"
#: e2fsck/problem.c:70
msgid "Recreate"
-msgstr "Återskapa"
+msgstr "Återskapa"
#: e2fsck/problem.c:79
msgid "(NONE)"
#: e2fsck/problem.c:81
msgid "CLEARED"
-msgstr "TÖMD"
+msgstr "TÖMD"
#: e2fsck/problem.c:82
msgid "RELOCATED"
#: e2fsck/problem.c:85
msgid "RECONNECTED"
-msgstr "ÅTERKOPPLAD"
+msgstr "ÅTERKOPPLAD"
#: e2fsck/problem.c:86
msgid "CREATED"
#: e2fsck/problem.c:87
msgid "SALVAGED"
-msgstr "RÄDDAD"
+msgstr "RÄDDAD"
#: e2fsck/problem.c:88
msgid "TRUNCATED"
#: e2fsck/problem.c:89
msgid "INODE CLEARED"
-msgstr "INOD TÖMD"
+msgstr "INOD TÖMD"
#: e2fsck/problem.c:90
msgid "ABORTED"
#: e2fsck/problem.c:92
msgid "CONTINUING"
-msgstr "FORTSÄTTER"
+msgstr "FORTSÄTTER"
#: e2fsck/problem.c:93
msgid "MULTIPLY-CLAIMED BLOCKS CLONED"
-msgstr "FLERFALDIG IANSPRÅKSTAGNA BLOCK KLONADE"
+msgstr "FLERFALDIG IANSPRÅKSTAGNA BLOCK KLONADE"
#: e2fsck/problem.c:94
msgid "FILE DELETED"
#: e2fsck/problem.c:96
msgid "UNLINKED"
-msgstr "AVLÄNKAD"
+msgstr "AVLÄNKAD"
#: e2fsck/problem.c:97
msgid "HTREE INDEX CLEARED"
-msgstr "HTREE-INDEX TÖMT"
+msgstr "HTREE-INDEX TÖMT"
#: e2fsck/problem.c:98
msgid "WILL RECREATE"
-msgstr "KOMMER ÅTERSKAPA"
+msgstr "KOMMER ÅTERSKAPA"
#. @-expanded: block bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:107
msgid "@b @B for @g %g is not in @g. (@b %b)\n"
-msgstr "blockbitkarta för grupp %g är inte i gruppen. (block %b)\n"
+msgstr "blockbitkarta för grupp %g är inte i gruppen. (block %b)\n"
#. @-expanded: inode bitmap for group %g is not in group. (block %b)\n
#: e2fsck/problem.c:111
msgid "@i @B for @g %g is not in @g. (@b %b)\n"
-msgstr "inodsbitkarta för grupp %g är inte i gruppen. (block %b)\n"
+msgstr "inodsbitkarta för grupp %g är inte i gruppen. (block %b)\n"
#. @-expanded: inode table for group %g is not in group. (block %b)\n
#. @-expanded: WARNING: SEVERE DATA LOSS POSSIBLE.\n
"@i table for @g %g is not in @g. (@b %b)\n"
"WARNING: SEVERE DATA LOSS POSSIBLE.\n"
msgstr ""
-"inodtabell för grupp %g är inte i gruppen. (block %b)\n"
-"VARNING: ALLVARLIG DATAFÖRLUST ÄR MÖJLIG.\n"
+"inodtabell för grupp %g är inte i gruppen. (block %b)\n"
+"VARNING: ALLVARLIG DATAFÖRLUST ÄR MÖJLIG.\n"
#. @-expanded: \n
#. @-expanded: The superblock could not be read or does not describe a correct ext2\n
"\n"
msgstr ""
"\n"
-"Superblocket kunde inte läsas eller beskriver inte ett korrekt\n"
-"ext2-filsystem. Om enheten är giltig och den verkligen innehåller ett\n"
-"ext2-filsystem (och inte växlingsutrymme eller ufs eller något annat)\n"
-"är superblocket trasigt, och du kan försöka köra med ett alternativt\n"
+"Superblocket kunde inte läsas eller beskriver inte ett korrekt\n"
+"ext2-filsystem. Om enheten är giltig och den verkligen innehåller ett\n"
+"ext2-filsystem (och inte växlingsutrymme eller ufs eller något annat)\n"
+"är superblocket trasigt, och du kan försöka köra med ett alternativt\n"
"superblock:\n"
" e2fsck -b %S <enhet>\n"
"\n"
"The physical size of the @v is %c @bs\n"
"Either the @S or the partition table is likely to be corrupt!\n"
msgstr ""
-"Filsystemsstorleken (enligt superblocket) är %b block\n"
-"Den fysiska storleken på enheten är %c block\n"
-"Superblocket eller partitionstabellen är förmodligen trasig!\n"
+"Filsystemsstorleken (enligt superblocket) är %b block\n"
+"Den fysiska storleken på enheten är %c block\n"
+"Superblocket eller partitionstabellen är förmodligen trasig!\n"
#. @-expanded: superblock block_size = %b, fragsize = %c.\n
#. @-expanded: This version of e2fsck does not support fragment sizes different\n
"from the @b size.\n"
msgstr ""
"Superblockets blockstorlek = %b, fragmentstorlek = %c.\n"
-"Denna version av e2fsck stödjer inte andra fragmentstorlekar än\n"
+"Denna version av e2fsck stödjer inte andra fragmentstorlekar än\n"
"blockstorleken.\n"
#. @-expanded: superblock blocks_per_group = %b, should have been %c\n
#. @-expanded: superblock first_data_block = %b, should have been %c\n
#: e2fsck/problem.c:150
msgid "@S first_data_@b = %b, should have been %c\n"
-msgstr "Superblockets första datablock = %b, skulle ha varit %c\n"
+msgstr "Superblockets första datablock = %b, skulle ha varit %c\n"
#. @-expanded: filesystem did not have a UUID; generating one.\n
#. @-expanded: \n
"the backup block group descriptors may be OK.\n"
"\n"
msgstr ""
-"Observera: om det är flera inod- eller blockbitkarteblock eller en del\n"
-"av inodstabellen som måste flyttas, kanske du vill köra e2fsck med\n"
-"flaggan \"-b %S\" först. Problemet kan ligga bara i den primära\n"
+"Observera: om det är flera inod- eller blockbitkarteblock eller en del\n"
+"av inodstabellen som måste flyttas, kanske du vill köra e2fsck med\n"
+"flaggan \"-b %S\" först. Problemet kan ligga bara i den primära\n"
"blockgruppbeskrivaren, och reservblockgruppbeskrivaren kan vara OK.\n"
"\n"
#: e2fsck/problem.c:174
#, c-format
msgid "Error determining size of the physical @v: %m\n"
-msgstr "Fel vid bestämning av den fysiska enheten: %m\n"
+msgstr "Fel vid bestämning av den fysiska enheten: %m\n"
#. @-expanded: inode count in superblock is %i, should be %j.\n
#: e2fsck/problem.c:179
msgid "@i count in @S is %i, @s %j.\n"
-msgstr "inodsantal i superblock är %i, skall vara %j.\n"
+msgstr "inodsantal i superblock är %i, skall vara %j.\n"
#: e2fsck/problem.c:183
msgid "The Hurd does not support the filetype feature.\n"
-msgstr "Hurd stödjer inte funktionen filtyp.\n"
+msgstr "Hurd stödjer inte funktionen filtyp.\n"
#. @-expanded: superblock has an invalid journal (inode %i).\n
#: e2fsck/problem.c:188
#. @-expanded: External journal has multiple filesystem users (unsupported).\n
#: e2fsck/problem.c:193
msgid "External @j has multiple @f users (unsupported).\n"
-msgstr "Extern journal har flera filsystemsanvändare (stödjs ej).\n"
+msgstr "Extern journal har flera filsystemsanvändare (stödjs ej).\n"
#. @-expanded: Can't find external journal\n
#: e2fsck/problem.c:198
#. @-expanded: External journal has bad superblock\n
#: e2fsck/problem.c:203
msgid "External @j has bad @S\n"
-msgstr "Extern journal har dåligt superblock\n"
+msgstr "Extern journal har dåligt superblock\n"
#. @-expanded: External journal does not support this filesystem\n
#: e2fsck/problem.c:208
msgid "External @j does not support this @f\n"
-msgstr "Extern journal stödjer inte detta filsystem\n"
+msgstr "Extern journal stödjer inte detta filsystem\n"
#. @-expanded: filesystem journal superblock is unknown type %N (unsupported).\n
#. @-expanded: It is likely that your copy of e2fsck is old and/or doesn't support this journal
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
-"Filsystemsjournalsuperblock är av okänd typ %N (ej stött).\n"
-"Det är troligt att ditt exemplar av e2fsck är gammalt och/eller inte\n"
-"stödjer detta journalformat.\n"
-"Det är också möjligt att journalsuperblocket är trasigt.\n"
+"Filsystemsjournalsuperblock är av okänd typ %N (ej stött).\n"
+"Det är troligt att ditt exemplar av e2fsck är gammalt och/eller inte\n"
+"stödjer detta journalformat.\n"
+"Det är också möjligt att journalsuperblocket är trasigt.\n"
#. @-expanded: journal superblock is corrupt.\n
#: e2fsck/problem.c:221
msgid "@j @S is corrupt.\n"
-msgstr "Journalsuperblock är trasigt.\n"
+msgstr "Journalsuperblock är trasigt.\n"
#. @-expanded: superblock has_journal flag is clear, but a journal %s is present.\n
#: e2fsck/problem.c:226
#, c-format
msgid "@S has_@j flag is clear, but a @j %s is present.\n"
-msgstr ""
-"Superblocksflagga har_journal är nollställd, men en journal %s finns.\n"
+msgstr "Superblocksflagga har_journal är nollställd, men en journal %s finns.\n"
#. @-expanded: superblock needs_recovery flag is set, but no journal is present.\n
#: e2fsck/problem.c:231
msgid "@S needs_recovery flag is set, but no @j is present.\n"
-msgstr "Superblockflagga behöver_rättas är satt, men ingen journal finns.\n"
+msgstr "Superblockflagga behöver_rättas är satt, men ingen journal finns.\n"
#. @-expanded: superblock needs_recovery flag is clear, but journal has data.\n
#: e2fsck/problem.c:236
msgid "@S needs_recovery flag is clear, but @j has data.\n"
-msgstr ""
-"Superblocksflagga behöver_rättas är nollställd, men journal har data.\n"
+msgstr "Superblocksflagga behöver_rättas är nollställd, men journal har data.\n"
#. @-expanded: Clear journal
#: e2fsck/problem.c:241
msgid "Clear @j"
-msgstr "Töm journal"
+msgstr "Töm journal"
#. @-expanded: filesystem has feature flag(s) set, but is a revision 0 filesystem.
#: e2fsck/problem.c:246 e2fsck/problem.c:695
msgid "@f has feature flag(s) set, but is a revision 0 @f. "
-msgstr ""
-"filsystemet har funktionsflaggor satta, men är ett revision 0-filsystem. "
+msgstr "filsystemet har funktionsflaggor satta, men är ett revision 0-filsystem. "
#. @-expanded: %s orphaned inode %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n
#: e2fsck/problem.c:251
msgid "%s @o @i %i (uid=%Iu, gid=%Ig, mode=%Im, size=%Is)\n"
-msgstr ""
-"%s föräldralös inod %i (uid=%Iu, gid=%Ig, rättighet=%Im, storlek=%Is)\n"
+msgstr "%s föräldralös inod %i (uid=%Iu, gid=%Ig, rättighet=%Im, storlek=%Is)\n"
#. @-expanded: illegal %B (%b) found in orphaned inode %i.\n
#: e2fsck/problem.c:256
msgid "@I %B (%b) found in @o @i %i.\n"
-msgstr "Ogiltigt %B (%b) hittat i föräldralös inod %i.\n"
+msgstr "Ogiltigt %B (%b) hittat i föräldralös inod %i.\n"
#. @-expanded: Already cleared %B (%b) found in orphaned inode %i.\n
#: e2fsck/problem.c:261
msgid "Already cleared %B (%b) found in @o @i %i.\n"
-msgstr "Redan tömt %B (%b) hittat i föräldralös inod %i.\n"
+msgstr "Redan tömt %B (%b) hittat i föräldralös inod %i.\n"
#. @-expanded: illegal orphaned inode %i in superblock.\n
#: e2fsck/problem.c:266
#, c-format
msgid "@I @o @i %i in @S.\n"
-msgstr "Ogiltig föräldralös inod %i i superblock.\n"
+msgstr "Ogiltig föräldralös inod %i i superblock.\n"
#. @-expanded: illegal inode %i in orphaned inode list.\n
#: e2fsck/problem.c:271
#, c-format
msgid "@I @i %i in @o @i list.\n"
-msgstr "Ogiltig inod %i i föräldralös inodlista.\n"
+msgstr "Ogiltig inod %i i föräldralös inodlista.\n"
#. @-expanded: journal superblock has an unknown read-only feature flag set.\n
#: e2fsck/problem.c:276
msgid "@j @S has an unknown read-only feature flag set.\n"
-msgstr "Journalsuperblock har okänd skrivskyddad funktionsflagga satt.\n"
+msgstr "Journalsuperblock har okänd skrivskyddad funktionsflagga satt.\n"
#. @-expanded: journal superblock has an unknown incompatible feature flag set.\n
#: e2fsck/problem.c:281
msgid "@j @S has an unknown incompatible feature flag set.\n"
-msgstr "Journalsuperblock har okänd inkompatibel funktionsflagga satt.\n"
+msgstr "Journalsuperblock har okänd inkompatibel funktionsflagga satt.\n"
#. @-expanded: journal version not supported by this e2fsck.\n
#: e2fsck/problem.c:286
msgid "@j version not supported by this e2fsck.\n"
-msgstr "Journalversion stöds inte av denna e2fsck.\n"
+msgstr "Journalversion stöds inte av denna e2fsck.\n"
#. @-expanded: Moving journal from /%s to hidden inode.\n
#. @-expanded: \n
"Moving @j from /%s to hidden @i.\n"
"\n"
msgstr ""
-"Flyttar journal från /%s till dold inod.\n"
+"Flyttar journal från /%s till dold inod.\n"
"\n"
#. @-expanded: Error moving journal: %m\n
"Clearing fields beyond the V1 @j @S...\n"
"\n"
msgstr ""
-"Hittade ogiltiga V2-journalsuperblockfält (från V1-journal).\n"
-"Tömmer fält efter V1-journalsuperblock ...\n"
+"Hittade ogiltiga V2-journalsuperblockfält (från V1-journal).\n"
+"Tömmer fält efter V1-journalsuperblock ...\n"
"\n"
#. @-expanded: Run journal anyway
#: e2fsck/problem.c:307
msgid "Run @j anyway"
-msgstr "Kör journal ändå"
+msgstr "Kör journal ändå"
#. @-expanded: Recovery flag not set in backup superblock, so running journal anyway.\n
#: e2fsck/problem.c:312
msgid "Recovery flag not set in backup @S, so running @j anyway.\n"
-msgstr "Rättningsflagga inte satt i reservsuperblock, så kör journal ändå.\n"
+msgstr "Rättningsflagga inte satt i reservsuperblock, så kör journal ändå.\n"
#. @-expanded: Backing up journal inode block information.\n
#. @-expanded: \n
"Backing up @j @i @b information.\n"
"\n"
msgstr ""
-"Säkerhetskopierar blockinformation för journalinod.\n"
+"Säkerhetskopierar blockinformation för journalinod.\n"
"\n"
#. @-expanded: filesystem does not have resize_inode enabled, but s_reserved_gdt_blocks\n
"is %N; @s zero. "
msgstr ""
"Filsystemet har inte resize_inode aktiverat, men r_reserved_gdt_blocks\n"
-"är %N; skulle varit noll. "
+"är %N; skulle varit noll. "
#. @-expanded: Resize_inode not enabled, but the resize inode is non-zero.
#: e2fsck/problem.c:328
msgid "Resize_@i not enabled, but the resize @i is non-zero. "
-msgstr ""
-"Resize_inode är inte aktiverat, men storleksändringsinoden är inte noll. "
+msgstr "Resize_inode är inte aktiverat, men storleksändringsinoden är inte noll. "
#. @-expanded: Resize inode not valid.
#: e2fsck/problem.c:333
msgid "Resize @i not valid. "
-msgstr "Storleksändringsinod är inte giltig. "
+msgstr "Storleksändringsinod är inte giltig. "
#. @-expanded: superblock last mount time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
"\tnow = %T) is in the future.\n"
msgstr ""
"Superblockets senaste monteringstid (%t,\n"
-"\tnu = %T) är i framtiden.\n"
+"\tnu = %T) är i framtiden.\n"
#. @-expanded: superblock last write time (%t,\n
#. @-expanded: \tnow = %T) is in the future.\n
"\tnow = %T) is in the future.\n"
msgstr ""
"Superblockets senaste skrivningstid (%t,\n"
-"\tnu = %T) är i framtiden.\n"
+"\tnu = %T) är i framtiden.\n"
#. @-expanded: superblock hint for external superblock should be %X.
#: e2fsck/problem.c:347
#, c-format
msgid "@S hint for external superblock @s %X. "
-msgstr "Superblocktips för externt superblock borde vara %X."
+msgstr "Superblocktips för externt superblock borde vara %X."
#. @-expanded: Adding dirhash hint to filesystem.\n
#. @-expanded: \n
"Adding dirhash hint to @f.\n"
"\n"
msgstr ""
-"Lägger till dirhash-tips till filsystem.\n"
+"Lägger till dirhash-tips till filsystem.\n"
"\n"
#. @-expanded: group descriptor %g checksum is %04x, should be %04y.
#: e2fsck/problem.c:357
msgid "@g descriptor %g checksum is %04x, should be %04y. "
-msgstr "kontrollsumma för gruppbeskrivare %g är %04x, skall vara %04y. "
+msgstr "kontrollsumma för gruppbeskrivare %g är %04x, skall vara %04y. "
#. @-expanded: group descriptor %g marked uninitialized without feature set.\n
#: e2fsck/problem.c:362
#, c-format
msgid "@g descriptor %g marked uninitialized without feature set.\n"
-msgstr ""
-"gruppbeskrivare %g är markerad oinitierad utan att egenskapen är satt.\n"
+msgstr "gruppbeskrivare %g är markerad oinitierad utan att egenskapen är satt.\n"
#. @-expanded: group descriptor %g has invalid unused inodes count %b.
#: e2fsck/problem.c:367
msgid "@g descriptor %g has invalid unused inodes count %b. "
-msgstr "gruppbeskrivare %g har ogiltigt antal oanvända inoder %b. "
+msgstr "gruppbeskrivare %g har ogiltigt antal oanvända inoder %b. "
#. @-expanded: Last group block bitmap uninitialized.
#: e2fsck/problem.c:372
#: e2fsck/problem.c:377
#, c-format
msgid "Journal transaction %i was corrupt, replay was aborted.\n"
-msgstr "Journaltransaktion %i var trasig, återuppspelningen avbröts.\n"
+msgstr "Journaltransaktion %i var trasig, återuppspelningen avbröts.\n"
#: e2fsck/problem.c:381
msgid "The test_fs flag is set (and ext4 is available). "
-msgstr "Flaggan test_fs är satt (och ext4 är tillgänligt). "
+msgstr "Flaggan test_fs är satt (och ext4 är tillgänligt). "
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Superblockets senaste monteringstid ligger i framtiden.\n"
-"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
+"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
#. @-expanded: superblock last write time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Superblockets skrevs senast i framtiden.\n"
-"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
+"\t(med mindre än en dag, förmodligen för att hårdvaruklockan går fel)"
#. @-expanded: One or more block group descriptor checksums are invalid.
#: e2fsck/problem.c:398
msgid "One or more @b @g descriptor checksums are invalid. "
-msgstr "Kontrollsumma för en eller flera blockgruppbeskrivare är ogiltig. "
+msgstr "Kontrollsumma för en eller flera blockgruppbeskrivare är ogiltig. "
#. @-expanded: Setting free inodes count to %j (was %i)\n
#: e2fsck/problem.c:403
msgid "Setting free @is count to %j (was %i)\n"
-msgstr "Sätter antalet fria inoder %j (var %i)\n"
+msgstr "Sätter antalet fria inoder %j (var %i)\n"
#. @-expanded: Setting free blocks count to %c (was %b)\n
#: e2fsck/problem.c:408
msgid "Setting free @bs count to %c (was %b)\n"
-msgstr "Sätter antalet fria block till %c (var %b)\n"
+msgstr "Sätter antalet fria block till %c (var %b)\n"
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
msgstr ""
-"Gör kvotinoder dolda.\n"
+"Gör kvotinod %i (%Q) dold.\n"
"\n"
#. @-expanded: superblock has invalid MMP block.
#. @-expanded: root inode is not a directory.
#: e2fsck/problem.c:444
msgid "@r is not a @d. "
-msgstr "Rootinod är inte en katalog. "
+msgstr "Rootinod är inte en katalog. "
#. @-expanded: root inode has dtime set (probably due to old mke2fs).
#: e2fsck/problem.c:449
msgid "@r has dtime set (probably due to old mke2fs). "
-msgstr "rotinod har dtid satt (förmodligen på grund av gammal mke2fs). "
+msgstr "rotinod har dtid satt (förmodligen på grund av gammal mke2fs). "
#. @-expanded: Reserved inode %i (%Q) has invalid mode.
#: e2fsck/problem.c:454
msgid "Reserved @i %i (%Q) has @n mode. "
-msgstr "Reserverad inod %i %Q har ogiltiga rättigheter. "
+msgstr "Reserverad inod %i %Q har ogiltiga rättigheter. "
#. @-expanded: deleted inode %i has zero dtime.
#: e2fsck/problem.c:459
#: e2fsck/problem.c:464
#, c-format
msgid "@i %i is in use, but has dtime set. "
-msgstr "Inod %i används, men har dtid satt. "
+msgstr "Inod %i används, men har dtid satt. "
#. @-expanded: inode %i is a zero-length directory.
#: e2fsck/problem.c:469
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "Inod %i är en nollängds katalog. "
+msgstr "Inod %i är en nollängds katalog. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:474
msgid "@g %g's @b @B at %b @C.\n"
-msgstr ""
-"Grupp %g:s blockbitkarta vid %b står i konflikt med annat filsystemblock.\n"
+msgstr "Grupp %g:s blockbitkarta vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's inode bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:479
msgid "@g %g's @i @B at %b @C.\n"
-msgstr ""
-"Grupp %g:s inodbitkarta vid %b står i konflikt med annat filsystemblock.\n"
+msgstr "Grupp %g:s inodbitkarta vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's inode table at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:484
msgid "@g %g's @i table at %b @C.\n"
-msgstr ""
-"Grupp %g:s inodtabell vid %b står i konflikt med annat filsystemblock.\n"
+msgstr "Grupp %g:s inodtabell vid %b står i konflikt med annat filsystemblock.\n"
#. @-expanded: group %g's block bitmap (%b) is bad.
#: e2fsck/problem.c:489
msgid "@g %g's @b @B (%b) is bad. "
-msgstr "Grupp %g:s blockbitkarta (%b) år felaktig. "
+msgstr "Grupp %g:s blockbitkarta (%b) år felaktig. "
#. @-expanded: group %g's inode bitmap (%b) is bad.
#: e2fsck/problem.c:494
msgid "@g %g's @i @B (%b) is bad. "
-msgstr "Grupp %g:s inodbitkarta (%b) är felaktig. "
+msgstr "Grupp %g:s inodbitkarta (%b) är felaktig. "
#. @-expanded: inode %i, i_size is %Is, should be %N.
#: e2fsck/problem.c:499
msgid "@i %i, i_size is %Is, @s %N. "
-msgstr "Inod %i, i_storlek är %Is, skulle varit %N. "
+msgstr "Inod %i, i_storlek är %Is, skulle varit %N. "
#. @-expanded: inode %i, i_blocks is %Ib, should be %N.
#: e2fsck/problem.c:504
msgid "@i %i, i_@bs is %Ib, @s %N. "
-msgstr "Inod %i, i_block är %Ib, skulle varit %N. "
+msgstr "Inod %i, i_block är %Ib, skulle varit %N. "
#. @-expanded: illegal %B (%b) in inode %i.
#: e2fsck/problem.c:509
#. @-expanded: %B (%b) overlaps filesystem metadata in inode %i.
#: e2fsck/problem.c:514
msgid "%B (%b) overlaps @f metadata in @i %i. "
-msgstr "%B (%b) överlappar filsystemmetadata i inod %i. "
+msgstr "%B (%b) överlappar filsystemmetadata i inod %i. "
#. @-expanded: inode %i has illegal block(s).
#: e2fsck/problem.c:519
#: e2fsck/problem.c:524
#, c-format
msgid "Too many illegal @bs in @i %i.\n"
-msgstr "För många ogiltiga block i inod %i.\n"
+msgstr "För många ogiltiga block i inod %i.\n"
#. @-expanded: illegal %B (%b) in bad block inode.
#: e2fsck/problem.c:529
msgid "@I %B (%b) in bad @b @i. "
-msgstr "Ogiltigt %B (%b) i inod för felaktiga block. "
+msgstr "Ogiltigt %B (%b) i inod för felaktiga block. "
#. @-expanded: Bad block inode has illegal block(s).
#: e2fsck/problem.c:534
#. @-expanded: Duplicate or bad block in use!\n
#: e2fsck/problem.c:539
msgid "Duplicate or bad @b in use!\n"
-msgstr "Duplicerat eller felaktigt block används!\n"
+msgstr "Duplicerat eller felaktigt block används!\n"
#. @-expanded: Bad block %b used as bad block inode indirect block.
#: e2fsck/problem.c:544
msgid "Bad @b %b used as bad @b @i indirect @b. "
-msgstr ""
-"Felaktigt block %b använt som indirektblock för inod för dåliga block. "
+msgstr "Felaktigt block %b använt som indirektblock för inod för dåliga block. "
#. @-expanded: \n
#. @-expanded: The bad block inode has probably been corrupted. You probably\n
"in the @f.\n"
msgstr ""
"\n"
-"Inoden för dåliga block har antagligen blivit skadad. Du bör\n"
-"antagligen sluta nu och köra e2fsck -c för att söka efter dåliga block\n"
+"Inoden för dåliga block har antagligen blivit skadad. Du bör\n"
+"antagligen sluta nu och köra e2fsck -c för att söka efter dåliga block\n"
"i filsystemet.\n"
#. @-expanded: \n
"If the @b is really bad, the @f can not be fixed.\n"
msgstr ""
"\n"
-"Om blocket verkligen är dåligt kan inte filsystemet lagas.\n"
+"Om blocket verkligen är dåligt kan inte filsystemet lagas.\n"
#. @-expanded: You can remove this block from the bad block list and hope\n
#. @-expanded: that the block is really OK. But there are no guarantees.\n
"that the @b is really OK. But there are no guarantees.\n"
"\n"
msgstr ""
-"Du kan ta bort detta block från listan över dåliga block och hoppas\n"
-"att blocket verkligen är OK. men det finns inga garaniter.\n"
+"Du kan ta bort detta block från listan över dåliga block och hoppas\n"
+"att blocket verkligen är OK. men det finns inga garaniter.\n"
"\n"
#. @-expanded: The primary superblock (%b) is on the bad block list.\n
#: e2fsck/problem.c:567
msgid "The primary @S (%b) is on the bad @b list.\n"
-msgstr "Det primära superblocket (%b) är på listan över dåliga block.\n"
+msgstr "Det primära superblocket (%b) är på listan över dåliga block.\n"
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr ""
-"Block %b i de primära gruppbeskrivarna är på listan över dåliga block\n"
+msgstr "Block %b i de primära gruppbeskrivarna är på listan över dåliga block\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
msgid "Warning: Group %g's @S (%b) is bad.\n"
-msgstr "Varning: Grupp %g:s superblock (%b) är dåligt.\n"
+msgstr "Varning: Grupp %g:s superblock (%b) är dåligt.\n"
#. @-expanded: Warning: Group %g's copy of the group descriptors has a bad block (%b).\n
#: e2fsck/problem.c:583
msgid "Warning: Group %g's copy of the @g descriptors has a bad @b (%b).\n"
-msgstr ""
-"Varning: Grupp %g:s kopia av gruppbeskrivarna har ett dåligt block (%b).\n"
+msgstr "Varning: Grupp %g:s kopia av gruppbeskrivarna har ett dåligt block (%b).\n"
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr ""
-"Programmeringsfel? Block nr. %b tas i anspråk utan anledning i "
-"process_bad_block.\n"
+msgstr "Programmeringsfel? Block nr. %b tas i anspråk utan anledning i process_bad_block.\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
msgid "@A %N contiguous @b(s) in @b @g %g for %s: %m\n"
-msgstr ""
-"Fel vid allokering av %N konsekutiva block i blockgrupp %g för %s: %m\n"
+msgstr "Fel vid allokering av %N konsekutiva block i blockgrupp %g för %s: %m\n"
#. @-expanded: error allocating block buffer for relocating %s\n
#: e2fsck/problem.c:600
#, c-format
msgid "@A @b buffer for relocating %s\n"
-msgstr "Fil vid allokering av blockbuffert för relokering av %s\n"
+msgstr "Fil vid allokering av blockbuffert för relokering av %s\n"
#. @-expanded: Relocating group %g's %s from %b to %c...\n
#: e2fsck/problem.c:605
msgid "Relocating @g %g's %s from %b to %c...\n"
-msgstr "Relokerar grupp %g:s %s från %b till %c ...\n"
+msgstr "Relokerar grupp %g:s %s från %b till %c ...\n"
#. @-expanded: Relocating group %g's %s to %c...\n
#: e2fsck/problem.c:610
#. @-expanded: Warning: could not read block %b of %s: %m\n
#: e2fsck/problem.c:615
msgid "Warning: could not read @b %b of %s: %m\n"
-msgstr "Varning: kunde inte läsa block %b av %s: %m\n"
+msgstr "Varning: kunde inte läsa block %b av %s: %m\n"
#. @-expanded: Warning: could not write block %b for %s: %m\n
#: e2fsck/problem.c:620
#: e2fsck/problem.c:635
#, c-format
msgid "@A icount link information: %m\n"
-msgstr "Fel vid allokering av icount-länkinformation: %m\n"
+msgstr "Fel vid allokering av icount-länkinformation: %m\n"
#. @-expanded: error allocating directory block array: %m\n
#: e2fsck/problem.c:640
#: e2fsck/problem.c:645
#, c-format
msgid "Error while scanning @is (%i): %m\n"
-msgstr "Fel vid genomsökning av inoder (%i): %m\n"
+msgstr "Fel vid genomsökning av inoder (%i): %m\n"
#. @-expanded: Error while iterating over blocks in inode %i: %m\n
#: e2fsck/problem.c:650
#, c-format
msgid "Error while iterating over @bs in @i %i: %m\n"
-msgstr "Fel vid iterering över block i inod %i: %m\n"
+msgstr "Fel vid iterering över block i inod %i: %m\n"
#. @-expanded: Error storing inode count information (inode=%i, count=%N): %m\n
#: e2fsck/problem.c:655
msgid "Error storing @i count information (@i=%i, count=%N): %m\n"
-msgstr "Fel vid lagring av inodsräknarinformation (inod=%i, antal=%N): %m\n"
+msgstr "Fel vid lagring av inodsräknarinformation (inod=%i, antal=%N): %m\n"
#. @-expanded: Error storing directory block information (inode=%i, block=%b, num=%N): %m\n
#: e2fsck/problem.c:660
msgid "Error storing @d @b information (@i=%i, @b=%b, num=%N): %m\n"
-msgstr ""
-"Fel vid lagring av katalogblocksinformation (inod=%i, block=%b, antal=%N): "
-"%m\n"
+msgstr "Fel vid lagring av katalogblocksinformation (inod=%i, block=%b, antal=%N): %m\n"
#. @-expanded: Error reading inode %i: %m\n
#: e2fsck/problem.c:666
#, c-format
msgid "Error reading @i %i: %m\n"
-msgstr "Fel vid läsning av inod %i: %m\n"
+msgstr "Fel vid läsning av inod %i: %m\n"
#. @-expanded: inode %i has imagic flag set.
#: e2fsck/problem.c:674
"Special (@v/socket/fifo/symlink) file (@i %i) has immutable\n"
"or append-only flag set. "
msgstr ""
-"Specialfil (enhet/uttag (socket)/fifo/symlänk) (inod %i) har flaggan\n"
-"oföränderlig eller endast tillägg satt."
+"Specialfil (enhet/uttag (socket)/fifo/symlänk) (inod %i) har flaggan\n"
+"oföränderlig eller endast tillägg satt."
#. @-expanded: inode %i has compression flag set on filesystem without compression support.
#: e2fsck/problem.c:685
#, c-format
msgid "@i %i has @cion flag set on @f without @cion support. "
-msgstr ""
-"Inod %i har kompressionsflagga satt på filsystem utan kompressionsstöd. "
+msgstr "Inod %i har kompressionsflagga satt på filsystem utan kompressionsstöd. "
#. @-expanded: Special (device/socket/fifo) inode %i has non-zero size.
#: e2fsck/problem.c:690
#. @-expanded: journal inode is not in use, but contains data.
#: e2fsck/problem.c:700
msgid "@j @i is not in use, but contains data. "
-msgstr "Journalinod används, men innehåller data. "
+msgstr "Journalinod används, men innehåller data. "
#. @-expanded: journal is not regular file.
#: e2fsck/problem.c:705
msgid "@j is not regular file. "
-msgstr "Journal är inte en vanlig fil. "
+msgstr "Journal är inte en vanlig fil. "
#. @-expanded: inode %i was part of the orphaned inode list.
#: e2fsck/problem.c:710
#, c-format
msgid "@i %i was part of the @o @i list. "
-msgstr "Inod %i var med i listan över föräldralösa inoder. "
+msgstr "Inod %i var med i listan över föräldralösa inoder. "
#. @-expanded: inodes that were part of a corrupted orphan linked list found.
#: e2fsck/problem.c:716
msgid "@is that were part of a corrupted orphan linked list found. "
-msgstr "Inoder som var med i trasig lista över föräldralösa inoder hittad. "
+msgstr "Inoder som var med i trasig lista över föräldralösa inoder hittad. "
#. @-expanded: error allocating refcount structure (%N): %m\n
#: e2fsck/problem.c:721
msgid "@A refcount structure (%N): %m\n"
-msgstr "Fel vid allokering av referensräknarstruktur (%N): %m\n"
+msgstr "Fel vid allokering av referensräknarstruktur (%N): %m\n"
#. @-expanded: Error reading extended attribute block %b for inode %i.
#: e2fsck/problem.c:726
msgid "Error reading @a @b %b for @i %i. "
-msgstr "Fel vid läsning av utökade attribut-block %b för inod %i. "
+msgstr "Fel vid läsning av utökade attribut-block %b för inod %i. "
#. @-expanded: inode %i has a bad extended attribute block %b.
#: e2fsck/problem.c:731
msgid "@i %i has a bad @a @b %b. "
-msgstr "Inod %i har ett felaktigt utökade attribut-block %b. "
+msgstr "Inod %i har ett felaktigt utökade attribut-block %b. "
#. @-expanded: Error reading extended attribute block %b (%m).
#: e2fsck/problem.c:736
msgid "Error reading @a @b %b (%m). "
-msgstr "Fel vid läsning av utökade attribut-block %b (%m). "
+msgstr "Fel vid läsning av utökade attribut-block %b (%m). "
#. @-expanded: extended attribute block %b has reference count %r, should be %N.
#: e2fsck/problem.c:741
msgid "@a @b %b has reference count %r, @s %N. "
-msgstr "Utökade attribut-block %b har referensräknare %r, skall vara %N. "
+msgstr "Utökade attribut-block %b har referensräknare %r, skall vara %N. "
#. @-expanded: Error writing extended attribute block %b (%m).
#: e2fsck/problem.c:746
msgid "Error writing @a @b %b (%m). "
-msgstr "Fel vid skrivning av utökade attribut-block %b (%m). "
+msgstr "Fel vid skrivning av utökade attribut-block %b (%m). "
#. @-expanded: extended attribute block %b has h_blocks > 1.
#: e2fsck/problem.c:751
msgid "@a @b %b has h_@bs > 1. "
-msgstr "Utökade attribut-block %b har h_blocks > 1. "
+msgstr "Utökade attribut-block %b har h_blocks > 1. "
#. @-expanded: error allocating extended attribute block %b.
#: e2fsck/problem.c:756
msgid "@A @a @b %b. "
-msgstr "Fel vid allokering av block för utökade attribut %b. "
+msgstr "Fel vid allokering av block för utökade attribut %b. "
#. @-expanded: extended attribute block %b is corrupt (allocation collision).
#: e2fsck/problem.c:761
msgid "@a @b %b is corrupt (allocation collision). "
-msgstr "Utökade attribut-block %b är trasigt (allokeringskollision). "
+msgstr "Utökade attribut-block %b är trasigt (allokeringskollision). "
#. @-expanded: extended attribute block %b is corrupt (invalid name).
#: e2fsck/problem.c:766
msgid "@a @b %b is corrupt (@n name). "
-msgstr "Utökade attribut-block %b är trasigt (ogiltigt namn). "
+msgstr "Utökade attribut-block %b är trasigt (ogiltigt namn). "
#. @-expanded: extended attribute block %b is corrupt (invalid value).
#: e2fsck/problem.c:771
msgid "@a @b %b is corrupt (@n value). "
-msgstr "Utökade attribut-block %b är trasigt (ogiltigt värde). "
+msgstr "Utökade attribut-block %b är trasigt (ogiltigt värde). "
#. @-expanded: inode %i is too big.
#: e2fsck/problem.c:776
#, c-format
msgid "@i %i is too big. "
-msgstr "Inod %i är för stor. "
+msgstr "Inod %i är för stor. "
#. @-expanded: %B (%b) causes directory to be too big.
#: e2fsck/problem.c:780
msgid "%B (%b) causes @d to be too big. "
-msgstr "%B (%b) får katalog att bli för stor. "
+msgstr "%B (%b) får katalog att bli för stor. "
#: e2fsck/problem.c:785
msgid "%B (%b) causes file to be too big. "
-msgstr "%B (%b) får fil att bli för stor. "
+msgstr "%B (%b) får fil att bli för stor. "
#: e2fsck/problem.c:790
msgid "%B (%b) causes symlink to be too big. "
-msgstr "%B (%b) får symlänk att bli för stor. "
+msgstr "%B (%b) får symlänk att bli för stor. "
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
#: e2fsck/problem.c:795
#, c-format
msgid "@i %i has INDEX_FL flag set on @f without htree support.\n"
-msgstr "Inod %i har flagga INDEX_FL satt på filsystem utan stöd för htree.\n"
+msgstr "Inod %i har flagga INDEX_FL satt på filsystem utan stöd för htree.\n"
#. @-expanded: inode %i has INDEX_FL flag set but is not a directory.\n
#: e2fsck/problem.c:800
#, c-format
msgid "@i %i has INDEX_FL flag set but is not a @d.\n"
-msgstr "Inod %i har flagga INDEX_FL satt men är inte en katalog.\n"
+msgstr "Inod %i har flagga INDEX_FL satt men är inte en katalog.\n"
#. @-expanded: HTREE directory inode %i has an invalid root node.\n
#: e2fsck/problem.c:805
#. @-expanded: HTREE directory inode %i has an unsupported hash version (%N)\n
#: e2fsck/problem.c:810
msgid "@h %i has an unsupported hash version (%N)\n"
-msgstr "HTREE katalog-inod %i har en hashversion som inte stöds (%N)\n"
+msgstr "HTREE katalog-inod %i har en hashversion som inte stöds (%N)\n"
#. @-expanded: HTREE directory inode %i uses an incompatible htree root node flag.\n
#: e2fsck/problem.c:815
#, c-format
msgid "@h %i uses an incompatible htree root node flag.\n"
-msgstr "HTREE katalog-inod %i använder en inkompatibel htree rotnodsflagga.\n"
+msgstr "HTREE katalog-inod %i använder en inkompatibel htree rotnodsflagga.\n"
#. @-expanded: HTREE directory inode %i has a tree depth (%N) which is too big\n
#: e2fsck/problem.c:820
msgid "@h %i has a tree depth (%N) which is too big\n"
-msgstr "HTREE katalog-inod %i har ett träddjup (%N) som är för stort\n"
+msgstr "HTREE katalog-inod %i har ett träddjup (%N) som är för stort\n"
#. @-expanded: Bad block inode has an indirect block (%b) that conflicts with\n
#. @-expanded: filesystem metadata.
"Bad @b @i has an indirect @b (%b) that conflicts with\n"
"@f metadata. "
msgstr ""
-"Inoden för dåliga block har ett indirektblock (%b) som står i konflikt\n"
+"Inoden för dåliga block har ett indirektblock (%b) som står i konflikt\n"
"med filsystemsmetadata. "
#. @-expanded: Resize inode (re)creation failed: %m.
#: e2fsck/problem.c:831
#, c-format
msgid "Resize @i (re)creation failed: %m."
-msgstr "Misslyckades att återskapa storleksändringsinod: %m."
+msgstr "Misslyckades att återskapa storleksändringsinod: %m."
#. @-expanded: inode %i has a extra size (%IS) which is invalid\n
#: e2fsck/problem.c:836
msgid "@i %i has a extra size (%IS) which is @n\n"
-msgstr "Inod %i har en extra storlek (%IS) som är ogiltig\n"
+msgstr "Inod %i har en extra storlek (%IS) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a namelen (%N) which is invalid\n
#: e2fsck/problem.c:841
msgid "@a in @i %i has a namelen (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har ett namelen (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har ett namelen (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a value offset (%N) which is invalid\n
#: e2fsck/problem.c:846
msgid "@a in @i %i has a value offset (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har en värdeposition (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har en värdeposition (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a value block (%N) which is invalid (must be 0)\n
#: e2fsck/problem.c:851
msgid "@a in @i %i has a value @b (%N) which is @n (must be 0)\n"
-msgstr ""
-"Utökat attribut i inod %i har ett värdeblock (%N) som är ogiltigt (måste "
-"vara 0)\n"
+msgstr "Utökat attribut i inod %i har ett värdeblock (%N) som är ogiltigt (måste vara 0)\n"
#. @-expanded: extended attribute in inode %i has a value size (%N) which is invalid\n
#: e2fsck/problem.c:856
msgid "@a in @i %i has a value size (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har ett värdestorlek (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har ett värdestorlek (%N) som är ogiltig\n"
#. @-expanded: extended attribute in inode %i has a hash (%N) which is invalid\n
#: e2fsck/problem.c:861
msgid "@a in @i %i has a hash (%N) which is @n\n"
-msgstr "Utökat attribut i inod %i har hash (%N) som är ogiltig\n"
+msgstr "Utökat attribut i inod %i har hash (%N) som är ogiltig\n"
#. @-expanded: inode %i is a %It but it looks like it is really a directory.\n
#: e2fsck/problem.c:866
msgid "@i %i is a %It but it looks like it is really a directory.\n"
-msgstr "inod %i är en %It men det ser ut som det egentligen är en katalog.\n"
+msgstr "inod %i är en %It men det ser ut som det egentligen är en katalog.\n"
#. @-expanded: Error while reading over extent tree in inode %i: %m\n
#: e2fsck/problem.c:871
#, c-format
msgid "Error while reading over @x tree in @i %i: %m\n"
-msgstr "Fel vid läsning över utsträckningsträd i inod %i: %m\n"
+msgstr "Fel vid läsning över utsträckningsträd i inod %i: %m\n"
#. @-expanded: Failed to iterate extents in inode %i\n
#. @-expanded: \t(op %s, blk %b, lblk %c): %m\n
"Failed to iterate extents in @i %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
msgstr ""
-"Misslyckades att iterera över utsträckningar i inod %i\n"
+"Misslyckades att iterera över utsträckningar i inod %i\n"
"\t(op %s, blk %b, lblk %c): %m\n"
#. @-expanded: inode %i has an invalid extent\n
"@i %i has an @n extent\n"
"\t(logical @b %c, @n physical @b %b, len %N)\n"
msgstr ""
-"inod %i har en ogiltig utsträckning\n"
-"\t(logiskt block %c, ogiltigt fysiskt block %b, längd %N)\n"
+"inod %i har en ogiltig utsträckning\n"
+"\t(logiskt block %c, ogiltigt fysiskt block %b, längd %N)\n"
#. @-expanded: inode %i has an invalid extent\n
#. @-expanded: \t(logical block %c, physical block %b, invalid len %N)\n
"@i %i has an @n extent\n"
"\t(logical @b %c, physical @b %b, @n len %N)\n"
msgstr ""
-"inod %i har en ogiltig utsträckning\n"
-"\t(logiskt block %c, fysiskt block %b, ogiltig längd %N)\n"
+"inod %i har en ogiltig utsträckning\n"
+"\t(logiskt block %c, fysiskt block %b, ogiltig längd %N)\n"
#. @-expanded: inode %i has EXTENTS_FL flag set on filesystem without extents support.\n
#: e2fsck/problem.c:892
#, c-format
msgid "@i %i has EXTENTS_FL flag set on @f without extents support.\n"
-msgstr ""
-"Inod %i har flaggan EXTENTS_FL satt på filsystemet utan stöd för "
-"utsträckningar.\n"
+msgstr "Inod %i har flaggan EXTENTS_FL satt på filsystemet utan stöd för utsträckningar.\n"
#. @-expanded: inode %i is in extent format, but superblock is missing EXTENTS feature\n
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"inod %i är i utsträckningsformat, men superblocket saknar egenskapen "
-"EXTENTS\n"
+msgstr "inod %i är i utsträckningsformat, men superblocket saknar egenskapen EXTENTS\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
#, c-format
msgid "@i %i missing EXTENT_FL, but is in extents format\n"
-msgstr "inod %i saknar EXTENT_FL, men är i utsträckningsformat\n"
+msgstr "inod %i saknar EXTENT_FL, men är i utsträckningsformat\n"
#: e2fsck/problem.c:907
#, c-format
msgid "Fast symlink %i has EXTENT_FL set. "
-msgstr "Snabb symlänk %i har EXTENT_FL satt. "
+msgstr "Snabb symlänk %i har EXTENT_FL satt. "
#. @-expanded: inode %i has out of order extents\n
#. @-expanded: \t(invalid logical block %c, physical block %b, len %N)\n
"@i %i has out of order extents\n"
"\t(@n logical @b %c, physical @b %b, len %N)\n"
msgstr ""
-"inod %i har utsträckningar i oordning\n"
-"\t(ogiltigt logiskt block %c, fysiskt block %b, längd %N)\n"
+"inod %i har utsträckningar i oordning\n"
+"\t(ogiltigt logiskt block %c, fysiskt block %b, längd %N)\n"
#. @-expanded: inode %i has an invalid extent node (blk %b, lblk %c)\n
#: e2fsck/problem.c:916
msgid "@i %i has an invalid extent node (blk %b, lblk %c)\n"
-msgstr "inod %i har en ogiltig utsträckningsnod (blk %b, lblk %c)\n"
+msgstr "inod %i har en ogiltig utsträckningsnod (blk %b, lblk %c)\n"
#. @-expanded: Error converting subcluster block bitmap: %m\n
#: e2fsck/problem.c:921
#, c-format
msgid "Error converting subcluster @b @B: %m\n"
-msgstr "Fel vid konvertering av blockbitkarta över subkluster: %m\n"
+msgstr "Fel vid konvertering av blockbitkarta över subkluster: %m\n"
#. @-expanded: quota inode is not regular file.
#: e2fsck/problem.c:926
msgid "@q @i is not regular file. "
-msgstr "Kvotainoden är inte en vanlig fil. "
+msgstr "Kvotainoden är inte en vanlig fil. "
#. @-expanded: quota inode is not in use, but contains data.
#: e2fsck/problem.c:931
msgid "@q @i is not in use, but contains data. "
-msgstr "Kvotinoden används inte, men innehåller data. "
+msgstr "Kvotinoden används inte, men innehåller data. "
#. @-expanded: quota inode is visible to the user.
#: e2fsck/problem.c:936
msgid "@q @i is visible to the user. "
-msgstr "Kvotinoden är synlig för användaren. "
+msgstr "Kvotinoden är synlig för användaren. "
#. @-expanded: The bad block inode looks invalid.
#: e2fsck/problem.c:941
msgid "The bad @b @i looks @n. "
-msgstr "Inoden för dåliga block verkar felaktig."
+msgstr "Inoden för dåliga block verkar felaktig."
#. @-expanded: inode %i has zero length extent\n
#. @-expanded: \t(invalid logical block %c, physical block %b)\n
"@i %i has zero length extent\n"
"\t(@n logical @b %c, physical @b %b)\n"
msgstr ""
-"inod %i har en utsträckning med noll längd\n"
+"inod %i har en utsträckning med noll längd\n"
"\t(ogiltigt logiskt block %c, fysiskt block %b)\n"
#. @-expanded: \n
"Pass 1B: Rescanning for @m @bs\n"
msgstr ""
"\n"
-"Kör ytterliggare pass för att lösa upp block som används av mer än en "
-"inod ...\n"
-"Pass 1B: Söker igen efter block som används flera gånger\n"
+"Kör ytterliggare pass för att lösa upp block som används av mer än en inod ...\n"
+"Pass 1B: Söker igen efter block som används flera gånger\n"
#. @-expanded: multiply-claimed block(s) in inode %i:
#: e2fsck/problem.c:959
#, c-format
msgid "@m @b(s) in @i %i:"
-msgstr "Flerfaldigt ianspråkstagna block i inod %i:"
+msgstr "Flerfaldigt ianspråkstagna block i inod %i:"
#: e2fsck/problem.c:974
#, c-format
msgid "Error while scanning inodes (%i): %m\n"
-msgstr "Fel vid genomsökning av inoder (%i): %m\n"
+msgstr "Fel vid genomsökning av inoder (%i): %m\n"
#. @-expanded: error allocating inode bitmap (inode_dup_map): %m\n
#: e2fsck/problem.c:979
#: e2fsck/problem.c:984
#, c-format
msgid "Error while iterating over @bs in @i %i (%s): %m\n"
-msgstr "Fel vid iterering över block i inod %i (%s): %m\n"
+msgstr "Fel vid iterering över block i inod %i (%s): %m\n"
#. @-expanded: Error adjusting refcount for extended attribute block %b (inode %i): %m\n
#: e2fsck/problem.c:989 e2fsck/problem.c:1304
msgid "Error adjusting refcount for @a @b %b (@i %i): %m\n"
-msgstr ""
-"Fel vid justering av referensräknare för externa attribut-block %b (inod "
-"%i): %m\n"
+msgstr "Fel vid justering av referensräknare för externa attribut-block %b (inod %i): %m\n"
#. @-expanded: Pass 1C: Scanning directories for inodes with multiply-claimed blocks\n
#: e2fsck/problem.c:994
msgid "Pass 1C: Scanning directories for @is with @m @bs\n"
-msgstr ""
-"Pass 1C: Söker kataloger efter inoder med flerfaldigt ianspråkstagna block\n"
+msgstr "Pass 1C: Söker kataloger efter inoder med flerfaldigt ianspråkstagna block\n"
#. @-expanded: Pass 1D: Reconciling multiply-claimed blocks\n
#: e2fsck/problem.c:1000
msgid "Pass 1D: Reconciling @m @bs\n"
-msgstr "Pass 1D: Förlikar flerfaldigt ianspråkstagna block\n"
+msgstr "Pass 1D: Förlikar flerfaldigt ianspråkstagna block\n"
#. @-expanded: File %Q (inode #%i, mod time %IM) \n
#. @-expanded: has %r multiply-claimed block(s), shared with %N file(s):\n
" has %r @m @b(s), shared with %N file(s):\n"
msgstr ""
"Fil %Q (inod nr. %i, modifieringstid %IM) \n"
-" har %r flerfaldigt ianspråkstagna block, delade med %N filer:\n"
+" har %r flerfaldigt ianspråkstagna block, delade med %N filer:\n"
#. @-expanded: \t%Q (inode #%i, mod time %IM)\n
#: e2fsck/problem.c:1011
"(There are %N @is containing @m @bs.)\n"
"\n"
msgstr ""
-"(Det finns %N inoder som innehåller flerfaldigt ianspråkstagna block.)\n"
+"(Det finns %N inoder som innehåller flerfaldigt ianspråkstagna block.)\n"
"\n"
#. @-expanded: multiply-claimed blocks already reassigned or cloned.\n
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"Flerfaldig ianspråkstagna block redan överlåtna eller klonade.\n"
+"Flerfaldig ianspråkstagna block redan överlåtna eller klonade.\n"
"\n"
#: e2fsck/problem.c:1039
#: e2fsck/problem.c:1050
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Ogiltigt inodsnummer för \".\" i kataloginod %i.\n"
+msgstr "Ogiltigt inodsnummer för \".\" i kataloginod %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
#: e2fsck/problem.c:1055
#. @-expanded: entry '%Dn' in %p (%i) has deleted/unused inode %Di.
#: e2fsck/problem.c:1060
msgid "@E has @D/unused @i %Di. "
-msgstr "Post \"%Dn\" i %p (%i) har raderad/oanvänd inod %Di. "
+msgstr "Post \"%Dn\" i %p (%i) har raderad/oanvänd inod %Di. "
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
#: e2fsck/problem.c:1065
msgid "@E @L to '.' "
-msgstr "Post \"%Dn\" i %p (%i) är en länk till \".\" "
+msgstr "Post \"%Dn\" i %p (%i) är en länk till \".\" "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:1070
msgid "@E points to @i (%Di) located in a bad @b.\n"
-msgstr ""
-"Post \"%Dn\" i %p (%i) pekar på inod (%Di) som finns i ett trasigt block.\n"
+msgstr "Post \"%Dn\" i %p (%i) pekar på inod (%Di) som finns i ett trasigt block.\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to directory %P (%Di).\n
#: e2fsck/problem.c:1075
msgid "@E @L to @d %P (%Di).\n"
-msgstr "Post \"%Dn\" i %p (%i) är en länk till katalog %P (%Di).\n"
+msgstr "Post \"%Dn\" i %p (%i) är en länk till katalog %P (%Di).\n"
#. @-expanded: entry '%Dn' in %p (%i) is a link to the root inode.\n
#: e2fsck/problem.c:1080
msgid "@E @L to the @r.\n"
-msgstr "Post \"%Dn\" i %p (%i) är en länk till rotinoden.\n"
+msgstr "Post \"%Dn\" i %p (%i) är en länk till rotinoden.\n"
#. @-expanded: entry '%Dn' in %p (%i) has illegal characters in its name.\n
#: e2fsck/problem.c:1085
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:1100
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr ""
-"Första post \"%Dn\" (inod=%Di) i kataloginod %i (%p) skulle varit \".\"\n"
+msgstr "Första post \"%Dn\" (inod=%Di) i kataloginod %i (%p) skulle varit \".\"\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
#: e2fsck/problem.c:1105
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
#: e2fsck/problem.c:1110
msgid "i_faddr @F %IF, @s zero.\n"
-msgstr "i_faddr för inod %i (%Q) är %IF, skulle varit noll.\n"
+msgstr "i_faddr för inod %i (%Q) är %IF, skulle varit noll.\n"
#. @-expanded: i_file_acl for inode %i (%Q) is %If, should be zero.\n
#: e2fsck/problem.c:1115
msgid "i_file_acl @F %If, @s zero.\n"
-msgstr "i_file_acl för inod %i (%Q) är %If, skulle varit noll.\n"
+msgstr "i_file_acl för inod %i (%Q) är %If, skulle varit noll.\n"
#. @-expanded: i_dir_acl for inode %i (%Q) is %Id, should be zero.\n
#: e2fsck/problem.c:1120
msgid "i_dir_acl @F %Id, @s zero.\n"
-msgstr "i_dir_acl för inod %i (%Q) är %Id, skulle varit noll.\n"
+msgstr "i_dir_acl för inod %i (%Q) är %Id, skulle varit noll.\n"
#. @-expanded: i_frag for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1125
msgid "i_frag @F %N, @s zero.\n"
-msgstr "i_frag för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_frag för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: i_fsize for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1130
msgid "i_fsize @F %N, @s zero.\n"
-msgstr "i_fsize för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_fsize för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: inode %i (%Q) has invalid mode (%Im).\n
#: e2fsck/problem.c:1135
msgid "@i %i (%Q) has @n mode (%Im).\n"
-msgstr "Inod %i (%Q) har ogiltiga rättigheter (%Im).\n"
+msgstr "Inod %i (%Q) har ogiltiga rättigheter (%Im).\n"
#. @-expanded: directory inode %i, %B, offset %N: directory corrupted\n
#: e2fsck/problem.c:1140
#. @-expanded: directory inode %i, %B, offset %N: filename too long\n
#: e2fsck/problem.c:1145
msgid "@d @i %i, %B, offset %N: filename too long\n"
-msgstr "Kataloginod %i, %B, position %N: för långt filnamn\n"
+msgstr "Kataloginod %i, %B, position %N: för långt filnamn\n"
#. @-expanded: directory inode %i has an unallocated %B.
#: e2fsck/problem.c:1150
#: e2fsck/problem.c:1155
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "\".\"-katalogpost i kataloginod %i är inte nollterminerad\n"
+msgstr "\".\"-katalogpost i kataloginod %i är inte nollterminerad\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
#: e2fsck/problem.c:1160
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr "\"..\"-katalogpost i kataloginod %i är inte nollterminerad\n"
+msgstr "\"..\"-katalogpost i kataloginod %i är inte nollterminerad\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
#: e2fsck/problem.c:1165
msgid "@i %i (%Q) is an @I character @v.\n"
-msgstr "Inod %i (%Q) är en ogiltig teckenenhet.\n"
+msgstr "Inod %i (%Q) är en ogiltig teckenenhet.\n"
#. @-expanded: inode %i (%Q) is an illegal block device.\n
#: e2fsck/problem.c:1170
msgid "@i %i (%Q) is an @I @b @v.\n"
-msgstr "Inod %i (TQ är en ogiltig blockenhet.\n"
+msgstr "Inod %i (TQ är en ogiltig blockenhet.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
#: e2fsck/problem.c:1175
msgid "@E is duplicate '.' @e.\n"
-msgstr "Post \"%Dn\" i %p (%i) är duplicerad \".\"-post.\n"
+msgstr "Post \"%Dn\" i %p (%i) är duplicerad \".\"-post.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
#: e2fsck/problem.c:1180
msgid "@E is duplicate '..' @e.\n"
-msgstr "Post \"%Dn\" i %p (%i) är duplicerad \"..\"-post.\n"
+msgstr "Post \"%Dn\" i %p (%i) är duplicerad \"..\"-post.\n"
#: e2fsck/problem.c:1185 e2fsck/problem.c:1485
#, c-format
msgid "Internal error: couldn't find dir_info for %i.\n"
-msgstr "Internt fel: kunde inte hitta dir_info för %i.\n"
+msgstr "Internt fel: kunde inte hitta dir_info för %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has rec_len of %Dr, should be %N.\n
#: e2fsck/problem.c:1190
#: e2fsck/problem.c:1200
#, c-format
msgid "Error iterating over @d @bs: %m\n"
-msgstr "Fel vid iterering över katalogblock: %m\n"
+msgstr "Fel vid iterering över katalogblock: %m\n"
#. @-expanded: Error reading directory block %b (inode %i): %m\n
#: e2fsck/problem.c:1205
msgid "Error reading @d @b %b (@i %i): %m\n"
-msgstr "Fel vid läsning av katalogblock %b (inod %i): %m\n"
+msgstr "Fel vid läsning av katalogblock %b (inod %i): %m\n"
#. @-expanded: Error writing directory block %b (inode %i): %m\n
#: e2fsck/problem.c:1210
#: e2fsck/problem.c:1215
#, c-format
msgid "@A new @d @b for @i %i (%s): %m\n"
-msgstr "Fel vid allokering av nytt katalogblock för inod %i (%s): %m\n"
+msgstr "Fel vid allokering av nytt katalogblock för inod %i (%s): %m\n"
#. @-expanded: Error deallocating inode %i: %m\n
#: e2fsck/problem.c:1220
#: e2fsck/problem.c:1225
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "Katalogpost för \".\" i %p (%i) är stor.\n"
+msgstr "Katalogpost för \".\" i %p (%i) är stor.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
#: e2fsck/problem.c:1230
msgid "@i %i (%Q) is an @I FIFO.\n"
-msgstr "Inod %i (%Q) är en ogiltig FIFO.\n"
+msgstr "Inod %i (%Q) är en ogiltig FIFO.\n"
#. @-expanded: inode %i (%Q) is an illegal socket.\n
#: e2fsck/problem.c:1235
msgid "@i %i (%Q) is an @I socket.\n"
-msgstr "Inod %i (%Q) är ett ogiltigt uttag (socket).\n"
+msgstr "Inod %i (%Q) är ett ogiltigt uttag (socket).\n"
#. @-expanded: Setting filetype for entry '%Dn' in %p (%i) to %N.\n
#: e2fsck/problem.c:1240
msgid "Setting filetype for @E to %N.\n"
-msgstr "Sätter filtyp för post \"%Dn\" i %p (%i) till %N.\n"
+msgstr "Sätter filtyp för post \"%Dn\" i %p (%i) till %N.\n"
#. @-expanded: entry '%Dn' in %p (%i) has an incorrect filetype (was %Dt, should be %N).\n
#: e2fsck/problem.c:1245
msgid "@E has an incorrect filetype (was %Dt, @s %N).\n"
-msgstr ""
-"Post \"%Dn\" i %p (%i) har felaktig filtyp (var %Dt, skulle varit %N).\n"
+msgstr "Post \"%Dn\" i %p (%i) har felaktig filtyp (var %Dt, skulle varit %N).\n"
#. @-expanded: entry '%Dn' in %p (%i) has filetype set.\n
#: e2fsck/problem.c:1250
#. @-expanded: entry '%Dn' in %p (%i) has a zero-length name.\n
#: e2fsck/problem.c:1255
msgid "@E has a @z name.\n"
-msgstr "Post \"%Dn\" i %p (%i) har nollängdsnamn.\n"
+msgstr "Post \"%Dn\" i %p (%i) har nollängdsnamn.\n"
#. @-expanded: Symlink %Q (inode #%i) is invalid.\n
#: e2fsck/problem.c:1260
msgid "Symlink %Q (@i #%i) is @n.\n"
-msgstr "Symlänk %Q (inod nr. %i) är ogiltig.\n"
+msgstr "Symlänk %Q (inod nr. %i) är ogiltig.\n"
#. @-expanded: extended attribute block for inode %i (%Q) is invalid (%If).\n
#: e2fsck/problem.c:1265
msgid "@a @b @F @n (%If).\n"
-msgstr "Utökat attribut-block för inod %i (%Q) är ogiltigt (%If).\n"
+msgstr "Utökat attribut-block för inod %i (%Q) är ogiltigt (%If).\n"
#. @-expanded: filesystem contains large files, but lacks LARGE_FILE flag in superblock.\n
#: e2fsck/problem.c:1270
msgid "@f contains large files, but lacks LARGE_FILE flag in @S.\n"
-msgstr ""
-"Filsystem innehåller stora filer, men saknar flaggan LARGE_FILE i "
-"superblock.\n"
+msgstr "Filsystem innehåller stora filer, men saknar flaggan LARGE_FILE i superblock.\n"
#. @-expanded: problem in HTREE directory inode %d: %B not referenced\n
#: e2fsck/problem.c:1275
#. @-expanded: problem in HTREE directory inode %d: %B referenced twice\n
#: e2fsck/problem.c:1280
msgid "@p @h %d: %B referenced twice\n"
-msgstr "Problem i HTREE-kataloginod %d: %B refererat två gånger\n"
+msgstr "Problem i HTREE-kataloginod %d: %B refererat två gånger\n"
#. @-expanded: problem in HTREE directory inode %d: %B has bad min hash\n
#: e2fsck/problem.c:1285
#. @-expanded: problem in HTREE directory inode %d: %B has invalid limit (%N)\n
#: e2fsck/problem.c:1314
msgid "@p @h %d: %B has @n limit (%N)\n"
-msgstr "Problem i HTREE-kataloginod %d: %B har ogiltig gräns (%N)\n"
+msgstr "Problem i HTREE-kataloginod %d: %B har ogiltig gräns (%N)\n"
#. @-expanded: problem in HTREE directory inode %d: %B has invalid count (%N)\n
#: e2fsck/problem.c:1319
"\n"
msgstr ""
"Duplicerad post \"%Dn\" hittad.\n"
-"\tMarkerar %p (%i) för ombyggnad.\n"
+"\tMarkerar %p (%i) för ombyggnad.\n"
"\n"
#. @-expanded: i_blocks_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1349
msgid "i_blocks_hi @F %N, @s zero.\n"
-msgstr "i_blocks_hi för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_blocks_hi för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: Unexpected block in HTREE directory inode %d (%q).\n
#: e2fsck/problem.c:1354
msgid "Unexpected @b in @h %d (%q).\n"
-msgstr "Oväntat block i HTREE-katalog %d (%q).\n"
+msgstr "Oväntat block i HTREE-katalog %d (%q).\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di in group %g where _INODE_UNINIT is set.\n
#: e2fsck/problem.c:1358
msgid "@E references @i %Di in @g %g where _INODE_UNINIT is set.\n"
-msgstr ""
-"Post \"%Dn\" i %p (%i) refererar inod %Di i grupp %g där _INODE_UNINIT är "
-"satt.\n"
+msgstr "Post \"%Dn\" i %p (%i) refererar inod %Di i grupp %g där _INODE_UNINIT är satt.\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr ""
-"Post \"%Dn\" i %p (%i) refererar inod %Di funnen i oanvänt inodsområde i "
-"grupp %g.\n"
+msgstr "Post \"%Dn\" i %p (%i) refererar inod %Di funnen i oanvänt inodsområde i grupp %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
msgid "i_file_acl_hi @F %N, @s zero.\n"
-msgstr "i_file_acl_hi för inod %i (%Q) är %N, skulle varit noll.\n"
+msgstr "i_file_acl_hi för inod %i (%Q) är %N, skulle varit noll.\n"
#. @-expanded: Pass 3: Checking directory connectivity\n
#: e2fsck/problem.c:1375
msgid "Pass 3: Checking @d connectivity\n"
-msgstr "Pass 3: Kontrollerar katalogförbindelser\n"
+msgstr "Pass 3: Kontrollerar katalogförbindelser\n"
#. @-expanded: root inode not allocated.
#: e2fsck/problem.c:1380
#: e2fsck/problem.c:1390
#, c-format
msgid "Unconnected @d @i %i (%p)\n"
-msgstr "Oförbunden kataloginod %i (%p)\n"
+msgstr "Oförbunden kataloginod %i (%p)\n"
#. @-expanded: /lost+found not found.
#: e2fsck/problem.c:1395
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
#: e2fsck/problem.c:1400
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "\"..\" i %Q (%i) är %P (%j), skulle varit %q (%d).\n"
+msgstr "\"..\" i %Q (%i) är %P (%j), skulle varit %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
#: e2fsck/problem.c:1405
msgid "Bad or non-existent /@l. Cannot reconnect.\n"
-msgstr "Felaktig eller ej existerande /lost+found. Kan inte återansluta.\n"
+msgstr "Felaktig eller ej existerande /lost+found. Kan inte återansluta.\n"
#. @-expanded: Could not expand /lost+found: %m\n
#: e2fsck/problem.c:1410
#: e2fsck/problem.c:1415
#, c-format
msgid "Could not reconnect %i: %m\n"
-msgstr "Kunde inte återförbinda %i: %m\n"
+msgstr "Kunde inte återförbinda %i: %m\n"
#. @-expanded: Error while trying to find /lost+found: %m\n
#: e2fsck/problem.c:1420
#, c-format
msgid "Error while trying to find /@l: %m\n"
-msgstr "Fel vid försök att hitta /lost+found: %m\n"
+msgstr "Fel vid försök att hitta /lost+found: %m\n"
#. @-expanded: ext2fs_new_block: %m while trying to create /lost+found directory\n
#: e2fsck/problem.c:1425
#, c-format
msgid "ext2fs_new_@b: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_block: %m ved försök att skapa /lost+found-katalog\n"
+msgstr "ext2fs_new_block: %m ved försök att skapa /lost+found-katalog\n"
#. @-expanded: ext2fs_new_inode: %m while trying to create /lost+found directory\n
#: e2fsck/problem.c:1430
#, c-format
msgid "ext2fs_new_@i: %m while trying to create /@l @d\n"
-msgstr "ext2fs_new_inode: %m vid försök att skapa /lost+found-katalog\n"
+msgstr "ext2fs_new_inode: %m vid försök att skapa /lost+found-katalog\n"
#. @-expanded: ext2fs_new_dir_block: %m while creating new directory block\n
#: e2fsck/problem.c:1435
#, c-format
msgid "ext2fs_new_dir_@b: %m while creating new @d @b\n"
-msgstr "ext2fs_new_dir_block: %m när nytt katalogblock skapades\n"
+msgstr "ext2fs_new_dir_block: %m när nytt katalogblock skapades\n"
#. @-expanded: ext2fs_write_dir_block: %m while writing the directory block for /lost+found\n
#: e2fsck/problem.c:1440
#, c-format
msgid "ext2fs_write_dir_@b: %m while writing the @d @b for /@l\n"
-msgstr ""
-"ext2fs_write_dir_block: %m vid skrivning av katalogblocket för /lost+found\n"
+msgstr "ext2fs_write_dir_block: %m vid skrivning av katalogblocket för /lost+found\n"
#. @-expanded: Error while adjusting inode count on inode %i\n
#: e2fsck/problem.c:1445
#, c-format
msgid "Error while adjusting @i count on @i %i\n"
-msgstr "Fel vid justering av inodräknare på inod %i\n"
+msgstr "Fel vid justering av inodräknare på inod %i\n"
#. @-expanded: Couldn't fix parent of inode %i: %m\n
#. @-expanded: \n
"Couldn't fix parent of @i %i: %m\n"
"\n"
msgstr ""
-"Kunde inte rätta förälder till inod %i: %m\n"
+"Kunde inte rätta förälder till inod %i: %m\n"
"\n"
#. @-expanded: Couldn't fix parent of inode %i: Couldn't find parent directory entry\n
"Couldn't fix parent of @i %i: Couldn't find parent @d @e\n"
"\n"
msgstr ""
-"Kunde inte rätta förälder till inod %i: Kunde inte hitta "
-"förälderkatalogpost\n"
+"Kunde inte rätta förälder till inod %i: Kunde inte hitta förälderkatalogpost\n"
"\n"
#. @-expanded: Error creating root directory (%s): %m\n
#. @-expanded: root inode is not a directory; aborting.\n
#: e2fsck/problem.c:1475
msgid "@r is not a @d; aborting.\n"
-msgstr "Rotinod är inte en katalog; avbryter.\n"
+msgstr "Rotinod är inte en katalog; avbryter.\n"
#. @-expanded: Cannot proceed without a root inode.\n
#: e2fsck/problem.c:1480
msgid "Cannot proceed without a @r.\n"
-msgstr "Kan inte fortsätta utan en rotinod.\n"
+msgstr "Kan inte fortsätta utan en rotinod.\n"
#. @-expanded: /lost+found is not a directory (ino=%i)\n
#: e2fsck/problem.c:1490
#, c-format
msgid "/@l is not a @d (ino=%i)\n"
-msgstr "/lost+found är inte en katalog (ino=%i)\n"
+msgstr "/lost+found är inte en katalog (ino=%i)\n"
#: e2fsck/problem.c:1497
msgid "Pass 3A: Optimizing directories\n"
#: e2fsck/problem.c:1529
msgid "Pass 4: Checking reference counts\n"
-msgstr "Pass 4: Kontrollerar referensräknare\n"
+msgstr "Pass 4: Kontrollerar referensräknare\n"
#. @-expanded: unattached zero-length inode %i.
#: e2fsck/problem.c:1534
#, c-format
msgid "@u @z @i %i. "
-msgstr "Lös nollängdsinod %i. "
+msgstr "Lös nollängdsinod %i. "
#. @-expanded: unattached inode %i\n
#: e2fsck/problem.c:1539
#, c-format
msgid "@u @i %i\n"
-msgstr "lös inod %i\n"
+msgstr "lös inod %i\n"
#. @-expanded: inode %i ref count is %Il, should be %N.
#: e2fsck/problem.c:1544
msgid "@i %i ref count is %Il, @s %N. "
-msgstr "Inod %i referensräknare är %Il, skulle varit %N. "
+msgstr "Inod %i referensräknare är %Il, skulle varit %N. "
#. @-expanded: WARNING: PROGRAMMING BUG IN E2FSCK!\n
#. @-expanded: \tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n
"@i_link_info[%i] is %N, @i.i_links_count is %Il. They @s the same!\n"
msgstr ""
"VARNING: PROGRAMMERINGSFEL I E2FSCK!\n"
-" ELLER NÅGON KLANTSKALLE (DU) KONTROLLERAR ETT MONTERAT (AKTIVT) "
-"FILSYSTEM.\n"
-"inod_link_info[%i] är %N, inod.i_links_count är %Il. De skulle vara samma!\n"
+" ELLER NÅGON KLANTSKALLE (DU) KONTROLLERAR ETT MONTERAT (AKTIVT) FILSYSTEM.\n"
+"inod_link_info[%i] är %N, inod.i_links_count är %Il. De skulle vara samma!\n"
#. @-expanded: Pass 5: Checking group summary information\n
#: e2fsck/problem.c:1558
#. @-expanded: Padding at end of inode bitmap is not set.
#: e2fsck/problem.c:1563
msgid "Padding at end of @i @B is not set. "
-msgstr "Utfyllnad vid slutet av inodsbitkarta är inte satt. "
+msgstr "Utfyllnad vid slutet av inodsbitkarta är inte satt. "
#. @-expanded: Padding at end of block bitmap is not set.
#: e2fsck/problem.c:1568
msgid "Padding at end of @b @B is not set. "
-msgstr "Utfyllnad vid slutet av blockbitkarta är inte satt. "
+msgstr "Utfyllnad vid slutet av blockbitkarta är inte satt. "
#. @-expanded: block bitmap differences:
#: e2fsck/problem.c:1573
#. @-expanded: Free inodes count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1613
msgid "Free @is count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Antal fria inoder är fel för grupp nr. %g (%i, räknade=%j).\n"
+msgstr "Antal fria inoder är fel för grupp nr. %g (%i, räknade=%j).\n"
#. @-expanded: Directories count wrong for group #%g (%i, counted=%j).\n
#: e2fsck/problem.c:1618
msgid "Directories count wrong for @g #%g (%i, counted=%j).\n"
-msgstr "Katalogantal fel för grupp nr. %g (%i, räknade=%j).\n"
+msgstr "Katalogantal fel för grupp nr. %g (%i, räknade=%j).\n"
#. @-expanded: Free inodes count wrong (%i, counted=%j).\n
#: e2fsck/problem.c:1623
msgid "Free @is count wrong (%i, counted=%j).\n"
-msgstr "Antal fria inoder är fel (%i, räknade=%j).\n"
+msgstr "Antal fria inoder är fel (%i, räknade=%j).\n"
#. @-expanded: Free blocks count wrong for group #%g (%b, counted=%c).\n
#: e2fsck/problem.c:1628
msgid "Free @bs count wrong for @g #%g (%b, counted=%c).\n"
-msgstr "Antal fria block är fel för grupp nr. %g (%b, räknade=%c).\n"
+msgstr "Antal fria block är fel för grupp nr. %g (%b, räknade=%c).\n"
#. @-expanded: Free blocks count wrong (%b, counted=%c).\n
#: e2fsck/problem.c:1633
msgid "Free @bs count wrong (%b, counted=%c).\n"
-msgstr "Antal fria block är fel (%b, räknade=%c).\n"
+msgstr "Antal fria block är fel (%b, räknade=%c).\n"
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
msgstr ""
-"PROGRAMMERINGSFEL: filsystem (nr. %N) bitkartas ändpunkter (%b, %c) stämmer\n"
-"inte med beräknade bitkarteändpunkter (%i, %j)\n"
+"PROGRAMMERINGSFEL: filsystem (nr. %N) bitkartas ändpunkter (%b, %c) stämmer\n"
+"inte med beräknade bitkarteändpunkter (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
-msgstr "Internt fel: fuskar till slut på bitkarta (%N)\n"
+msgstr "Internt fel: fuskar till slut på bitkarta (%N)\n"
#. @-expanded: Error copying in replacement inode bitmap: %m\n
#: e2fsck/problem.c:1649
#, c-format
msgid "Error copying in replacement @i @B: %m\n"
-msgstr "Fel vid kopiering av ersättningsinodskarta: %m\n"
+msgstr "Fel vid kopiering av ersättningsinodskarta: %m\n"
#. @-expanded: Error copying in replacement block bitmap: %m\n
#: e2fsck/problem.c:1654
#, c-format
msgid "Error copying in replacement @b @B: %m\n"
-msgstr "Fel vid inkopiering av ersättningsbitkarta: %m\n"
+msgstr "Fel vid inkopiering av ersättningsbitkarta: %m\n"
#. @-expanded: group %g block(s) in use but group is marked BLOCK_UNINIT\n
#: e2fsck/problem.c:1679
#, c-format
msgid "@g %g @b(s) in use but @g is marked BLOCK_UNINIT\n"
-msgstr "block i grupp %g används men gruppen är markerad BLOCK_UNINIT\n"
+msgstr "block i grupp %g används men gruppen är markerad BLOCK_UNINIT\n"
#. @-expanded: group %g inode(s) in use but group is marked INODE_UNINIT\n
#: e2fsck/problem.c:1684
#, c-format
msgid "@g %g @i(s) in use but @g is marked INODE_UNINIT\n"
-msgstr "inoder i grupp %g används men gruppen är markerad INODE_UNINIT\n"
+msgstr "inoder i grupp %g används men gruppen är markerad INODE_UNINIT\n"
#. @-expanded: Recreate journal
#: e2fsck/problem.c:1691
msgid "Recreate @j"
-msgstr "Återskapa journal"
+msgstr "Återskapa journal"
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Uppdatera kvotinformation för kvottyp %N"
#: e2fsck/problem.c:1815
#, c-format
#: e2fsck/scantest.c:79
#, c-format
msgid "Memory used: %d, elapsed time: %6.3f/%6.3f/%6.3f\n"
-msgstr "Använt minne: %d, förlupen tid: %6.3f/%6.3f/%6.3f\n"
+msgstr "Använt minne: %d, förlupen tid: %6.3f/%6.3f/%6.3f\n"
#: e2fsck/scantest.c:98
#, c-format
msgid "size of inode=%d\n"
-msgstr "storlek på inod=%d\n"
+msgstr "storlek på inod=%d\n"
#: e2fsck/scantest.c:119
msgid "while starting inode scan"
-msgstr "vid start av inodsgenomsökning"
+msgstr "vid start av inodsgenomsökning"
#: e2fsck/scantest.c:130
msgid "while doing inode scan"
-msgstr "vid inodsgenomsökning"
+msgstr "vid inodsgenomsökning"
#: e2fsck/super.c:188
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
-msgstr "vid anrop av ext2fs_block_iterate för inod %d"
+msgstr "vid anrop av ext2fs_block_iterate för inod %d"
#: e2fsck/super.c:211
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
-msgstr "vid anrop av ext2fs_adjust_ea_refcount2 för inod %d"
+msgstr "vid anrop av ext2fs_adjust_ea_refcount2 för inod %d"
#: e2fsck/super.c:272
msgid "Truncating"
#: e2fsck/super.c:273
msgid "Clearing"
-msgstr "Tömmer"
+msgstr "Tömmer"
#: e2fsck/unix.c:74
#, c-format
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Användning: %s [-panyrcdfvtDFV] [-b superblock] [-B blockstorlek]\n"
+"Användning: %s [-panyrcdfvtDFV] [-b superblock] [-B blockstorlek]\n"
"\t\t[-I inodbuffertblock] [-P processinodsstorlek]\n"
-"\t\t[-l|-L dåliga_block_fil] [-C fd] [-j extern_journal]\n"
-"\t\t[-E utökade-flaggor] enhet\n"
+"\t\t[-l|-L dåliga_block_fil] [-C fd] [-j extern_journal]\n"
+"\t\t[-E utökade-flaggor] enhet\n"
#: e2fsck/unix.c:80
#, c-format
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
-"Nödhjälp:\n"
-" -p Repearera automatiskt (inga frågor)\n"
-" -n Gör inga förändringar av filsystemet\n"
-" -y Anta \"ja\" som svar på alla frågor\n"
-" -c Leta efter dåliga block och lägg till dem i listan\n"
-" -f Framtvinga kontroll även om filsystemet är markerat "
-"rent\n"
+"Nödhjälp:\n"
+" -p Repearera automatiskt (inga frågor)\n"
+" -n Gör inga förändringar av filsystemet\n"
+" -y Anta \"ja\" som svar på alla frågor\n"
+" -c Leta efter dåliga block och lägg till dem i listan\n"
+" -f Framtvinga kontroll även om filsystemet är markerat rent\n"
#: e2fsck/unix.c:86
#, c-format
" -l bad_blocks_file Add to badblocks list\n"
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-" -v Var utförlig\n"
-" -b superblock Använd alternativt superblock\n"
-" -B blockstorlek Framtvinga blockstorlek vid sökande efter superblock\n"
-" -j extern_journal Bestäm plats för den externa journalen\n"
-" -l dåliga_block_fil Lägg till till listan över dåliga block\n"
-" -L dåliga_block_fil Ange lista över dåliga block\n"
+" -v Var utförlig\n"
+" -b superblock Använd alternativt superblock\n"
+" -B blockstorlek Framtvinga blockstorlek vid sökande efter superblock\n"
+" -j extern_journal Bestäm plats för den externa journalen\n"
+" -l dåliga_block_fil Lägg till till listan över dåliga block\n"
+" -L dåliga_block_fil Ange lista över dåliga block\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
-msgstr "%s: %u/%u filer (%0d.%d%% ej sammanhängande), %llu/%llu block\n"
+msgstr "%s: %u/%u filer (%0d.%d%% ej sammanhängande), %llu/%llu block\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u inod använd (%2.2f %%)\n"
+"%12u inod använd (%2.2f %%, av %u)\n"
msgstr[1] ""
"\n"
-"%8u inoder använda (%2.2f %%)\n"
+"%12u inoder använda (%2.2f %%, av %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u ej konsekutiv fil (%0d.%d %%)\n"
-msgstr[1] "%8u ej konsekutiva filer (%0d.%d %%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u ej konsekutiv fil (%0d.%d %%)\n"
+msgstr[1] "%12u ej konsekutiva filer (%0d.%d %%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u ej konsekutiv katalog (%0d.%d %%)\n"
-msgstr[1] "%8u ej konsekutiva kataloger (%0d.%d %%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u ej konsekutiv katalog (%0d.%d %%)\n"
+msgstr[1] "%12u ej konsekutiva kataloger (%0d.%d %%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " antal inoder med ind/dind/tind-block: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " antal inoder med ind/dind/tind-block: %u/%u/%u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Histogram över utsträckningars djup: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Histogram över utsträckningars djup: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu använt block (%2.2f %%)\n"
-msgstr[1] "%8llu använda block (%2.2f %%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu använt block (%2.2f %%, av %llu)\n"
+msgstr[1] "%12llu använda block (%2.2f %%, av %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u dåligt block\n"
-msgstr[1] "%8u dåliga block\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u dåligt block\n"
+msgstr[1] "%12u dåliga block\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u stor fil\n"
-msgstr[1] "%8u stora filer\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u stor fil\n"
+msgstr[1] "%12u stora filer\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u normal fil\n"
+"%12u normal fil\n"
msgstr[1] ""
"\n"
-"%8u normala filer\n"
+"%12u normala filer\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u katalog\n"
-msgstr[1] "%8u kataloger\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u katalog\n"
+msgstr[1] "%12u kataloger\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u teckenenhetsfil\n"
-msgstr[1] "%8u teckenenhetsfiler\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u teckenenhetsfil\n"
+msgstr[1] "%12u teckenenhetsfiler\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u blockenhetsfil\n"
-msgstr[1] "%8u blockenhetsfiler\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u blockenhetsfil\n"
+msgstr[1] "%12u blockenhetsfiler\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
-msgstr[1] "%8u fifon\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
+msgstr[1] "%12u fifon\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u länk\n"
-msgstr[1] "%8u länkar\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u länk\n"
+msgstr[1] "%12u länkar\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u symbolisk länk"
-msgstr[1] "%8u symboliska länkar"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u symbolisk länk"
+msgstr[1] "%12u symboliska länkar"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
-msgstr[0] " (%u snabb symbolisk länk)\n"
-msgstr[1] " (%u snbba symboliska länkar)\n"
+msgstr[0] " (%u snabb symbolisk länk)\n"
+msgstr[1] " (%u snbba symboliska länkar)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u uttag (socket)\n"
-msgstr[1] "%8u uttag (sockets)\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u uttag (socket)\n"
+msgstr[1] "%12u uttag (sockets)\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u fil\n"
-msgstr[1] "%8u filer\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u fil\n"
+msgstr[1] "%12u filer\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
-msgstr "när det avgjordes om %s är monterat."
+msgstr "när det avgjordes om %s är monterat."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Varning! %s är monterat.\n"
+msgstr "Varning! %s är %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s är %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
msgstr ""
-"Kan inte fortsätta, avbryter.\n"
+"Kan inte fortsätta, avbryter.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
msgstr ""
"\n"
"\n"
-"VARNING!!! Filsystemet är monterat. Om du fortsätter ***KOMMER***\n"
-"du att orsaka ***ALLVARLIG*** skada på filsystemet.\n"
+"VARNING!!! Filsystemet är monterat. Om du fortsätter ***KOMMER***\n"
+"du att orsaka ***ALLVARLIG*** skada på filsystemet.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
-msgstr "Vill du verkligen fortsätta"
+msgstr "Vill du verkligen fortsätta"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "kontroll avbruten.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
-msgstr " innehåller ett filsystem med fel"
+msgstr " innehåller ett filsystem med fel"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
-msgstr " var inte fläckfritt avmonterat"
+msgstr " var inte fläckfritt avmonterat"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
-msgstr " det primära superblockets egenskaper skiljer från reservens"
+msgstr " det primära superblockets egenskaper skiljer från reservens"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
-msgstr " har monterats %u gånger utan att kontrolleras"
+msgstr " har monterats %u gånger utan att kontrolleras"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
-msgstr " har tidpunkten för senaste filsystemskontroll i framtiden"
+msgstr " har tidpunkten för senaste filsystemskontroll i framtiden"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
-msgstr " har inte kontrollerats på %u dagar"
+msgstr " har inte kontrollerats på %u dagar"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", kontroll framtvingad.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: rent, %u/%u filer, %llu/%llu block"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
-msgstr " (kontroll senarelagd; på batteri)"
+msgstr " (kontroll senarelagd; på batteri)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
-msgstr " (kontrollera efter nästa montering)"
+msgstr " (kontrollera efter nästa montering)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kontrollera om %ld monteringar)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
-msgstr "FEL: Kunde inte öppna /dev/null (%s)\n"
+msgstr "FEL: Kunde inte öppna /dev/null (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Ogiltig EA-version.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
-msgstr "Okänd utökad flagga: %s\n"
+msgstr "Okänd utökad flagga: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"Syntaxfel i e2fsck:s konfigurationsfil (%s, rad nr %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Fel vid validering av filidentifierare %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
-msgstr "Ogiltig filidentifierare för förloppsinformation"
+msgstr "Ogiltig filidentifierare för förloppsinformation"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
msgstr "Endast en av flaggorna -p/-a, -n eller -y kan anges."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
-msgstr "Flaggan -t stödjs inte i denna version av e2fsck.\n"
+msgstr "Flaggan -t stödjs inte i denna version av e2fsck.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
msgstr "Kan inte hitta \"%s\""
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
-msgstr "Flaggorna -n och -D är inkompatibla."
+msgstr "Flaggorna -n och -D är inkompatibla."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
-msgstr "Flaggorna -n och -c är inkompatibla."
+msgstr "Flaggorna -n och -c är inkompatibla."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
-msgstr "Flaggorna -n och -l/-L är inkompatibla."
+msgstr "Flaggorna -n och -l/-L är inkompatibla."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr "Flaggorna -c och -l/-L kan inte båda användas på samma gång.\n"
+msgstr "Flaggorna -c och -l/-L kan inte båda användas på samma gång.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-"E2FSCK_JBD_DEBUG \"%s\" är inte ett heltal\n"
+"E2FSCK_JBD_DEBUG \"%s\" är inte ett heltal\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"Ogiltigt ickenumerikst argument till -%c (\"%s\")\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"MMP-intervall är %u sekunder och den totala väntetiden är %u sekunder. Var "
-"god dröj ...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "MMP-intervall är %u sekunder och den totala väntetiden är %u sekunder. Var god dröj ...\n"
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
-msgstr "vid uppsättning av MMP-block"
+msgstr "vid uppsättning av MMP-block"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Om du är säker på att filsystemet inte används på någon nod, kör:\n"
+"Om du är säker på att filsystemet inte används på någon nod, kör:\n"
"\"tune2fs-f-E clear_mmp {enhet}\"\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Fel: ext2fs-bibliotekversion inaktuell!\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
-msgstr "vid försök att initiera program"
+msgstr "vid försök att initiera program"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
-msgstr "\tAnvänder %s, %s\n"
+msgstr "\tAnvänder %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
-msgstr "behöver terminal för interaktiva reparationer"
+msgstr "behöver terminal för interaktiva reparationer"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s: %s försöker med reservblock ...\n"
+msgstr "%s: %s försöker med reservblock ...\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
-msgstr "Superblocket är ogiltigt,"
+msgstr "Superblocket är ogiltigt,"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Gruppbeskrivarna ser trasiga ut ..."
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
-msgstr "%s: %s när reservblocken användes"
+msgstr "%s: %s när reservblocken användes"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
-msgstr "%s: går tillbaka till orginalsuperblock\n"
+msgstr "%s: går tillbaka till orginalsuperblock\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"\n"
msgstr ""
-"Filsystemsrevisionen är uppenbarligen för hög för denna version av e2fsck.\n"
-"(Eller så är filsystemets superblock trasigt)\n"
+"Filsystemsrevisionen är uppenbarligen för hög för denna version av e2fsck.\n"
+"(Eller så är filsystemets superblock trasigt)\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
-msgstr "Kan detta vara en nollängdspartition?\n"
+msgstr "Kan detta vara en nollängdspartition?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr "Du måste ha %s-åtkomst till filsystemet eller vara root\n"
+msgstr "Du måste ha %s-åtkomst till filsystemet eller vara root\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
-msgstr "Kanske inte existerar eller växlingsenhet?\n"
+msgstr "Kanske inte existerar eller växlingsenhet?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr "Filsystemet monterat eller öppnat exklusivt av ett annat program?\n"
+msgstr "Filsystemet monterat eller öppnat exklusivt av ett annat program?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Kanske en enhet som inte existerar?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-"Skrivskyddad disk; använd flaggan -n för att göra en läsningskontroll\n"
+"Skrivskyddad disk; använd flaggan -n för att göra en läsningskontroll\n"
"av enheten.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
-msgstr "Hämta en nyare version av e2fsck!"
+msgstr "Hämta en nyare version av e2fsck!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
-msgstr "vid kontroll av ext3-journal för %s"
+msgstr "vid kontroll av ext3-journal för %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
-msgstr ""
-"Varning: hoppar över journalåterhämtning eftersom en läsningskontroll av "
-"filsystem görs.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+msgstr "Varning: hoppar över journalåterhämtning eftersom en läsningskontroll av filsystem görs.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
-msgstr "kan inte sätta superblocksflaggor på %s\n"
+msgstr "kan inte sätta superblocksflaggor på %s\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
-msgstr "vid återhämtning av ext3-journal för %s"
+msgstr "vid återhämtning av ext3-journal för %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
-msgstr "%s har funktioner som inte stöds:"
+msgstr "%s har funktioner som inte stöds:"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
-msgstr "%s: varning: komprimeringsstöd är experimentellt.\n"
+msgstr "%s: varning: komprimeringsstöd är experimentellt.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"%s: e2fsck är inte kompilerat med HTREE-stöd,\n"
+"%s: e2fsck är inte kompilerat med HTREE-stöd,\n"
"\tmen filsystem %s har HTREE-kataloger.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
-msgstr "%s: %s vid läsning av inod för dåliga block\n"
+msgstr "%s: %s vid läsning av inod för dåliga block\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr "Detta bådar inte gott, men vi skall försöka att fortsätta ...\n"
+msgstr "Detta bådar inte gott, men vi skall försöka att fortsätta ...\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Skapar journal (%d block): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
msgstr " Klar.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
msgstr ""
"\n"
-"*** journalen har återskapats - filsystemet är nu ext3 igen ***\n"
+"*** journalen har återskapats - filsystemet är nu ext3 igen ***\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
-msgstr "Startar om e2fsck från början ...\n"
+msgstr "Startar om e2fsck från början ...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
-msgstr "vid återställning av omgivning"
+msgstr "vid återställning av omgivning"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
-msgstr "%s: e2fsck inställd.\n"
+msgstr "%s: e2fsck inställd.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "avbruten"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ***** FILSYSTEMET MODIFIERADES *****\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ***** STARTA OM LINUX *****\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"%s: ********** VARNING: Filsystemet har fortfarande fel **********\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
-msgstr "när kontrollsummeinformation för blockgrupp sattes"
+msgstr "när kontrollsummeinformation för blockgrupp sattes"
#: e2fsck/util.c:189 misc/util.c:70
msgid "yY"
#: e2fsck/util.c:222
msgid "cancelled!\n"
-msgstr "inställd!\n"
+msgstr "inställd!\n"
#: e2fsck/util.c:237
msgid "yes\n"
#: e2fsck/util.c:272
#, c-format
msgid "e2fsck_read_bitmaps: illegal bitmap block(s) for %s"
-msgstr "e2fsck_read_bitmaps: ogiltiga bitkarteblock för %s"
+msgstr "e2fsck_read_bitmaps: ogiltiga bitkarteblock för %s"
#: e2fsck/util.c:277
msgid "reading inode and block bitmaps"
-msgstr "läser inod- och blockbitkartor"
+msgstr "läser inod- och blockbitkartor"
#: e2fsck/util.c:285
#, c-format
msgid "while retrying to read bitmaps for %s"
-msgstr "vid upprepat försök att läsa bitkarta för %s"
+msgstr "vid upprepat försök att läsa bitkarta för %s"
#: e2fsck/util.c:297
msgid "writing block and inode bitmaps"
#: e2fsck/util.c:302
#, c-format
msgid "while rewriting block and inode bitmaps for %s"
-msgstr "vid omskrivning av block- och inodsbitkartor för %s"
+msgstr "vid omskrivning av block- och inodsbitkartor för %s"
#: e2fsck/util.c:314
#, c-format
msgstr ""
"\n"
"\n"
-"%s: OVÄNTAD INKONSEKVENS; KÖR fsck MANUELLT.\n"
+"%s: OVÄNTAD INKONSEKVENS; KÖR fsck MANUELLT.\n"
"\t(d.v.s., utan flaggorna -a eller -p)\n"
#: e2fsck/util.c:395
#, c-format
msgid "Memory used: %luk/%luk (%luk/%luk), "
-msgstr "Använt minne: %lu k/%lu k (%lu k/%lu k), "
+msgstr "Använt minne: %lu k/%lu k (%lu k/%lu k), "
#: e2fsck/util.c:399
#, c-format
msgid "Memory used: %lu, "
-msgstr "Använt minne: %lu, "
+msgstr "Använt minne: %lu, "
#: e2fsck/util.c:406
#, c-format
#: e2fsck/util.c:411
#, c-format
msgid "elapsed time: %6.3f\n"
-msgstr "förfluten tid: %6.3f\n"
+msgstr "förfluten tid: %6.3f\n"
#: e2fsck/util.c:446 e2fsck/util.c:460
#, c-format
msgid "while reading inode %lu in %s"
-msgstr "när inod %lu i %s lästes"
+msgstr "när inod %lu i %s lästes"
#: e2fsck/util.c:474 e2fsck/util.c:487
#, c-format
msgid "while writing inode %lu in %s"
-msgstr "när inod %lu i %s skrevs"
+msgstr "när inod %lu i %s skrevs"
#: e2fsck/util.c:636
msgid "while allocating zeroizing buffer"
-msgstr "vid allokering av nollställningsbuffert"
+msgstr "vid allokering av nollställningsbuffert"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr "OVÄNTAD INKONSISTENS: filsystemet modifieras medan fsck körs.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "OVÄNTAD INKONSISTENS: filsystemet modifieras medan fsck körs.\n"
#: misc/badblocks.c:69
msgid "done \n"
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Användning: %s [-b blockstorlek] [-i infil] [-o utfile] [-svwnf]\n"
-" [-c block_åt_gången] [-d fördröjningsfaktor mellan läsningar]\n"
-" [-e max_dåliga_block] [-p antal_pass]\n"
-" [-t testmönster [-t testmönster [...]]]\n"
-" enhet [sista_block [första_block]]\n"
+"Användning: %s [-b blockstorlek] [-i infil] [-o utfile] [-svwnf]\n"
+" [-c block_åt_gången] [-d fördröjningsfaktor mellan läsningar]\n"
+" [-e max_dåliga_block] [-p antal_pass]\n"
+" [-t testmönster [-t testmönster [...]]]\n"
+" enhet [sista_block [första_block]]\n"
#: misc/badblocks.c:104
#, c-format
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: Flaggorna -n och -w är ömsesidigt uteslutande.\n"
+"%s: Flaggorna -n och -w är ömsesidigt uteslutande.\n"
"\n"
#: misc/badblocks.c:219
#, c-format
msgid "%6.2f%% done, %s elapsed. (%d/%d/%d errors)"
-msgstr "%6.2f %% klar, %s har gått. (%d/%d/%d fel)"
+msgstr "%6.2f %% klar, %s har gått. (%d/%d/%d fel)"
#: misc/badblocks.c:322
msgid "Testing with random pattern: "
-msgstr "Testar med slumpmönster: "
+msgstr "Testar med slumpmönster: "
#: misc/badblocks.c:340
msgid "Testing with pattern 0x"
-msgstr "Testar med mönster 0x"
+msgstr "Testar med mönster 0x"
#: misc/badblocks.c:372 misc/badblocks.c:445
msgid "during seek"
-msgstr "vid sökning"
+msgstr "vid sökning"
#: misc/badblocks.c:383
#, c-format
msgid "Weird value (%ld) in do_read\n"
-msgstr "Underligt värde (%ld) i do_read\n"
+msgstr "Underligt värde (%ld) i do_read\n"
#: misc/badblocks.c:469
msgid "during ext2fs_sync_device"
#: misc/badblocks.c:489 misc/badblocks.c:749
msgid "while beginning bad block list iteration"
-msgstr "vid början av iteration över lista av dåliga block"
+msgstr "vid början av iteration över lista av dåliga block"
#: misc/badblocks.c:503 misc/badblocks.c:602 misc/badblocks.c:759
msgid "while allocating buffers"
#: misc/badblocks.c:512
msgid "Checking for bad blocks in read-only mode\n"
-msgstr "Letar efter dåliga block i skrivskyddat läge\n"
+msgstr "Letar efter dåliga block i skrivskyddat läge\n"
#: misc/badblocks.c:521
msgid "Checking for bad blocks (read-only test): "
-msgstr "Letar efter dåliga block (skrivskyddad test): "
+msgstr "Letar efter dåliga block (skrivskyddad test): "
#: misc/badblocks.c:528 misc/badblocks.c:634 misc/badblocks.c:676
#: misc/badblocks.c:822
msgid "Too many bad blocks, aborting test\n"
-msgstr "För många dåliga block, avbryter testet\n"
+msgstr "För många dåliga block, avbryter testet\n"
#: misc/badblocks.c:609
msgid "Checking for bad blocks in read-write mode\n"
-msgstr "Letar efter dåliga block i läs-skriv-läge\n"
+msgstr "Letar efter dåliga block i läs-skriv-läge\n"
#: misc/badblocks.c:611 misc/badblocks.c:772
#, c-format
msgid "From block %lu to %lu\n"
-msgstr "Från block %lu till %lu\n"
+msgstr "Från block %lu till %lu\n"
#: misc/badblocks.c:666
msgid "Reading and comparing: "
-msgstr "Läser och jämför: "
+msgstr "Läser och jämför: "
#: misc/badblocks.c:771
msgid "Checking for bad blocks in non-destructive read-write mode\n"
-msgstr "Letar efter dåliga block i ickeförstörande läs-skriv-läge\n"
+msgstr "Letar efter dåliga block i ickeförstörande läs-skriv-läge\n"
#: misc/badblocks.c:777
msgid "Checking for bad blocks (non-destructive read-write test)\n"
-msgstr "Letar efter dåliga block (ickeförstörande läs-skriv-test)\n"
+msgstr "Letar efter dåliga block (ickeförstörande läs-skriv-test)\n"
#: misc/badblocks.c:784
msgid ""
"Interrupt caught, cleaning up\n"
msgstr ""
"\n"
-"Avbrott fångat, rensar upp\n"
+"Avbrott fångat, rensar upp\n"
#: misc/badblocks.c:867
#, c-format
#: misc/badblocks.c:988 misc/util.c:152
#, c-format
msgid "%s is mounted; "
-msgstr "%s är monterat, "
+msgstr "%s är monterat, "
#: misc/badblocks.c:990
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "badblocks framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
+msgstr "badblocks framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
#: misc/badblocks.c:995
msgid "it's not safe to run badblocks!\n"
-msgstr "det är inte säkert att köra badblocks!\n"
+msgstr "det är inte säkert att köra badblocks!\n"
#: misc/badblocks.c:1000 misc/util.c:163
#, c-format
msgid "%s is apparently in use by the system; "
-msgstr "%s används uppenbarligen av systemet; "
+msgstr "%s används uppenbarligen av systemet; "
#: misc/badblocks.c:1003
msgid "badblocks forced anyway.\n"
-msgstr "badblocks framtvingat ändå.\n"
+msgstr "badblocks framtvingat ändå.\n"
#: misc/badblocks.c:1023
#, c-format
#: misc/badblocks.c:1133
#, c-format
msgid "can't allocate memory for test_pattern - %s"
-msgstr "kunde inte allokera minne för testmönster - %s"
+msgstr "kunde inte allokera minne för testmönster - %s"
#: misc/badblocks.c:1163
msgid "Maximum of one test_pattern may be specified in read-only mode"
-msgstr "Högst ett testmönster får anges i skrivskyddat läge"
+msgstr "Högst ett testmönster får anges i skrivskyddat läge"
#: misc/badblocks.c:1169
msgid "Random test_pattern is not allowed in read-only mode"
-msgstr "Slumpvis testmönster är inte tillåtet i skrivskyddat läge"
+msgstr "Slumpvis testmönster är inte tillåtet i skrivskyddat läge"
#: misc/badblocks.c:1183
msgid ""
"Couldn't determine device size; you must specify\n"
"the size manually\n"
msgstr ""
-"Kunde inte avgöra enhetsstorlek; du måste ange\n"
+"Kunde inte avgöra enhetsstorlek; du måste ange\n"
"storleken manuellt\n"
#: misc/badblocks.c:1189
msgid "while trying to determine device size"
-msgstr "vid försök att avgöra enhetsstorlek"
+msgstr "vid försök att avgöra enhetsstorlek"
#: misc/badblocks.c:1194
msgid "last block"
#: misc/badblocks.c:1200
msgid "first block"
-msgstr "första block"
+msgstr "första block"
#: misc/badblocks.c:1203
#, c-format
msgid "invalid starting block (%lu): must be less than %lu"
-msgstr "felaktigt startblock (%lu): måste vara mindre än %lu"
+msgstr "felaktigt startblock (%lu): måste vara mindre än %lu"
#: misc/badblocks.c:1259
msgid "while creating in-memory bad blocks list"
-msgstr "när lista över dåliga block i minnet skapades"
+msgstr "när lista över dåliga block i minnet skapades"
#: misc/badblocks.c:1274
msgid "while adding to in-memory bad block list"
-msgstr "när tillägg gjordes till lista i minnet över dåliga block gjordes"
+msgstr "när tillägg gjordes till lista i minnet över dåliga block gjordes"
#: misc/badblocks.c:1298
#, c-format
msgid "Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"
-msgstr "Pass avslutat, %u dåliga block hittade. (%d/%d/%d fel)\n"
+msgstr "Pass avslutat, %u dåliga block hittade. (%d/%d/%d fel)\n"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Användning: %s [-RVf] [-+=AacDdeijsSu] [-v version] filer...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Användning: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] filer…\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "felaktig version - %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
-msgstr "vid försök att ta status på %s"
+msgstr "vid försök att ta status på %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
-msgstr "vid läsning av flaggor på %s"
+msgstr "vid läsning av flaggor på %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
-msgstr "Att nollställa utsträckningsflaggan stöds inte på %s"
+msgstr "Att nollställa utsträckningsflaggan stöds inte på %s"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
-msgstr "Flaggor på %s satta som "
+msgstr "Flaggor på %s satta som "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
-msgstr "vid sättning av flaggor på %s"
+msgstr "vid sättning av flaggor på %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Version av %s satt som %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
-msgstr "vid sättning av version på %s"
+msgstr "vid sättning av version på %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
-msgstr "Kunde inte allokera sökvägsvariabel i chattr_dir_proc"
+msgstr "Kunde inte allokera sökvägsvariabel i chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
-msgstr "= är inkompatibelt med - och +\n"
+msgstr "= är inkompatibelt med - och +\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
-msgstr "Måste använda \"-v\", =, - eller +\n"
+msgstr "Måste använda \"-v\", =, - eller +\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr ""
-"Användning: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] enhet\n"
+msgstr "Användning: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] enhet\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
#: misc/dumpe2fs.c:206
#, c-format
msgid " (EXPECTED 0x%04x)"
-msgstr " (0x%04x FÖRVÄNTADES)"
+msgstr " (0x%04x FÖRVÄNTADES)"
#: misc/dumpe2fs.c:207
#, c-format
msgid ", unused inodes %u\n"
-msgstr ", oanvända inoder %u\n"
+msgstr ", oanvända inoder %u\n"
#: misc/dumpe2fs.c:212
#, c-format
#: misc/dumpe2fs.c:213
msgid "Primary"
-msgstr "Primärt "
+msgstr "Primärt "
#: misc/dumpe2fs.c:213
msgid "Backup"
#: misc/dumpe2fs.c:255
#, c-format
msgid ", %u unused inodes\n"
-msgstr ", %u oanvända inoder\n"
+msgstr ", %u oanvända inoder\n"
#: misc/dumpe2fs.c:258
msgid " Free blocks: "
#: misc/dumpe2fs.c:300
msgid "while printing bad block list"
-msgstr "vid utskrift av lista över dåliga block"
+msgstr "vid utskrift av lista över dåliga block"
#: misc/dumpe2fs.c:306
#, c-format
msgid "Bad blocks: %u"
-msgstr "Dåliga block: %u"
+msgstr "Dåliga block: %u"
#: misc/dumpe2fs.c:333 misc/tune2fs.c:302
msgid "while reading journal inode"
-msgstr "vid läsning av journalinod"
+msgstr "vid läsning av journalinod"
#: misc/dumpe2fs.c:339
msgid "while opening journal inode"
-msgstr "när journalinoden öppnades"
+msgstr "när journalinoden öppnades"
#: misc/dumpe2fs.c:345
msgid "while reading journal super block"
-msgstr "när journalsuperblocket lästes"
+msgstr "när journalsuperblocket lästes"
#: misc/dumpe2fs.c:355
#, c-format
"Journal sequence: 0x%08x\n"
"Journal start: %u\n"
msgstr ""
-"Journallängd: %u\n"
+"Journallängd: %u\n"
"Journalsekvens: 0x%08x\n"
"Journalstart: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Journalanvändare: %s\n"
+msgstr "Journalfelnummer: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
-msgstr "vid läsning av journalsuperblock"
+msgstr "vid läsning av journalsuperblock"
#: misc/dumpe2fs.c:409
msgid "Couldn't find journal superblock magic numbers"
msgstr ""
"\n"
"Journalblockstorlek: %u\n"
-"Journallängd: %u\n"
-"Journalens första block: %u\n"
+"Journallängd: %u\n"
+"Journalens första block: %u\n"
"Journalsekvens: 0x%08x\n"
"Journalstart: %u\n"
-"Journalens användarantal: %u\n"
+"Journalens användarantal: %u\n"
#: misc/dumpe2fs.c:426
#, c-format
msgid "Journal users: %s\n"
-msgstr "Journalanvändare: %s\n"
+msgstr "Journalanvändare: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
-msgstr "Kunde inte allokera minne för att tolka flaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka flaggor!\n"
#: misc/dumpe2fs.c:468
#, c-format
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Felaktiga utökade flaggor angivna: %s\n"
+"Felaktiga utökade flaggor angivna: %s\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
-"med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tsuperblock=<superblocknummer>\n"
"\tblocksize=<blockstorlek>\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
-msgstr "\tAnvänder %s\n"
+msgstr "\tAnvänder %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
"%s: %s: error reading bitmaps: %s\n"
msgstr ""
"\n"
-"%s: %s: fel vid läsning av bitkartor: %s\n"
+"%s: %s: fel vid läsning av bitkartor: %s\n"
#: misc/e2image.c:87
#, c-format
msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Användning: %s [-rsIQ] enhet avbildsfil\n"
+msgstr "Användning: %s [-rsIQ] enhet avbildsfil\n"
#: misc/e2image.c:135
#, c-format
msgid "Error: header size is bigger than wrt_size\n"
-msgstr "Fel: huvudstorlek är större än wrt_size\n"
+msgstr "Fel: huvudstorlek är större än wrt_size\n"
#: misc/e2image.c:141
msgid "Couldn't allocate header buffer\n"
#: misc/e2image.c:1341
#, c-format
msgid "while trying to convert qcow2 image (%s) into raw image (%s)"
-msgstr "vid försök att konvertera en qcow2-bild (%s) till en rå bild (%s)"
+msgstr "vid försök att konvertera en qcow2-bild (%s) till en rå bild (%s)"
#: misc/e2label.c:58
#, c-format
msgid "e2label: cannot open %s\n"
-msgstr "e2label: kan inte öppna %s\n"
+msgstr "e2label: kan inte öppna %s\n"
#: misc/e2label.c:63
#, c-format
msgid "e2label: cannot seek to superblock\n"
-msgstr "e2label: kan inte söka till superblock\n"
+msgstr "e2label: kan inte söka till superblock\n"
#: misc/e2label.c:68
#, c-format
msgid "e2label: error reading superblock\n"
-msgstr "e2label: fel vid läsning av superblock\n"
+msgstr "e2label: fel vid läsning av superblock\n"
#: misc/e2label.c:72
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: inte ett ext2-filsystem\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
-msgstr "Varning: etikett för lång, avkortar.\n"
+msgstr "Varning: etikett för lång, avkortar.\n"
#: misc/e2label.c:100
#, c-format
msgid "e2label: cannot seek to superblock again\n"
-msgstr "e2label: kan inte söka till superblock igen\n"
+msgstr "e2label: kan inte söka till superblock igen\n"
#: misc/e2label.c:105
#, c-format
msgid "e2label: error writing superblock\n"
msgstr "e2label: fel vid skrivning av superblock\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Användning: e2label enhet [ny-etikett]\n"
+msgstr "Användning: e2label enhet [ny-etikett]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Användning: %s <transaktionsfil> <filsystem>\n"
+msgstr "Användning: %s <transaktionsfil> <filsystem>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
-msgstr "Misslyckades att läsa filsystemdata \n"
+msgstr "Misslyckades att läsa filsystemdata \n"
#: misc/e2undo.c:62 misc/e2undo.c:83 misc/e2undo.c:108 misc/e2undo.c:206
#, c-format
#: misc/e2undo.c:70
#, c-format
msgid "The file system Mount time didn't match %u\n"
-msgstr "Filsystemets monterings tid stämmer inte med %u\n"
+msgstr "Filsystemets monterings tid stämmer inte med %u\n"
#: misc/e2undo.c:89
msgid "The file system UUID didn't match \n"
-msgstr "Filsystemets UUID stämmer inte med \n"
+msgstr "Filsystemets UUID stämmer inte med \n"
#: misc/e2undo.c:163
#, c-format
#: misc/e2undo.c:169
#, c-format
msgid "Error while determining whether %s is mounted.\n"
-msgstr "Fel när det avgjordes om %s är monterat.\n"
+msgstr "Fel när det avgjordes om %s är monterat.\n"
#: misc/e2undo.c:175
msgid "e2undo should only be run on unmounted file system\n"
-msgstr "e2undo skall endast köras på omonterade filsystem\n"
+msgstr "e2undo skall endast köras på omonterade filsystem\n"
#: misc/e2undo.c:184
#, c-format
msgid "Failed to open %s\n"
-msgstr "Det gick inte att öppna öppna %s\n"
+msgstr "Det gick inte att öppna öppna %s\n"
#: misc/e2undo.c:210
#, c-format
msgid "Replayed transaction of size %zd at location %llu\n"
-msgstr "Återuppspelning av transaktion med storlek %zd på plats %llu\n"
+msgstr "Återuppspelning av transaktion med storlek %zd på plats %llu\n"
#: misc/e2undo.c:216
#, c-format
#: misc/fsck.c:343
#, c-format
msgid "WARNING: couldn't open %s: %s\n"
-msgstr "VARNING: kunde inte öppna %s: %s\n"
+msgstr "VARNING: kunde inte öppna %s: %s\n"
#: misc/fsck.c:353
#, c-format
msgid "WARNING: bad format on line %d of %s\n"
-msgstr "VARNING: fel format på rad %d av %s\n"
+msgstr "VARNING: fel format på rad %d av %s\n"
#: misc/fsck.c:370
msgid ""
"\tshould fix your /etc/fstab file as soon as you can.\n"
"\n"
msgstr ""
-"VARNING: Din /etc/fstab innehåller inte fsck-passnr-fältet.\n"
-"\tJag fixar mig förbi detta åt dig, men du\n"
-"\tbör rätta din /etc/fstab-fil så snart du kan.\n"
+"VARNING: Din /etc/fstab innehåller inte fsck-passnr-fältet.\n"
+"\tJag fixar mig förbi detta åt dig, men du\n"
+"\tbör rätta din /etc/fstab-fil så snart du kan.\n"
"\n"
#: misc/fsck.c:478
#: misc/fsck.c:616
#, c-format
msgid "Warning... %s for device %s exited with signal %d.\n"
-msgstr "Varning... %s för enhet %s avslutade med signal %d.\n"
+msgstr "Varning... %s för enhet %s avslutade med signal %d.\n"
#: misc/fsck.c:622
#, c-format
msgid "%s %s: status is %x, should never happen.\n"
-msgstr "%s %s: status är %x, skulle aldrig inträffa.\n"
+msgstr "%s %s: status är %x, skulle aldrig inträffa.\n"
#: misc/fsck.c:661
#, c-format
#: misc/fsck.c:721
#, c-format
msgid "%s: Error %d while executing fsck.%s for %s\n"
-msgstr "%s: Fel %d när fsck.%s kördes för %s\n"
+msgstr "%s: Fel %d när fsck.%s kördes för %s\n"
#: misc/fsck.c:742
msgid ""
"Either all or none of the filesystem types passed to -t must be prefixed\n"
"with 'no' or '!'.\n"
msgstr ""
-"Antingen alla eller inga av filsystemstyperna som ges till -t måste ha\n"
+"Antingen alla eller inga av filsystemstyperna som ges till -t måste ha\n"
"prefix \"no\" eller \"!\".\n"
#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
-msgstr "Kunde inte allokera minne för filsystemtyper\n"
+msgstr "Kunde inte allokera minne för filsystemtyper\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
-msgstr ""
-"%s: hoppar över felaktig rad i /etc/fstab: bind-montering med fsck-"
-"passnummer som inte är noll\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgstr "%s: hoppar över felaktig rad i /etc/fstab: bind-montering med fsck-passnummer som inte är noll\n"
#: misc/fsck.c:911
#, c-format
#: misc/fsck.c:1058
#, c-format
msgid "--waiting-- (pass %d)\n"
-msgstr "--väntar-- (pass %d)\n"
+msgstr "--väntar-- (pass %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
-msgstr ""
-"Användning: fsck [-AMNPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] "
-"[filsys ...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgstr "Användning: fsck [-AMNPRTV] [ -C [ fh ] ] [-t fstyp] [fs-flaggor] [filsys ...]\n"
#: misc/fsck.c:1120
#, c-format
msgid "%s: too many devices\n"
-msgstr "%s: för många enheter\n"
+msgstr "%s: för många enheter\n"
#: misc/fsck.c:1153 misc/fsck.c:1239
#, c-format
msgid "%s: too many arguments\n"
-msgstr "%s: för många argument\n"
+msgstr "%s: för många argument\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Användning: %s [-RVadlv] [filer...]\n"
+msgstr "Användning: %s [-RVadlv] [filer...]\n"
#: misc/lsattr.c:84
#, c-format
msgid "While reading flags on %s"
-msgstr "Vid läsning av flaggor på %s"
+msgstr "Vid läsning av flaggor på %s"
#: misc/lsattr.c:91
#, c-format
msgid "While reading version on %s"
-msgstr "Vid läsning av version på %s"
+msgstr "Vid läsning av version på %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
-"Användning: %s [-c|-l filnamn] [-b blockstorlek] [-C klusterstorlek]\n"
+"Användning: %s [-c|-l filnamn] [-b blockstorlek] [-C klusterstorlek]\n"
"\t[-i byte-per-inod] [-I inodstorlek] [-J journalflaggor]\n"
"\t[-G flexgruppstorlek] [-N antal-inoder]\n"
"\t[-m reservade-block-procent] [-o skapar-os]\n"
"\t[-g block-per-grupp] [-L volymetikett] [-M senast-monterad-katalog]\n"
-"\t[-O funktion[,...]] [-r fs-revision] [-E utökad-flagga[,...]]\n"
-"\t[-t fs-typ] [-T användningstyp] [-U UUID] [-jnqvDFKSV] enhet [blockantal]\n"
+"\t[-O funktion[,...]] [-r fs-revision] [-E utökad-flagga[,...]]\n"
+"\t[-t fs-typ] [-T användningstyp] [-U UUID] [-jnqvDFKSV] enhet [blockantal]\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
-msgstr "Kör kommando: %s\n"
+msgstr "Kör kommando: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
-msgstr "vid försök att köra \"%s\""
+msgstr "vid försök att köra \"%s\""
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
-msgstr "vid bearbetning av lista över dåliga block från program"
+msgstr "vid bearbetning av lista över dåliga block från program"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
-msgstr "Block %d i primär superblock-/gruppbeskrivare är felaktigt.\n"
+msgstr "Block %d i primär superblock-/gruppbeskrivare är felaktigt.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
-msgstr "Block %u till %u måste vara bra för att bygga ett filsystem.\n"
+msgstr "Block %u till %u måste vara bra för att bygga ett filsystem.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Avbryter...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"\tbad blocks.\n"
"\n"
msgstr ""
-"Varning: reservsuperblock-/-gruppbeskrivare vid block %u innehåller\n"
-"\tdåliga block.\n"
+"Varning: reservsuperblock-/-gruppbeskrivare vid block %u innehåller\n"
+"\tdåliga block.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
-msgstr "vid markering av dåliga block som använda"
+msgstr "vid markering av dåliga block som använda"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Skriver inodstabeller: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"Could not write %d blocks in inode table starting at %llu: %s\n"
msgstr ""
"\n"
-"Kunde inte skriva %d block i inodstabell som börjar vid %llu: %s\n"
+"Kunde inte skriva %d block i inodstabell som börjar vid %llu: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
msgstr "klar \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "vid skapande av rotkatalog"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
-msgstr "vid läsning av rotinod"
+msgstr "vid läsning av rotinod"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
-msgstr "vid inställning av rotinodens ägarskap"
+msgstr "vid inställning av rotinodens ägarskap"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "vid skapande av /lost+found"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
-msgstr "vid sökning efter /lost+found"
+msgstr "vid sökning efter /lost+found"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "vid utvidgning av /lost+found"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
-msgstr "vid inställning av inod för dåliga block"
+msgstr "vid inställning av inod för dåliga block"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
-msgstr "Slut på mine vid radering av sektorer %d-%d\n"
+msgstr "Slut på mine vid radering av sektorer %d-%d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
-msgstr "Varning: kune inte läsa block 0: %s\n"
+msgstr "Varning: kune inte läsa block 0: %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Varning: kunde inte radera sektor %d: %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "vid initiering av journalsuperblock"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
-msgstr "Nollställer journalenhet: "
+msgstr "Nollställer journalenhet: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
-msgstr "vid nollställning av journalenhet (block %llu, antal %d)"
+msgstr "vid nollställning av journalenhet (block %llu, antal %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "vid skrivning av journalsuperblock"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"\n"
msgstr ""
-"varning: %llu block oanvända.\n"
+"varning: %llu block oanvända.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Filsystemsetikett=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "OS-typ: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Blockstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Klusterstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Fragmentstorlek=%u (log=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Kliv=%u block, remsvidd=%u block\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u inoder, %llu block\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
-msgstr "%llu block (%2.2f%%) reserverade för superanvändaren\n"
+msgstr "%llu block (%2.2f%%) reserverade för superanvändaren\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
-msgstr "Första datablock=%u\n"
+msgstr "Första datablock=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Maximalt antal filsystemsblock=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u blockgrupper\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u blockgrupp\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u block per grupp, %u kluster per grupp\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u block per grupp, %u fragment per grupp\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u inoder per grupp\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
-msgstr "Superblockkopior lagrade på block: "
+msgstr "Superblockkopior lagrade på block: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "Ogiltigt mmp_update_interval: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Ogiltig stride-parameter: %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Ogiltig remsbreddsparameter: %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
-msgstr "Ogiltig storleksändringsparameter: %s\n"
+msgstr "Ogiltig storleksändringsparameter: %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"Storleksändringens maximum måste vara större än filsystemets storlek.\n"
+msgstr "Storleksändringens maximum måste vara större än filsystemets storlek.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
-msgstr "Storleksändring under drift stöds inte med revision 0-filsystem\n"
+msgstr "Storleksändring under drift stöds inte med revision 0-filsystem\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Ogiltig quotatype-parameter: %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\n"
"Felaktiga flaggor angivna: %s\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
-"med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tstride=<RAID-datastycken per disk i block>\n"
-"\tstripe-width=<RAID-kliv · datadiskar i block>\n"
-"\tresize=<maximal storleksändringsstorlek i block>\n"
-"\tlazy_itable_init=<0 för att avaktivera, 1 för att aktivera>\n"
-"\tlazy_journal_init=<0 för att avaktivera, 1 för att aktivera>\n"
+"\tstripe-width=<RAID-kliv · datadiskar i block>\n"
+"\tresize=<maximal storleksändringsstorlek i block>\n"
+"\tlazy_itable_init=<0 för att avaktivera, 1 för att aktivera>\n"
+"\tlazy_journal_init=<0 för att avaktivera, 1 för att aktivera>\n"
"\ttest_fs\n"
" discard\n"
" nodiscard\n"
" quotatype=<usr ELLER grp>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Varning: RAID-remsbredd %u är inte en jämn multipel av klivet %u.\n"
+"Varning: RAID-remsbredd %u är inte en jämn multipel av klivet %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"Syntaxfel i mke2fs konfigurationsfil (%s, rad nr %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Ogiltig filsystemsflagga satt: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Ogiltig monteringsflagga satt: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"\n"
"Din mke2fs.conf-fil definierar inte filsystemstypen %s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Du behöver förmodligen installera en uppdaterad mke2fs.conf-fil.\n"
+"Du behöver förmodligen installera en uppdaterad mke2fs.conf-fil.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Avbryter...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Varning: fs_type %s är inte definierad i mke2fs.conf\n"
+"Varning: fs_type %s är inte definierad i mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
-msgstr "Kunde inte allokera minne för ny SÖKVÄG.\n"
+msgstr "Kunde inte allokera minne för ny SÖKVÄG.\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Kunde inte initiera profilen (fel: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "felaktig blockstorlek - %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
-msgstr "Varning: blockstorlek %d är inte användbar på de flesta system.\n"
+msgstr "Varning: blockstorlek %d är inte användbar på de flesta system.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "felaktig klusterstorlek - %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
-msgstr "Ogiltigt antal för block per grupp"
+msgstr "Ogiltigt antal för block per grupp"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
-msgstr "block per grupp måste vara en multipel av 8"
+msgstr "block per grupp måste vara en multipel av 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
-msgstr "Felaktigt tal för flex_bg-storlek"
+msgstr "Felaktigt tal för flex_bg-storlek"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
-msgstr "storlek på flex_bg måste vara en multipel av 2"
+msgstr "storlek på flex_bg måste vara en multipel av 2"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
-msgstr "ogiltig inodsförhållande %s (min %d/max %d)"
+msgstr "ogiltig inodsförhållande %s (min %d/max %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Varning: flaggan -K undanbedes och skall inte användas mera. Använd den "
-"utökade flaggan \"-E nodiscard\" istället!\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Varning: flaggan -K undanbedes och skall inte användas mera. Använd den utökade flaggan \"-E nodiscard\" istället!\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
-msgstr "i malloc för bad_blocks_filename"
+msgstr "i malloc för bad_blocks_filename"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "ogiltig procentandel reserverade block - %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
-msgstr "felaktigt versionsnivå - %s"
+msgstr "felaktigt versionsnivå - %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "ogiltig inodsstorlek - %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "felaktigt antal inoder - %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
-msgstr "Flaggan -t får endast anges en gång"
+msgstr "Flaggan -t får endast anges en gång"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
-msgstr "Flaggan -T får endast anges en gång"
+msgstr "Flaggan -T får endast anges en gång"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
-msgstr "vid försök att öppna journalenhet %s\n"
+msgstr "vid försök att öppna journalenhet %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
-msgstr "Journalenhetens blockstorlek (%d) mindre än minsta blockstorlek %d\n"
+msgstr "Journalenhetens blockstorlek (%d) mindre än minsta blockstorlek %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
-msgstr "Använder journalenhetens blockstorlek: %d\n"
+msgstr "Använder journalenhetens blockstorlek: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
-msgstr "felaktiga block \"%s\" på enhet \"%s\""
+msgstr "felaktiga block \"%s\" på enhet \"%s\""
-# "Ett" för att detta sätts in i annan sträng där det föregås av "a".
-# Även "journal" kan sättas in på samma plats. Felrapporterat.
-#: misc/mke2fs.c:1583
+# "Ett" för att detta sätts in i annan sträng där det föregås av "a".
+# Även "journal" kan sättas in på samma plats. Felrapporterat.
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "ett filsystem"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
-msgstr "vid försök att avgöra filsystemstorlek"
+msgstr "vid försök att avgöra filsystemstorlek"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
msgstr ""
-"Kunde inte avgöra enhetsstorlek; du måste ange\n"
-"storleken på filsystemet\n"
+"Kunde inte avgöra enhetsstorlek; du måste ange\n"
+"storleken på filsystemet\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\tto re-read your partition table.\n"
msgstr ""
"Enhetsstorlek rapporterades som noll. Ogiltig partition angiven, eller\n"
-"\tpartitionstabellen var inte omläst efter att ha kört fsck, på grund\n"
-"\tav en modifierad partition används och är i bruk. Du kan behöva\n"
-"\tstarta om för att läsa om din partitionstabell.\n"
+"\tpartitionstabellen var inte omläst efter att ha kört fsck, på grund\n"
+"\tav en modifierad partition används och är i bruk. Du kan behöva\n"
+"\tstarta om för att läsa om din partitionstabell.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
-msgstr "Filsystem större än synbar enhetsstorlek."
+msgstr "Filsystem större än synbar enhetsstorlek."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Misslyckades tolka fs-typlista\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"\tin 32 bits using a blocksize of %d.\n"
msgstr ""
-"%s: Storleken på enhet (0x%llx block) %s är för stor för att uttryckas\n"
-"\tmed 32 bitar med användning av en blockstorlek på %d.\n"
+"%s: Storleken på enhet (0x%llx block) %s är för stor för att uttryckas\n"
+"\tmed 32 bitar med användning av en blockstorlek på %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
-msgstr "upplösning av fs_types för mke2fs.conf: "
+msgstr "upplösning av fs_types för mke2fs.conf: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
-msgstr "Filsystemsfunktioner som inte stöds med revision 0-filsystem\n"
+msgstr "Filsystemsfunktioner som inte stöds med revision 0-filsystem\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
-msgstr "Glesa superblock stöds inte med revision 0-filsystem\n"
+msgstr "Glesa superblock stöds inte med revision 0-filsystem\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
-msgstr "Journaler stöds inte med revision 0-filsystem\n"
+msgstr "Journaler stöds inte med revision 0-filsystem\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "ogiltig procentandel reserverade block - %lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-"Egenskaperna resize_inode och meta_bg är inte kompatibla\n"
-"De kan inte båda aktiveras samtidigt.\n"
+"Egenskaperna resize_inode och meta_bg är inte kompatibla\n"
+"De kan inte båda aktiveras samtidigt.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
-msgstr "vid försök att avgöra hårdvarusektorstorlek"
+msgstr "vid försök att avgöra hårdvarusektorstorlek"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
-msgstr "vid försök att avgöra fysisk sektorstorlek"
+msgstr "vid försök att avgöra fysisk sektorstorlek"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
-msgstr "när blockstorlek sattes; för liten för enheten\n"
+msgstr "när blockstorlek sattes; för liten för enheten\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Varning: angiven blockstorlek %d är mindre än enhetens fysiska sektorstorlek "
-"%d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Varning: angiven blockstorlek %d är mindre än enhetens fysiska sektorstorlek %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
-msgstr "varning: Kan inte ta reda på enhetens geometri för %s\n"
+msgstr "varning: Kan inte ta reda på enhetens geometri för %s\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
-msgstr "%s justering är förskjuten med %lu byte.\n"
+msgstr "%s justering är förskjuten med %lu byte.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr ""
-"Detta kan medföra väldigt dåliga prestanda, (om)partitionering föreslås.\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr "Detta kan medföra väldigt dåliga prestanda, (om)partitionering föreslås.\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
-msgstr "%d-byteblock för stort för systemet (max %d)"
+msgstr "%d-byteblock för stort för systemet (max %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
-msgstr ""
-"Varning: %d-byteblock för stort för systemet (max %d), tvingas fortsätta\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgstr "Varning: %d-byteblock för stort för systemet (max %d), tvingas fortsätta\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
-msgstr ""
-"reserverade block för storleksändring under drift stöds inte på icke-glesa "
-"filsystem"
+msgstr "reserverade block för storleksändring under drift stöds inte på icke-glesa filsystem"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
-msgstr "antal block per grupp utanför giltigt intervall"
+msgstr "antal block per grupp utanför giltigt intervall"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
-msgstr ""
-"Funktionen flex_gb är inte aktiverad, så fleg_bg-storleg kan inte anges"
+msgstr "Funktionen flex_gb är inte aktiverad, så fleg_bg-storleg kan inte anges"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "ogiltig inodstorlek %d (min %d/max %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
-msgstr "för många inoder (%llu), öka inodsförhållandet?"
+msgstr "för många inoder (%llu), öka inodsförhållandet?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
-msgstr "för många inoder (%llu), ange < 2³² inoder"
+msgstr "för många inoder (%llu), ange < 2³² inoder"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\tfilesystem with %llu blocks, specify higher inode_ratio (-i)\n"
"\tor lower inode count (-N).\n"
msgstr ""
-"inodsstorlek (%u) · inodantal (%u) för stort för ett\n"
-"\tfilsystem med %llu block, ange högre inodsförhållande (-i)\n"
-"\teller lägre inodantal (-N).\n"
+"inodsstorlek (%u) · inodantal (%u) för stort för ett\n"
+"\tfilsystem med %llu block, ange högre inodsförhållande (-i)\n"
+"\teller lägre inodantal (-N).\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"Skriver över existerande filsystem, detta kan göras ogjort med kommandot:\n"
+"Skriver över existerande filsystem, detta kan göras ogjort med kommandot:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
-msgstr "vid försök att skapa en gör-ogjort-fil\n"
+msgstr "vid försök att skapa en gör-ogjort-fil\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Utrangerar enhetsblock: "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
msgstr "misslyckades - "
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
-msgstr "vid uppsättning av superblock"
+msgstr "vid uppsättning av superblock"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
-msgstr ""
-"Utrangering lyckades och kommer returnera 0s - hoppar över rensning av "
-"inodstabell\n"
+msgstr "Utrangering lyckades och kommer returnera 0s - hoppar över rensning av inodstabell\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
-msgstr "okänt os - %s"
+msgstr "okänt os - %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Allokerar grupptabeller: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
-msgstr "vid försök att allokera filsystemstabeller"
+msgstr "vid försök att allokera filsystemstabeller"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\tvid konvertering av underklustrets bitkarta"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
-msgstr "vid nollställning av block %llu vid slutet av filsystemet"
+msgstr "vid nollställning av block %llu vid slutet av filsystemet"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
-msgstr "vid reservation av block för storleksändring under drift"
+msgstr "vid reservation av block för storleksändring under drift"
-# "En" för att detta sätts in i annan sträng där det föregås av "a".
-# Även "filsystem" kan sättas in på samma plats. Felrapporterat.
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+# "En" för att detta sätts in i annan sträng där det föregås av "a".
+# Även "filsystem" kan sättas in på samma plats. Felrapporterat.
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "en journal"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
-msgstr "Lägger till journal till enhet %s: "
+msgstr "Lägger till journal till enhet %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\twhile trying to add journal to device %s"
msgstr ""
"\n"
-"\tvid försök att lägga till journal till enhet %s"
+"\tvid försök att lägga till journal till enhet %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "klar\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
-msgstr "Hoppar över att skapa jornal i läget endast super\n"
+msgstr "Hoppar över att skapa jornal i läget endast super\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Skapar journal (%u block): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
msgstr ""
"\n"
-"\tvid försök att skapa journal"
+"\tvid försök att skapa journal"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"Error while enabling multiple mount protection feature."
msgstr ""
"\n"
-"Fel vid aktivering av funktionen för skydd mot flerfaldig montering."
+"Fel vid aktivering av funktionen för skydd mot flerfaldig montering."
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
-msgstr ""
-"Skydd mot flerfaldig montering är aktiverat med uppdateringsintervall %d "
-"sekunder.\n"
+msgstr "Skydd mot flerfaldig montering är aktiverat med uppdateringsintervall %d sekunder.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
-msgstr "Skriver superblock och filsystemsbokföringsinformation: "
+msgstr "Skriver superblock och filsystemsbokföringsinformation: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Varning, hade problem att skriva ut superblock."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
#: misc/mklost+found.c:50
#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Användning: mklost+found\n"
+msgstr "Användning: mklost+found\n"
#: misc/partinfo.c:41
#, c-format
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Användning: %s enhet...\n"
+"Användning: %s enhet...\n"
"\n"
-"Skriv ut partitionsinformationen för varje angiven enhet.\n"
+"Skriv ut partitionsinformationen för varje angiven enhet.\n"
"Till exempel: %s /dev/hda\n"
"\n"
#: misc/partinfo.c:51
#, c-format
msgid "Cannot open %s: %s"
-msgstr "Kan inte öppna %s: %s"
+msgstr "Kan inte öppna %s: %s"
#: misc/partinfo.c:57
#, c-format
msgid "Cannot get geometry of %s: %s"
-msgstr "Kan inte få geometrin för %s: %s"
+msgstr "Kan inte få geometrin för %s: %s"
#: misc/partinfo.c:65
#, c-format
msgid "Cannot get size of %s: %s"
-msgstr "Kan inte få storlek av %s: %s"
+msgstr "Kan inte få storlek av %s: %s"
#: misc/partinfo.c:71
#, c-format
#: misc/tune2fs.c:107
msgid "Please run e2fsck on the filesystem.\n"
-msgstr "Kör e2fsck på filsystemet.\n"
+msgstr "Kör e2fsck på filsystemet.\n"
#: misc/tune2fs.c:116
#, c-format
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Användning: %s [-c max_antal_monteringar] [-e felbeteende] [-g grupp]\n"
+"Användning: %s [-c max_antal_monteringar] [-e felbeteende] [-g grupp]\n"
"\t[-i intervall[d|m|w]] [-j] [-J journalflaggor] [-l]\n"
"\t[-m reserverade_block_procent] [-o [^]monteringsflaggor[,...]]\n"
"\t[-p mmp_uppdateringsintervall] [-r antal_reserverade_block]\n"
-"\t[-u användare] [-C antal_monteringar] [-L volymetikett]\n"
+"\t[-u användare] [-C antal_monteringar] [-L volymetikett]\n"
"\t[-M senast_monterad_katalog] [-O [^]funktion[,...]]\n"
-"\t[-E utökad-flagga[,...]] [-T senaste_kontrolltid] [-U UUID]\n"
+"\t[-E utökad-flagga[,...]] [-T senaste_kontrolltid] [-U UUID]\n"
"\t[ -I ny_inodstorlek ] enhet\n"
#: misc/tune2fs.c:205
msgid "while trying to open external journal"
-msgstr "vid försök att öppna extern journal"
+msgstr "vid försök att öppna extern journal"
#: misc/tune2fs.c:210
#, c-format
msgid "%s is not a journal device.\n"
-msgstr "%s är inte en journalenhet.\n"
+msgstr "%s är inte en journalenhet.\n"
#: misc/tune2fs.c:225
msgid "Journal superblock not found!\n"
#: misc/tune2fs.c:236
msgid "Filesystem's UUID not found on journal device.\n"
-msgstr "Filsystems UUID inte funnet på journalenhet.\n"
+msgstr "Filsystems UUID inte funnet på journalenhet.\n"
#: misc/tune2fs.c:257
msgid ""
"Use -f option to remove missing journal device.\n"
msgstr ""
"Kan inte hitta journalenheten. Den togs INTE bort.\n"
-"Använd flaggan -f för att ta bort en saknad journalenhet.\n"
+"Använd flaggan -f för att ta bort en saknad journalenhet.\n"
#: misc/tune2fs.c:265
msgid "Journal removed\n"
#: misc/tune2fs.c:309
msgid "while reading bitmaps"
-msgstr "vid läsning av bitkartor"
+msgstr "vid läsning av bitkartor"
#: misc/tune2fs.c:317
msgid "while clearing journal inode"
-msgstr "vid nollställning av journalinod"
+msgstr "vid nollställning av journalinod"
#: misc/tune2fs.c:328
msgid "while writing journal inode"
#: misc/tune2fs.c:363
#, c-format
msgid "(and reboot afterwards!)\n"
-msgstr "(och starta om efteråt!)\n"
+msgstr "(och starta om efteråt!)\n"
#: misc/tune2fs.c:396
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Nollställning av filsystemsfunktion \"%s\" stöds inte.\n"
+msgstr "Nollställning av filsystemsfunktion \"%s\" stöds inte.\n"
#: misc/tune2fs.c:402
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
-msgstr "Att sätta filsystemsfunktion \"%s\" stöds inte.\n"
+msgstr "Att sätta filsystemsfunktion \"%s\" stöds inte.\n"
#: misc/tune2fs.c:411
msgid ""
"The has_journal feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaggan has_journal får endast nollställas när filsystemet är\n"
-"omonterat eller monterat enbart för läsning.\n"
+"Flaggan has_journal får endast nollställas när filsystemet är\n"
+"omonterat eller monterat enbart för läsning.\n"
#: misc/tune2fs.c:419
msgid ""
"The needs_recovery flag is set. Please run e2fsck before clearing\n"
"the has_journal flag.\n"
msgstr ""
-"Flaggan needs_recovery är satt. Kör e2fsck före flaggan has_journal\n"
-"nollställs.\n"
+"Flaggan needs_recovery är satt. Kör e2fsck före flaggan has_journal\n"
+"nollställs.\n"
#: misc/tune2fs.c:438
msgid ""
"be set if the filesystem is mounted or\n"
"read-only.\n"
msgstr ""
-"Funktionen för skydd mot flerfaldig montering\n"
-"kan inte sättas på om filsystemet är monterat\n"
+"Funktionen för skydd mot flerfaldig montering\n"
+"kan inte sättas på om filsystemet är monterat\n"
"eller skrivskyddat.\n"
#: misc/tune2fs.c:456
#, c-format
msgid "Multiple mount protection has been enabled with update interval %ds.\n"
-msgstr ""
-"Skydd mot flerfaldig montering har aktiverats med uppdateringsintervallet %d "
-"s.\n"
+msgstr "Skydd mot flerfaldig montering har aktiverats med uppdateringsintervallet %d s.\n"
#: misc/tune2fs.c:465
msgid ""
"The multiple mount protection feature cannot\n"
"be disabled if the filesystem is readonly.\n"
msgstr ""
-"Funktionen för skydd mot flerfaldig montering kan inte\n"
-"avaktiveras om filsystemet är skrivskyddat.\n"
+"Funktionen för skydd mot flerfaldig montering kan inte\n"
+"avaktiveras om filsystemet är skrivskyddat.\n"
#: misc/tune2fs.c:473
msgid "Error while reading bitmaps\n"
-msgstr "Fel vid läsning av bitkartor\n"
+msgstr "Fel vid läsning av bitkartor\n"
#: misc/tune2fs.c:482
#, c-format
msgid "Magic number in MMP block does not match. expected: %x, actual: %x\n"
-msgstr "Magiskt tal i MMP-block stämmer inte. förväntat: %x, faktiskt: %x\n"
+msgstr "Magiskt tal i MMP-block stämmer inte. förväntat: %x, faktiskt: %x\n"
#: misc/tune2fs.c:487
msgid "while reading MMP block."
-msgstr "vid läsning av MMP-block."
+msgstr "vid läsning av MMP-block."
#: misc/tune2fs.c:519
msgid ""
"Clearing the flex_bg flag would cause the the filesystem to be\n"
"inconsistent.\n"
msgstr ""
-"Att nollställa flaggan flex_bg skulle få filsystemet att bli\n"
+"Att nollställa flaggan flex_bg skulle få filsystemet att bli\n"
"inkonsistent.\n"
#: misc/tune2fs.c:530
"The huge_file feature may only be cleared when the filesystem is\n"
"unmounted or mounted read-only.\n"
msgstr ""
-"Flaggan huge_file får endast nollställas när filsystemet är\n"
-"omonterat eller monterat enbart för läsning.\n"
+"Flaggan huge_file får endast nollställas när filsystemet är\n"
+"omonterat eller monterat enbart för läsning.\n"
#: misc/tune2fs.c:590
msgid ""
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
"\n"
-"Varning: flaggan \"^quota\" åsidosätter \"-Q\"-argument.\n"
+"Varning: flaggan \"^quota\" åsidosätter \"-Q\"-argument.\n"
#: misc/tune2fs.c:635
msgid "The filesystem already has a journal.\n"
"\twhile trying to open journal on %s\n"
msgstr ""
"\n"
-"\tvid försök att öppna journal på %s\n"
+"\tvid försök att öppna journal på %s\n"
#: misc/tune2fs.c:657
#, c-format
msgid "Creating journal on device %s: "
-msgstr "Skapar journal på enhet %s: "
+msgstr "Skapar journal på enhet %s: "
#: misc/tune2fs.c:665
#, c-format
msgid "while adding filesystem to journal on %s"
-msgstr "vid tillägg av filsystem till journal på %s"
+msgstr "vid tillägg av filsystem till journal på %s"
#: misc/tune2fs.c:671
msgid "Creating journal inode: "
"\twhile trying to create journal file"
msgstr ""
"\n"
-"\tvid försök att skapa journalfil"
+"\tvid försök att skapa journalfil"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
-msgstr "Kunde inte allokera minne för att tolka kvotflaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka kvotflaggor!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"Felaktigt kvotalternativ angivet.\n"
"\n"
-"Följande giltiga kvotalternativ finns (skicka dem separerade med "
-"kommatecken):\n"
+"Följande giltiga kvotalternativ finns (skicka dem separerade med kommatecken):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Kunde inte tolka datum-/tidsangivelse: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
msgstr "felaktigt antal monteringar - %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "felaktigt felbeteende - %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "felaktigt gid/gruppnamn - %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
msgstr "felaktigt intervall - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "felaktig andel reserverade block - %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
-msgstr "-o får endast anges en gång"
+msgstr "-o får endast anges en gång"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
-msgstr "-O får endast anges en gång"
+msgstr "-O får endast anges en gång"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "felaktigt antal reserverade block - %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
-msgstr "felagtigt uid/användarnamn - %s"
+msgstr "felagtigt uid/användarnamn - %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "felaktig inodsstorlek - %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
-msgstr "Inodsstorlek måste vara en multipel av två- %s"
+msgstr "Inodsstorlek måste vara en multipel av två- %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
-msgstr "mmp_update_interval är för stort: %lu\n"
+msgstr "mmp_update_interval är för stort: %lu\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu "
-"sekund\n"
-msgstr[1] ""
-"Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu "
-"sekunder\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu sekund\n"
+msgstr[1] "Sätter uppdateringsintervall för skydd mot flerfaldig montering till %lu sekunder\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Ogiltig RAID-kliv: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Ogiltig RAID-remsbredd: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Ogiltig hash-algoritm: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
-msgstr "Sätter standardhashalgoritm till %s (%d)\n"
+msgstr "Sätter standardhashalgoritm till %s (%d)\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\n"
"Felaktiga flaggor angivna.\n"
"\n"
-"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas "
-"med\n"
+"Utökade flaggor separeras med komman, och kan ta ett argument som avdelas med\n"
"\tett likhetstecken (\"=\").\n"
"\n"
-"Giltiga utökade flaggor är:\n"
+"Giltiga utökade flaggor är:\n"
"\tclear_mmp\n"
"\thash_alg=<hash-algoritm>\n"
-" mount_opts=<utökade standardmonteringsflaggor>\n"
+" mount_opts=<utökade standardmonteringsflaggor>\n"
"\tstride=<RAID-styckestorlek per disk i block>\n"
-"\tstripe_width=<RAID-kliv·datadiskar i block>\n"
+"\tstripe_width=<RAID-kliv·datadiskar i block>\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
-msgstr "Misslyckades att läsa inodsbitkarta\n"
+msgstr "Misslyckades att läsa inodsbitkarta\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
-msgstr "Misslyckades att läsa blockbitkarta\n"
+msgstr "Misslyckades att läsa blockbitkarta\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "block att flytta"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
-msgstr "Kunde inte allokera blockbitkarta när inodsstorleken ökades\n"
+msgstr "Kunde inte allokera blockbitkarta när inodsstorleken ökades\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
-msgstr "Inte tillräckligt med utrymme för att öka inodsstorleken \n"
+msgstr "Inte tillräckligt med utrymme för att öka inodsstorleken \n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
-msgstr "Misslyckades omlokalisera block under storleksändring av inoder \n"
+msgstr "Misslyckades omlokalisera block under storleksändring av inoder \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
-"Fel när storleken på inoder ändrades.\n"
-"Kör e2undo för att göra filsystemsändringarna ogjorda. \n"
+"Fel när storleken på inoder ändrades.\n"
+"Kör e2undo för att göra filsystemsändringarna ogjorda. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
-msgstr "Kunde inte allokera minne för tdb-filnamn\n"
+msgstr "Kunde inte allokera minne för tdb-filnamn\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
-msgstr "vid försök att ta bort %s"
+msgstr "vid försök att ta bort %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
msgstr ""
-"För att göra tune2fs-operationen ogjord, kör kommandot\n"
+"För att göra tune2fs-operationen ogjord, kör kommandot\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
-"MMP-blockets magiska tal är felaktigt. Försök att rätta det genom att "
-"köra:\n"
+"MMP-blockets magiska tal är felaktigt. Försök att rätta det genom att köra:\n"
"\"e2fsck-f %s\"\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
-msgstr "Inodsstorleken är redan %lu\n"
+msgstr "Inodsstorleken är redan %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
-msgstr "Att krympa inodsstorleken stöds inte.\n"
+msgstr "Att krympa inodsstorleken stöds inte.\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
-msgstr "Sätter max antal monteringar till %d\n"
+msgstr "Sätter max antal monteringar till %d\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
-msgstr "Sätter aktuellt antal monteringar till %d\n"
+msgstr "Sätter aktuellt antal monteringar till %d\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
-msgstr "Sätter felbeteende till %d\n"
+msgstr "Sätter felbeteende till %d\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
-msgstr "Sätter gid för reserverade block till %lu\n"
+msgstr "Sätter gid för reserverade block till %lu\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
-msgstr "intervall mellan kontroller är för stort (%lu)"
+msgstr "intervall mellan kontroller är för stort (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
-msgstr "Sätter intervall mellan kontroller till %lu sekunder\n"
+msgstr "Sätter intervall mellan kontroller till %lu sekunder\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
-msgstr "Sätter procent reserverade block till %g %% (%llu block)\n"
+msgstr "Sätter procent reserverade block till %g %% (%llu block)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
-msgstr "antal reserverade block för stort (%llu)"
+msgstr "antal reserverade block för stort (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
-msgstr "Sätter antal reserverade block till %llu\n"
+msgstr "Sätter antal reserverade block till %llu\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Filsystemet har redan glesa superblock.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"Sparse superblock flag set. %s"
msgstr ""
"\n"
-"Flaggan för glesa superblock satt. %s"
+"Flaggan för glesa superblock satt. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
msgstr ""
"\n"
-"Nollställning av superflaggan gles stöds inte.\n"
+"Nollställning av superflaggan gles stöds inte.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
-msgstr "Sätter tidpunkt för senaste filsystemskontroll till %s\n"
+msgstr "Sätter tidpunkt för senaste filsystemskontroll till %s\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
-msgstr "Sätter uid för reserverade block till %lu\n"
+msgstr "Sätter uid för reserverade block till %lu\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
-msgstr "Fel vid användning av clear_mmp. Det måste användas med -f\n"
+msgstr "Fel vid användning av clear_mmp. Det måste användas med -f\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr "Kvotafunktionen kan endast ändras när filsystemet är omonterat.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr "Kvotafunktionen kan endast ändras när filsystemet är omonterat.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Ogiltigt UUID-format\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr "Inodsstorleken får endast ändras när filsystemet är omonterat.\n"
+msgstr "Inodsstorleken får endast ändras när filsystemet är omonterat.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
msgstr ""
-"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
+"Att ändra inodsstorlek stöds inte för filsystem med funktionen flex_bg\n"
"aktiverad.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
-msgstr "Sätter inodsstorlek till %lu\n"
+msgstr "Sätter inodsstorlek till %lu\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
-msgstr "Misslyckades att ändra inodsstorlek\n"
+msgstr "Misslyckades att ändra inodsstorlek\n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
-msgstr "Sätter klivstorlek till %d\n"
+msgstr "Sätter klivstorlek till %d\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
-msgstr "Sätter remsbredd till %d\n"
+msgstr "Sätter remsbredd till %d\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
-msgstr "Sätter utökade standardmonteringsflaggor till \"%s\"\n"
+msgstr "Sätter utökade standardmonteringsflaggor till \"%s\"\n"
#: misc/util.c:74
msgid "Proceed anyway? (y,n) "
-msgstr "Fortsätt ändå? (j,n) "
+msgstr "Fortsätt ändå? (j,n) "
#: misc/util.c:89
#, c-format
msgid "Could not stat %s --- %s\n"
-msgstr "Kunde inte ta status på %s --- %s\n"
+msgstr "Kunde inte ta status på %s --- %s\n"
#: misc/util.c:92
msgid ""
#: misc/util.c:103
#, c-format
msgid "%s is not a block special device.\n"
-msgstr "%s är inte en blockspecialenhet.\n"
+msgstr "%s är inte en blockspecialenhet.\n"
#: misc/util.c:132
#, c-format
msgid "%s is entire device, not just one partition!\n"
-msgstr "%s är hela enheten, inte bara en partition!\n"
+msgstr "%s är hela enheten, inte bara en partition!\n"
#: misc/util.c:154
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "mke2fs framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
+msgstr "mke2fs framtvingat ändå. Hoppas /etc/mtab är felaktig.\n"
# %s kan bli "filsystem" eller "journal". Jag har lagt till "en"
-# respektive "ett" i översättningarna av dessa strängar istället.
+# respektive "ett" i översättningarna av dessa strängar istället.
# Felrapporterat.
#: misc/util.c:159
#, c-format
msgid "will not make a %s here!\n"
-msgstr "skapar inte %s här!\n"
+msgstr "skapar inte %s här!\n"
#: misc/util.c:166
msgid "mke2fs forced anyway.\n"
-msgstr "mke2fs framtvingad ändå.\n"
+msgstr "mke2fs framtvingad ändå.\n"
#: misc/util.c:182
msgid "Couldn't allocate memory to parse journal options!\n"
-msgstr "Kunde inte allokera minne för att tolka journalflaggor!\n"
+msgstr "Kunde inte allokera minne för att tolka journalflaggor!\n"
#: misc/util.c:207
#, c-format
"Felaktiga journalflaggor angivna.\n"
"\n"
"Journalflaggor separeras med kommatecken, och kan ta ett argument som\n"
-"\tavgränsas med ett likhetstecken (\"=\").\n"
+"\tavgränsas med ett likhetstecken (\"=\").\n"
"\n"
-"Giltiga journalflaggor är:\n"
+"Giltiga journalflaggor är:\n"
"\tsize=<journalstorlek i megabyte>\n"
"\tenhet=<journalenhet>\n"
"\n"
-"Journalstorleken måste vara mellan 1024 och 10240000 filsystemsblock.\n"
+"Journalstorleken måste vara mellan 1024 och 10240000 filsystemsblock.\n"
"\n"
#: misc/util.c:258
"Filesystem too small for a journal\n"
msgstr ""
"\n"
-"Filsystem för litet för en journal\n"
+"Filsystem för litet för en journal\n"
#: misc/util.c:265
#, c-format
"between 1024 and 10240000 blocks. Aborting.\n"
msgstr ""
"\n"
-"Den begärda journalstorleken är %d block; den måste vara\n"
+"Den begärda journalstorleken är %d block; den måste vara\n"
"mellan 1024 och 10240000 block. Avbryter.\n"
#: misc/util.c:273
"Journal size too big for filesystem.\n"
msgstr ""
"\n"
-"Journalstorleken för stor för filsystem.\n"
+"Journalstorleken för stor för filsystem.\n"
#: misc/util.c:287
#, c-format
"%g days, whichever comes first. Use tune2fs -c or -i to override.\n"
msgstr ""
"Detta filsystem kommer automatiskt kontrolleras var %d montering eller\n"
-"%g dag, vilket som kommer först. Använd tune2fs -c eller -i för att ändra.\n"
+"%g dag, vilket som kommer först. Använd tune2fs -c eller -i för att ändra.\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Användning: %s [-d] [-p pid-fil] [-s uttagssökväg] [-T tidsgräns]\n"
+msgstr "Användning: %s [-d] [-p pid-fil] [-s uttagssökväg] [-T tidsgräns]\n"
#: misc/uuidd.c:50
#, c-format
#: misc/uuidd.c:199
msgid "read count"
-msgstr "läsantal"
+msgstr "läsantal"
#: misc/uuidd.c:205
msgid "bad response length"
-msgstr "felaktig svarslängd"
+msgstr "felaktig svarslängd"
#: misc/uuidd.c:270
#, c-format
msgid "uuidd daemon already running at pid %s\n"
-msgstr "uuidd-demonen som körs redan med pid %s\n"
+msgstr "uuidd-demonen som körs redan med pid %s\n"
#: misc/uuidd.c:278
#, c-format
msgid "Couldn't create unix stream socket: %s"
-msgstr "Kunde inte skapa unix-strömuttag: %s"
+msgstr "Kunde inte skapa unix-strömuttag: %s"
#: misc/uuidd.c:307
#, c-format
#: misc/uuidd.c:315
#, c-format
msgid "Couldn't listen on unix socket %s: %s\n"
-msgstr "Kunde inte lyssna på unix-uttag %s: %s\n"
+msgstr "Kunde inte lyssna på unix-uttag %s: %s\n"
#: misc/uuidd.c:353
#, c-format
msgid "Error reading from client, len = %d\n"
-msgstr "Fel vid läsning från klient, len = %d\n"
+msgstr "Fel vid läsning från klient, len = %d\n"
#: misc/uuidd.c:361
#, c-format
#: misc/uuidd.c:390
#, c-format
msgid "Generated random UUID: %s\n"
-msgstr "Genererade slumpmässigt UUID: %s\n"
+msgstr "Genererade slumpmässigt UUID: %s\n"
#: misc/uuidd.c:399
#, c-format
msgid "Generated time UUID %s and subsequent UUID\n"
msgid_plural "Generated time UUID %s and %d subsequent UUIDs\n"
-msgstr[0] "Genererade tids-UUID %s och efterföljande UUID\n"
-msgstr[1] "Genererade tids-UUID %s och %d efterföljande UUID:er\n"
+msgstr[0] "Genererade tids-UUID %s och efterföljande UUID\n"
+msgstr[1] "Genererade tids-UUID %s och %d efterföljande UUID:er\n"
#: misc/uuidd.c:420
#, c-format
#, c-format
msgid "%s and subsequent UUID\n"
msgid_plural "%s and subsequent %d UUIDs\n"
-msgstr[0] "%s och efterföljande UUID\n"
-msgstr[1] "%s och efterföljande %d UUID:er\n"
+msgstr[0] "%s och efterföljande UUID\n"
+msgstr[1] "%s och efterföljande %d UUID:er\n"
#: misc/uuidd.c:547
#, c-format
msgid "List of UUID's:\n"
-msgstr "Lista över UUID:er:\n"
+msgstr "Lista över UUID:er:\n"
#: misc/uuidd.c:568
#, c-format
msgid "Unexpected reply length from server %d\n"
-msgstr "Oväntad svarslängd från servern %d\n"
+msgstr "Oväntad svarslängd från servern %d\n"
#: misc/uuidd.c:585
#, c-format
msgid "Couldn't kill uuidd running at pid %d: %s\n"
-msgstr "Kunde inte döda uuidd som kör med pid %d: %s\n"
+msgstr "Kunde inte döda uuidd som kör med pid %d: %s\n"
#: misc/uuidd.c:591
#, c-format
msgid "Killed uuidd running at pid %d\n"
-msgstr "Dödade uuidd som körde med pid %d\n"
+msgstr "Dödade uuidd som körde med pid %d\n"
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Användning: %s [-r] [-t]\n"
+msgstr "Användning: %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
-msgstr "# Områdesdump:\n"
+msgstr "# Områdesdump:\n"
#: resize/extent.c:203
#, c-format
msgid "#\tNum=%llu, Size=%llu, Cursor=%llu, Sorted=%llu\n"
-msgstr "#\tAntal=%llu, Storlek=%llu, Markör=%llu, Sorterad=%llu\n"
+msgstr "#\tAntal=%llu, Storlek=%llu, Markör=%llu, Sorterad=%llu\n"
#: resize/main.c:43
#, c-format
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Användning: %s [-d felsökningflaggor] [-f] [-F] [-M] [-P] [-p] enhet "
-"[ny_storlek]\n"
+"Användning: %s [-d felsökningflaggor] [-f] [-F] [-M] [-P] [-p] enhet [ny_storlek]\n"
"\n"
#: resize/main.c:65
msgid "Extending the inode table"
-msgstr "Utökar inodstabellen"
+msgstr "Utökar inodstabellen"
#: resize/main.c:68
msgid "Relocating blocks"
#: resize/main.c:71
msgid "Scanning inode table"
-msgstr "Söker igenom inodstabell"
+msgstr "Söker igenom inodstabell"
#: resize/main.c:74
msgid "Updating inode references"
#: resize/main.c:80
msgid "Unknown pass?!?"
-msgstr "Okänt pass?!?"
+msgstr "Okänt pass?!?"
#: resize/main.c:83
#, c-format
msgid "Begin pass %d (max = %lu)\n"
-msgstr "Börja pass %d (max = %lu)\n"
+msgstr "Börja pass %d (max = %lu)\n"
#: resize/main.c:259
#, c-format
msgid "while opening %s"
-msgstr "när %s öppnades"
+msgstr "när %s öppnades"
#: resize/main.c:267
#, c-format
msgid "while getting stat information for %s"
-msgstr "när statusinformation för %s hämtades"
+msgstr "när statusinformation för %s hämtades"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: Kombinationen av funktionerna flex_bg och\n"
-"\t!resize_inode stöds inte av resize2fs.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
msgstr ""
-"Kör \"e2fsck -f %s\" först.\n"
+"Kör \"e2fsck -f %s\" först.\n"
"\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
-msgstr "Uppskattad minsta storlek på filsystemet: %llu\n"
+msgstr "Uppskattad minsta storlek på filsystemet: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Ogiltig ny storlek: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
-msgstr "Ny storlek för stor för att uttryckas i 32 bitar\n"
+msgstr "Ny storlek för stor för att uttryckas i 32 bitar\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
-msgstr "Ny storlek mindre än minimum (%llu)\n"
+msgstr "Ny storlek mindre än minimum (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
-msgstr "Ogiltig stride-längd"
+msgstr "Ogiltig stride-längd"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"You requested a new size of %llu blocks.\n"
"\n"
msgstr ""
-"Den rymmande partitionen (eller enheten) är bara %llu (%d k) block.\n"
-"Du begärde en ny storlek på %llu block.\n"
+"Den rymmande partitionen (eller enheten) är bara %llu (%d k) block.\n"
+"Du begärde en ny storlek på %llu block.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"\n"
msgstr ""
-"Filsystemet är redan %llu block långt. Inget behöver göras!\n"
+"Filsystemet är redan %llu block långt. Inget behöver göras!\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
+#, c-format
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
+msgstr ""
+"%s: Kombinationen av funktionerna flex_bg och\n"
+"\t!resize_inode stöds inte av resize2fs.\n"
+
+#: resize/main.c:463
#, c-format
msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
-msgstr "Ändrar storlek på filsystemet på %s till %llu (%d k) block.\n"
+msgstr "Ändrar storlek på filsystemet på %s till %llu (%d k) block.\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
-msgstr "vid försök att ändra storlek på %s"
+msgstr "vid försök att ändra storlek på %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-"Kör \"e2fsck -fy %s\" för att laga filsystemet\n"
-"efter den avbrutna storleksändringen.\n"
+"Kör \"e2fsck -fy %s\" för att laga filsystemet\n"
+"efter den avbrutna storleksändringen.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"\n"
msgstr ""
-"Filsystemet på %s är nu %llu block långt.\n"
+"Filsystemet på %s är nu %llu block långt.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
-msgstr "vid försök att korta av %s"
+msgstr "vid försök att korta av %s"
#: resize/online.c:40
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr "Filsystem på %s är monterat på %s, on-line-storleksändring krävs\n"
+msgstr "Filsystem på %s är monterat på %s, on-line-storleksändring krävs\n"
#: resize/online.c:44
msgid "On-line shrinking not supported"
-msgstr "Att krympa uppkopplat stödjs inte"
+msgstr "Att krympa uppkopplat stödjs inte"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
-msgstr "Filsystemet stödjer inte storleksändring uppkopplat"
+msgstr "Filsystemet stödjer inte storleksändring uppkopplat"
+
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Inte tillräckligt med reserverade gdt-block för storleksändring"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Kärnan stödjer inte ändring av storlek på så stora filsystem"
-#: resize/online.c:70
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
-msgstr "vid försök att öppna monteringspunkt %s"
+msgstr "vid försök att öppna monteringspunkt %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
-msgstr "Rättighet att ändra storlek på filsystem nekas"
+msgstr "Rättighet att ändra storlek på filsystem nekas"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
-msgstr "Vid kontroll av stöd för storleksändring uppkopplat"
+msgstr "Vid kontroll av stöd för storleksändring uppkopplat"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr "Kärnan stödjer inte ändring av storlek på så stora filsystem"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
-msgstr "Kärnan stödjer inte storleksändring uppkopplat"
+msgstr "Kärnan stödjer inte storleksändring uppkopplat"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr "Utför en storleksändring on-line av %s till %llu (%d k) block.\n"
+msgstr "Utför en storleksändring on-line av %s till %llu (%d k) block.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
-msgstr "Vid försök att utöka den sista gruppen"
+msgstr "Vid försök att utöka den sista gruppen"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
-msgstr "Vid försök att öppna grupp nr. %d"
+msgstr "Vid försök att öppna grupp nr. %d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"Filsystemet på %s är monterat på %s, och storleksändring on-line stöds inte "
-"på detta system.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "Filsystemet på %s är monterat på %s, och storleksändring on-line stöds inte på detta system.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
-msgstr "inoder (%llu) måste vara mindre än %u"
+msgstr "inoder (%llu) måste vara mindre än %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "reserverade block"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "metadatablock"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
-msgstr "Skulle aldrig inträffa: storleksändringsinoden trasig!\n"
+msgstr "Skulle aldrig inträffa: storleksändringsinoden trasig!\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "EXT2FS-bibliotek version 1.42.2"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "EXT2FS-bibliotek version 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
-msgstr "Fel magiskt tal för ext2_filsys-post"
+msgstr "Fel magiskt tal för ext2_filsys-post"
#: lib/ext2fs/ext2_err.c:13
msgid "Wrong magic number for badblocks_list structure"
-msgstr "Fel magiskt tal för badblocks_list-post"
+msgstr "Fel magiskt tal för badblocks_list-post"
#: lib/ext2fs/ext2_err.c:14
msgid "Wrong magic number for badblocks_iterate structure"
-msgstr "Fel magiskt tal för badblocks_iterate-post"
+msgstr "Fel magiskt tal för badblocks_iterate-post"
#: lib/ext2fs/ext2_err.c:15
msgid "Wrong magic number for inode_scan structure"
-msgstr "Fel magiskt tal för inode_scan-post"
+msgstr "Fel magiskt tal för inode_scan-post"
#: lib/ext2fs/ext2_err.c:16
msgid "Wrong magic number for io_channel structure"
-msgstr "Fel magiskt tal för io_channel-post"
+msgstr "Fel magiskt tal för io_channel-post"
#: lib/ext2fs/ext2_err.c:17
msgid "Wrong magic number for unix io_channel structure"
-msgstr "Fel magiskt tal för unix-io_channel-post"
+msgstr "Fel magiskt tal för unix-io_channel-post"
#: lib/ext2fs/ext2_err.c:18
msgid "Wrong magic number for io_manager structure"
-msgstr "Fel magiskt tal för io_manager-post"
+msgstr "Fel magiskt tal för io_manager-post"
#: lib/ext2fs/ext2_err.c:19
msgid "Wrong magic number for block_bitmap structure"
-msgstr "Fel magiskt tal för block_bitmap-post"
+msgstr "Fel magiskt tal för block_bitmap-post"
#: lib/ext2fs/ext2_err.c:20
msgid "Wrong magic number for inode_bitmap structure"
-msgstr "Fel magiskt tal för inode_bitmap-post"
+msgstr "Fel magiskt tal för inode_bitmap-post"
#: lib/ext2fs/ext2_err.c:21
msgid "Wrong magic number for generic_bitmap structure"
-msgstr "Fel magiskt tal för generic_bitmap-post"
+msgstr "Fel magiskt tal för generic_bitmap-post"
#: lib/ext2fs/ext2_err.c:22
msgid "Wrong magic number for test io_channel structure"
-msgstr "Fel magiskt tal för test io_channel-post"
+msgstr "Fel magiskt tal för test io_channel-post"
#: lib/ext2fs/ext2_err.c:23
msgid "Wrong magic number for directory block list structure"
-msgstr "Fel magiskt tal för katalogenblocklistepost"
+msgstr "Fel magiskt tal för katalogenblocklistepost"
#: lib/ext2fs/ext2_err.c:24
msgid "Wrong magic number for icount structure"
-msgstr "Fel magiskt tal för icount-post"
+msgstr "Fel magiskt tal för icount-post"
#: lib/ext2fs/ext2_err.c:25
msgid "Wrong magic number for Powerquest io_channel structure"
-msgstr "Fel magiskt tal för PowerQuest-io_channel-post"
+msgstr "Fel magiskt tal för PowerQuest-io_channel-post"
#: lib/ext2fs/ext2_err.c:26
msgid "Wrong magic number for ext2 file structure"
-msgstr "Fel magiskt tal för ext2-filstruktur"
+msgstr "Fel magiskt tal för ext2-filstruktur"
#: lib/ext2fs/ext2_err.c:27
msgid "Wrong magic number for Ext2 Image Header"
-msgstr "Fel magiskt tal för ext2-avbildshuvud"
+msgstr "Fel magiskt tal för ext2-avbildshuvud"
#: lib/ext2fs/ext2_err.c:28
msgid "Wrong magic number for inode io_channel structure"
-msgstr "Fel magiskt tal för inods-io_channel-post"
+msgstr "Fel magiskt tal för inods-io_channel-post"
#: lib/ext2fs/ext2_err.c:29
msgid "Wrong magic number for ext4 extent handle"
-msgstr "Fel magiskt tal för ext4-utsträckningshandtag"
+msgstr "Fel magiskt tal för ext4-utsträckningshandtag"
#: lib/ext2fs/ext2_err.c:30
msgid "Bad magic number in super-block"
#: lib/ext2fs/ext2_err.c:31
msgid "Filesystem revision too high"
-msgstr "Filesystemversionen är för hög"
+msgstr "Filesystemversionen är för hög"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Försök att skriva till ett filsystem öppnat skrivskyddat"
+msgstr "Försök att skriva till ett filsystem öppnat skrivskyddat"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
-msgstr "Kan inte läsa gruppbeskrivare"
+msgstr "Kan inte läsa gruppbeskrivare"
#: lib/ext2fs/ext2_err.c:34
msgid "Can't write group descriptors"
#: lib/ext2fs/ext2_err.c:35
msgid "Corrupt group descriptor: bad block for block bitmap"
-msgstr "Trasig gruppbeskrivare: felaktigt block för blockbitkarta"
+msgstr "Trasig gruppbeskrivare: felaktigt block för blockbitkarta"
#: lib/ext2fs/ext2_err.c:36
msgid "Corrupt group descriptor: bad block for inode bitmap"
-msgstr "Trasig gruppbeskrivare: felaktigt block för inodsbitkarta"
+msgstr "Trasig gruppbeskrivare: felaktigt block för inodsbitkarta"
#: lib/ext2fs/ext2_err.c:37
msgid "Corrupt group descriptor: bad block for inode table"
-msgstr "Trasig gruppbeskrivare: dåligt block för inodstabell"
+msgstr "Trasig gruppbeskrivare: dåligt block för inodstabell"
#: lib/ext2fs/ext2_err.c:38
msgid "Can't write an inode bitmap"
#: lib/ext2fs/ext2_err.c:39
msgid "Can't read an inode bitmap"
-msgstr "Kan inte läsa en inodsbitkarta"
+msgstr "Kan inte läsa en inodsbitkarta"
#: lib/ext2fs/ext2_err.c:40
msgid "Can't write an block bitmap"
#: lib/ext2fs/ext2_err.c:41
msgid "Can't read an block bitmap"
-msgstr "Kan inte läsa en blockbitkarta"
+msgstr "Kan inte läsa en blockbitkarta"
#: lib/ext2fs/ext2_err.c:42
msgid "Can't write an inode table"
#: lib/ext2fs/ext2_err.c:43
msgid "Can't read an inode table"
-msgstr "Kan inte läsa en inodstabell"
+msgstr "Kan inte läsa en inodstabell"
#: lib/ext2fs/ext2_err.c:44
msgid "Can't read next inode"
-msgstr "Kan inte läsa nästa inod"
+msgstr "Kan inte läsa nästa inod"
#: lib/ext2fs/ext2_err.c:45
msgid "Filesystem has unexpected block size"
-msgstr "Filsystemet har oväntad blockstorlek."
+msgstr "Filsystemet har oväntad blockstorlek."
#: lib/ext2fs/ext2_err.c:46
msgid "EXT2 directory corrupted"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "Försök att läsa block från filsystemet resulterade i en kort läsning"
+msgstr "Försök att läsa block från filsystemet resulterade i en kort läsning"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr ""
-"Försök att skriva block till filsystemet resulterade i en kort skrivning"
+msgstr "Försök att skriva block till filsystemet resulterade i en kort skrivning"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
#: lib/ext2fs/ext2_err.c:50
msgid "Inode bitmap not loaded"
-msgstr "Inodsbitkartan inte inläst"
+msgstr "Inodsbitkartan inte inläst"
#: lib/ext2fs/ext2_err.c:51
msgid "Block bitmap not loaded"
-msgstr "Blockbitkartan inte inläst"
+msgstr "Blockbitkartan inte inläst"
#: lib/ext2fs/ext2_err.c:52
msgid "Illegal inode number"
-msgstr "Otillåtet inodsnummer"
+msgstr "Otillåtet inodsnummer"
#: lib/ext2fs/ext2_err.c:53
msgid "Illegal block number"
-msgstr "Otillåtet blocknummer"
+msgstr "Otillåtet blocknummer"
#: lib/ext2fs/ext2_err.c:54
msgid "Internal error in ext2fs_expand_dir"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Inte tillräckligt med utrymme för att bygga det föreslagna filsystemet"
+msgstr "Inte tillräckligt med utrymme för att bygga det föreslagna filsystemet"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_mark_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_mark_block_bitmap"
#: lib/ext2fs/ext2_err.c:57
msgid "Illegal block number passed to ext2fs_unmark_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_unmark_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_unmark_block_bitmap"
#: lib/ext2fs/ext2_err.c:58
msgid "Illegal block number passed to ext2fs_test_block_bitmap"
-msgstr "Otillåtet blocknummer skickat till ext2fs_test_block_bitmap"
+msgstr "Otillåtet blocknummer skickat till ext2fs_test_block_bitmap"
#: lib/ext2fs/ext2_err.c:59
msgid "Illegal inode number passed to ext2fs_mark_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_mark_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_mark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:60
msgid "Illegal inode number passed to ext2fs_unmark_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_unmark_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_unmark_inode_bitmap"
#: lib/ext2fs/ext2_err.c:61
msgid "Illegal inode number passed to ext2fs_test_inode_bitmap"
-msgstr "Otillåtet inodsnummer skickat till ext2fs_test_inode_bitmap"
+msgstr "Otillåtet inodsnummer skickat till ext2fs_test_inode_bitmap"
#: lib/ext2fs/ext2_err.c:62
msgid "Attempt to fudge end of block bitmap past the real end"
-msgstr ""
-"Försök att fuska till slutet av blockbitkartan bortom det riktiga slutet"
+msgstr "Försök att fuska till slutet av blockbitkartan bortom det riktiga slutet"
#: lib/ext2fs/ext2_err.c:63
msgid "Attempt to fudge end of inode bitmap past the real end"
-msgstr ""
-"Försök att fuska till slutet av inodsbitkartan bortom det riktiga slutet"
+msgstr "Försök att fuska till slutet av inodsbitkartan bortom det riktiga slutet"
#: lib/ext2fs/ext2_err.c:64
msgid "Illegal indirect block found"
-msgstr "Otillåtet indirektblock hittat"
+msgstr "Otillåtet indirektblock hittat"
#: lib/ext2fs/ext2_err.c:65
msgid "Illegal doubly indirect block found"
-msgstr "Otillåtet dubbelt indirektblock hittat"
+msgstr "Otillåtet dubbelt indirektblock hittat"
#: lib/ext2fs/ext2_err.c:66
msgid "Illegal triply indirect block found"
-msgstr "Otillåtet trippelt indirektblock hittat"
+msgstr "Otillåtet trippelt indirektblock hittat"
#: lib/ext2fs/ext2_err.c:67
msgid "Block bitmaps are not the same"
-msgstr "Blockbitkartorna är inte desamma"
+msgstr "Blockbitkartorna är inte desamma"
#: lib/ext2fs/ext2_err.c:68
msgid "Inode bitmaps are not the same"
-msgstr "Inodsbitkartorna är inte desamma"
+msgstr "Inodsbitkartorna är inte desamma"
#: lib/ext2fs/ext2_err.c:69
msgid "Illegal or malformed device name"
-msgstr "Otillåtet eller felformat enhetsnamn"
+msgstr "Otillåtet eller felformat enhetsnamn"
#: lib/ext2fs/ext2_err.c:70
msgid "A block group is missing an inode table"
#: lib/ext2fs/ext2_err.c:71
msgid "The ext2 superblock is corrupt"
-msgstr "Ext2-superblocket är skadat"
+msgstr "Ext2-superblocket är skadat"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_mark_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_mark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_unmark_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_unmark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr "Otillåtet generiskt bittal skickat till ext2fs_test_generic_bitmap"
+msgstr "Otillåtet generiskt bittal skickat till ext2fs_test_generic_bitmap"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
-msgstr "Alltför många symboliska länkar påträffade."
+msgstr "Alltför många symboliska länkar påträffade."
#: lib/ext2fs/ext2_err.c:76
msgid "The callback function will not handle this case"
-msgstr "Återanropsfunktionen kommer inte att hantera detta fall"
+msgstr "Återanropsfunktionen kommer inte att hantera detta fall"
#: lib/ext2fs/ext2_err.c:77
msgid "The inode is from a bad block in the inode table"
-msgstr "Inoden är från ett dåligt block i inodstabellen"
+msgstr "Inoden är från ett dåligt block i inodstabellen"
#: lib/ext2fs/ext2_err.c:78
msgid "Filesystem has unsupported feature(s)"
-msgstr "Filsystemet har funktioner som inte stödjs"
+msgstr "Filsystemet har funktioner som inte stödjs"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "Filsystemet har endast-läsbart-funktioner som inte stödjs"
+msgstr "Filsystemet har endast-läsbart-funktioner som inte stödjs"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "IO-kanalen misslyckades söka vid läsning eller skrivning"
+msgstr "IO-kanalen misslyckades söka vid läsning eller skrivning"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
#: lib/ext2fs/ext2_err.c:85
msgid "Ext2 inode is not a directory"
-msgstr "Ext2-inod är inte en katalog"
+msgstr "Ext2-inod är inte en katalog"
#: lib/ext2fs/ext2_err.c:86
msgid "Too many references in table"
-msgstr "För många referenser i tabellen"
+msgstr "För många referenser i tabellen"
#: lib/ext2fs/ext2_err.c:87
msgid "File not found by ext2_lookup"
#: lib/ext2fs/ext2_err.c:88
msgid "File open read-only"
-msgstr "Filen öppnas skrivskyddad"
+msgstr "Filen öppnas skrivskyddad"
#: lib/ext2fs/ext2_err.c:89
msgid "Ext2 directory block not found"
#: lib/ext2fs/ext2_err.c:92
msgid "User cancel requested"
-msgstr "Användarannullering begärd"
+msgstr "Användarannullering begärd"
#: lib/ext2fs/ext2_err.c:93
msgid "Ext2 file too big"
-msgstr "Ext2-fil för stor"
+msgstr "Ext2-fil för stor"
#: lib/ext2fs/ext2_err.c:94
msgid "Supplied journal device not a block device"
-msgstr "Angiven journalenhet är inte en blockenhet"
+msgstr "Angiven journalenhet är inte en blockenhet"
#: lib/ext2fs/ext2_err.c:95
msgid "Journal superblock not found"
#: lib/ext2fs/ext2_err.c:96
msgid "Journal must be at least 1024 blocks"
-msgstr "Journalen måste vara minst 1024 block"
+msgstr "Journalen måste vara minst 1024 block"
#: lib/ext2fs/ext2_err.c:97
msgid "Unsupported journal version"
-msgstr "Ej stödd journalversion"
+msgstr "Ej stödd journalversion"
#: lib/ext2fs/ext2_err.c:98
msgid "Error loading external journal"
-msgstr "Fel vid läsning av en extern journal"
+msgstr "Fel vid läsning av en extern journal"
#: lib/ext2fs/ext2_err.c:99
msgid "Journal not found"
#: lib/ext2fs/ext2_err.c:100
msgid "Directory hash unsupported"
-msgstr "Katalog-hash stödjs inte"
+msgstr "Katalog-hash stödjs inte"
#: lib/ext2fs/ext2_err.c:101
msgid "Illegal extended attribute block number"
-msgstr "Ogiltigt blocknummer för utökat attribut"
+msgstr "Ogiltigt blocknummer för utökat attribut"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Kan inte skapa ett filsystem med begärt antal inoder"
+msgstr "Kan inte skapa ett filsystem med begärt antal inoder"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
-msgstr "E2image-ögonblicksbild används inte"
+msgstr "E2image-ögonblicksbild används inte"
#: lib/ext2fs/ext2_err.c:104
msgid "Too many reserved group descriptor blocks"
-msgstr "För många reserverade gruppidentifierarblock"
+msgstr "För många reserverade gruppidentifierarblock"
#: lib/ext2fs/ext2_err.c:105
msgid "Resize inode is corrupt"
-msgstr "Storleksändringsinoden är trasig"
+msgstr "Storleksändringsinoden är trasig"
#: lib/ext2fs/ext2_err.c:106
msgid "Tried to set block bmap with missing indirect block"
-msgstr "Försökte sätta en blockbitkarta med saknat indirektblock"
+msgstr "Försökte sätta en blockbitkarta med saknat indirektblock"
#: lib/ext2fs/ext2_err.c:107
msgid "TDB: Success"
#: lib/ext2fs/ext2_err.c:110
msgid "TDB: Locking error"
-msgstr "TDB: Låsningsfel"
+msgstr "TDB: Låsningsfel"
#: lib/ext2fs/ext2_err.c:111
msgid "TDB: Out of memory"
-msgstr "TDB: Slut på minne"
+msgstr "TDB: Slut på minne"
#: lib/ext2fs/ext2_err.c:112
msgid "TDB: Record exists"
#: lib/ext2fs/ext2_err.c:113
msgid "TDB: Lock exists on other keys"
-msgstr "TDB: Lås finns på andra nycklar"
+msgstr "TDB: Lås finns på andra nycklar"
#: lib/ext2fs/ext2_err.c:114
msgid "TDB: Invalid parameter"
#: lib/ext2fs/ext2_err.c:116
msgid "TDB: Write not permitted"
-msgstr "TDB: Skrivning är inte tillåten"
+msgstr "TDB: Skrivning är inte tillåten"
#: lib/ext2fs/ext2_err.c:117
msgid "Ext2fs directory block list is empty"
-msgstr "Ext2fs-katalogblocklistan är tom"
+msgstr "Ext2fs-katalogblocklistan är tom"
#: lib/ext2fs/ext2_err.c:118
msgid "Attempt to modify a block mapping via a read-only block iterator"
-msgstr "Försök att ändra en blockmappning via en endast läsbar blockiterator"
+msgstr "Försök att ändra en blockmappning via en endast läsbar blockiterator"
#: lib/ext2fs/ext2_err.c:119
msgid "Wrong magic number for ext4 extent saved path"
-msgstr "Fel magiskt nummer för sparad sökväg till ext4-utsträckning"
+msgstr "Fel magiskt nummer för sparad sökväg till ext4-utsträckning"
#: lib/ext2fs/ext2_err.c:120
msgid "Wrong magic number for 64-bit generic bitmap"
-msgstr "Fel magiskt nummer för 64-bitars allmän bitkarta"
+msgstr "Fel magiskt nummer för 64-bitars allmän bitkarta"
#: lib/ext2fs/ext2_err.c:121
msgid "Wrong magic number for 64-bit block bitmap"
-msgstr "Fel magiskt nummer för 64-bitars blockbitkarta"
+msgstr "Fel magiskt nummer för 64-bitars blockbitkarta"
#: lib/ext2fs/ext2_err.c:122
msgid "Wrong magic number for 64-bit inode bitmap"
-msgstr "Fel magiskt nummer för 64-bitars inodsbitkarta"
+msgstr "Fel magiskt nummer för 64-bitars inodsbitkarta"
#: lib/ext2fs/ext2_err.c:123
msgid "Wrong magic number --- RESERVED_13"
#: lib/ext2fs/ext2_err.c:130
msgid "Corrupt extent header"
-msgstr "Trasigt utsträckningshuvud"
+msgstr "Trasigt utsträckningshuvud"
#: lib/ext2fs/ext2_err.c:131
msgid "Corrupt extent index"
-msgstr "Trasigt utsträckningsindex"
+msgstr "Trasigt utsträckningsindex"
#: lib/ext2fs/ext2_err.c:132
msgid "Corrupt extent"
-msgstr "Trasig utsträckning"
+msgstr "Trasig utsträckning"
#: lib/ext2fs/ext2_err.c:133
msgid "No free space in extent map"
-msgstr "Inget fritt utrymme i utsträckningskartan"
+msgstr "Inget fritt utrymme i utsträckningskartan"
#: lib/ext2fs/ext2_err.c:134
msgid "Inode does not use extents"
-msgstr "Inoder använder inte utsträckningar"
+msgstr "Inoder använder inte utsträckningar"
#: lib/ext2fs/ext2_err.c:135
msgid "No 'next' extent"
-msgstr "Ingen \"nästa\" utsträckning"
+msgstr "Ingen \"nästa\" utsträckning"
#: lib/ext2fs/ext2_err.c:136
msgid "No 'previous' extent"
-msgstr "Ingen \"föregående\" utsträckning"
+msgstr "Ingen \"föregående\" utsträckning"
#: lib/ext2fs/ext2_err.c:137
msgid "No 'up' extent"
-msgstr "Ingen \"upp\"-utsträckning"
+msgstr "Ingen \"upp\"-utsträckning"
#: lib/ext2fs/ext2_err.c:138
msgid "No 'down' extent"
-msgstr "Ingen \"ner\"-utsträckning"
+msgstr "Ingen \"ner\"-utsträckning"
#: lib/ext2fs/ext2_err.c:139
msgid "No current node"
#: lib/ext2fs/ext2_err.c:140
msgid "Ext2fs operation not supported"
-msgstr "Ext2fs-operationen stödjs inte"
+msgstr "Ext2fs-operationen stödjs inte"
#: lib/ext2fs/ext2_err.c:141
msgid "No room to insert extent in node"
-msgstr "Ingen plats att lägga in en utsträckning i noden"
+msgstr "Ingen plats att lägga in en utsträckning i noden"
#: lib/ext2fs/ext2_err.c:142
msgid "Splitting would result in empty node"
#: lib/ext2fs/ext2_err.c:143
msgid "Extent not found"
-msgstr "Utsräckningen inte funnen"
+msgstr "Utsräckningen inte funnen"
#: lib/ext2fs/ext2_err.c:144
msgid "Operation not supported for inodes containing extents"
-msgstr "Operationsn stödjs inte för inoder som innehåller utsträckningar"
+msgstr "Operationsn stödjs inte för inoder som innehåller utsträckningar"
#: lib/ext2fs/ext2_err.c:145
msgid "Extent length is invalid"
-msgstr "Utsträckningslängden är felaktig"
+msgstr "Utsträckningslängden är felaktig"
#: lib/ext2fs/ext2_err.c:146
msgid "I/O Channel does not support 64-bit block numbers"
-msgstr "I/O-kanaler stödjer inte 64-bitars blocknummer"
+msgstr "I/O-kanaler stödjer inte 64-bitars blocknummer"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Kan inte kontrollera om filsystem är monterade för att att mtab-filen saknas"
+msgstr "Kan inte kontrollera om filsystem är monterade för att att mtab-filen saknas"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Filsystemen är för stora för att använda gammaldags bitkartor"
+msgstr "Filsystemen är för stora för att använda gammaldags bitkartor"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
#: lib/ext2fs/ext2_err.c:150
msgid "MMP: device currently active"
-msgstr "MMP: enheten är för närvarande aktiv"
+msgstr "MMP: enheten är för närvarande aktiv"
#: lib/ext2fs/ext2_err.c:151
msgid "MMP: fsck being run"
-msgstr "MMP: fsck körs"
+msgstr "MMP: fsck körs"
#: lib/ext2fs/ext2_err.c:152
msgid "MMP: block number beyond filesystem range"
-msgstr "MMP: blocknummer utanför filsystemets räckvidd"
+msgstr "MMP: blocknummer utanför filsystemets räckvidd"
#: lib/ext2fs/ext2_err.c:153
msgid "MMP: undergoing an unknown operation"
-msgstr "MMP: utför en okänd operation"
+msgstr "MMP: utför en okänd operation"
#: lib/ext2fs/ext2_err.c:154
msgid "MMP: filesystem still in use"
-msgstr "MMP: filsystemet används fortfarande"
+msgstr "MMP: filsystemet används fortfarande"
#: lib/ext2fs/ext2_err.c:155
msgid "MMP: open with O_DIRECT failed"
-msgstr "MMP: öppning med O_DIRECT misslyckades"
+msgstr "MMP: öppning med O_DIRECT misslyckades"
#: e2fsck/prof_err.c:11
msgid "Profile version 0.0"
#: e2fsck/prof_err.c:12
msgid "Bad magic value in profile_node"
-msgstr "Felaktigt magiskt värde i profile_node"
+msgstr "Felaktigt magiskt värde i profile_node"
#: e2fsck/prof_err.c:13
msgid "Profile section not found"
#: e2fsck/prof_err.c:15
msgid "Attempt to add a relation to node which is not a section"
-msgstr "Försök att lägga till en relation till en nod som inte är en sektion"
+msgstr "Försök att lägga till en relation till en nod som inte är en sektion"
#: e2fsck/prof_err.c:16
msgid "A profile section header has a non-zero value"
-msgstr "Ett huvud till en profilsektion har ett värde skilt från noll"
+msgstr "Ett huvud till en profilsektion har ett värde skilt från noll"
#: e2fsck/prof_err.c:17
msgid "Bad linked list in profile structures"
-msgstr "Felaktig länkad lista i profilstrukturer"
+msgstr "Felaktig länkad lista i profilstrukturer"
#: e2fsck/prof_err.c:18
msgid "Bad group level in profile structures"
-msgstr "Felaktig gruppnivå i profilstrukturer"
+msgstr "Felaktig gruppnivå i profilstrukturer"
#: e2fsck/prof_err.c:19
msgid "Bad parent pointer in profile structures"
-msgstr "Felaktig föräldrapekare i profilstrukturer"
+msgstr "Felaktig föräldrapekare i profilstrukturer"
#: e2fsck/prof_err.c:20
msgid "Bad magic value in profile iterator"
-msgstr "Felaktigt magiskt värde i profiliterator"
+msgstr "Felaktigt magiskt värde i profiliterator"
#: e2fsck/prof_err.c:21
msgid "Can't set value on section node"
-msgstr "Kan inte sätta värde på sektionsnod"
+msgstr "Kan inte sätta värde på sektionsnod"
#: e2fsck/prof_err.c:22
msgid "Invalid argument passed to profile library"
#: e2fsck/prof_err.c:23
msgid "Attempt to modify read-only profile"
-msgstr "Försök att ändra en endast läsbar profil"
+msgstr "Försök att ändra en endast läsbar profil"
#: e2fsck/prof_err.c:24
msgid "Profile section header not at top level"
-msgstr "Huvudet till profilsektionen är inte på toppnivån"
+msgstr "Huvudet till profilsektionen är inte på toppnivån"
#: e2fsck/prof_err.c:25
msgid "Syntax error in profile section header"
#: e2fsck/prof_err.c:29
msgid "Bad magic value in profile_t"
-msgstr "Felaktigt magiskt värde i profile_t"
+msgstr "Felaktigt magiskt värde i profile_t"
#: e2fsck/prof_err.c:30
msgid "Bad magic value in profile_section_t"
-msgstr "Felaktigt magiskt värde i profile_section_t"
+msgstr "Felaktigt magiskt värde i profile_section_t"
#: e2fsck/prof_err.c:31
msgid "Iteration through all top level section not supported"
-msgstr "Iteration över alla toppnivåsektioner stödjs inte"
+msgstr "Iteration över alla toppnivåsektioner stödjs inte"
#: e2fsck/prof_err.c:32
msgid "Invalid profile_section object"
#: e2fsck/prof_err.c:34
msgid "Bad nameset passed to query routine"
-msgstr "Felaktig namnmängd skickad till frågerutinen"
+msgstr "Felaktig namnmängd skickad till frågerutinen"
#: e2fsck/prof_err.c:35
msgid "No profile file open"
-msgstr "Ingen profilfil öppen"
+msgstr "Ingen profilfil öppen"
#: e2fsck/prof_err.c:36
msgid "Bad magic value in profile_file_t"
-msgstr "Felaktigt magiskt värde i profile_file_t"
+msgstr "Felaktigt magiskt värde i profile_file_t"
#: e2fsck/prof_err.c:37
msgid "Couldn't open profile file"
-msgstr "Kunde inte öppna profilfilen"
+msgstr "Kunde inte öppna profilfilen"
#: e2fsck/prof_err.c:38
msgid "Section already exists"
#: e2fsck/prof_err.c:39
msgid "Invalid boolean value"
-msgstr "Ogiltigt booleskt värde"
+msgstr "Ogiltigt booleskt värde"
#: e2fsck/prof_err.c:40
msgid "Invalid integer value"
-msgstr "Ogiltigt heltalsvärde"
+msgstr "Ogiltigt heltalsvärde"
#: e2fsck/prof_err.c:41
msgid "Bad magic value in profile_file_data_t"
-msgstr "Felaktigt magiskt värde i profile_file_data_t"
-
-#~ msgid "%s is mounted. "
-#~ msgstr "%s är monterat. "
+msgstr "Felaktigt magiskt värde i profile_file_data_t"
#.
msgid ""
msgstr ""
-"Project-Id-Version: e2fsprogs-1.42.2\n"
+"Project-Id-Version: e2fsprogs-1.42.6\n"
"Report-Msgid-Bugs-To: tytso@alum.mit.edu\n"
-"POT-Creation-Date: 2012-06-12 14:40-0400\n"
-"PO-Revision-Date: 2012-04-10 14:24+0700\n"
+"POT-Creation-Date: 2012-09-21 12:16-0400\n"
+"PO-Revision-Date: 2012-12-22 14:57+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Team-Website: <http://translationproject.org/team/vi.html>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-Language: Vietnamese\n"
-"X-Poedit-Country: VIET NAM\n"
"X-Poedit-SourceCharset: utf-8\n"
-#: e2fsck/badblocks.c:23 misc/mke2fs.c:176
+#: e2fsck/badblocks.c:23 misc/mke2fs.c:177
#, c-format
msgid "Bad block %u out of range; ignored.\n"
msgstr "Khối hỏng %u ở ngoại phạm vi nên bị bỏ qua.\n"
msgstr "trong khi đọc nút thông tin khối hỏng"
#: e2fsck/badblocks.c:72 e2fsck/iscan.c:110 e2fsck/scantest.c:107
-#: e2fsck/unix.c:1298 e2fsck/unix.c:1386 misc/badblocks.c:1214
+#: e2fsck/unix.c:1334 e2fsck/unix.c:1422 misc/badblocks.c:1214
#: misc/badblocks.c:1222 misc/badblocks.c:1236 misc/badblocks.c:1248
#: misc/dumpe2fs.c:588 misc/e2image.c:1189 misc/e2image.c:1307
-#: misc/e2image.c:1320 misc/mke2fs.c:192 misc/tune2fs.c:1907 resize/main.c:303
+#: misc/e2image.c:1320 misc/mke2fs.c:193 misc/tune2fs.c:1898 resize/main.c:303
#, c-format
msgid "while trying to open %s"
msgstr "trong khi thử mở %s"
#: e2fsck/badblocks.c:83
#, c-format
msgid "while trying popen '%s'"
-msgstr "trong khi thử mở popen « %s »"
+msgstr "trong khi thử mở popen “%s”"
-#: e2fsck/badblocks.c:94 misc/mke2fs.c:199
+#: e2fsck/badblocks.c:94 misc/mke2fs.c:200
msgid "while reading in list of bad blocks from file"
msgstr "trong khi đọc vào danh sách các khối hỏng từ tập tin"
#: e2fsck/badblocks.c:131
#, c-format
msgid "Warning: illegal block %u found in bad block inode. Cleared.\n"
-msgstr ""
-"Cảnh báo: tìm thấy khối cấm %u trong nút thông tin khối hỏng nên bị xoá.\n"
+msgstr "Cảnh báo: tìm thấy khối cấm %u trong nút thông tin khối hỏng nên bị xoá.\n"
#: e2fsck/ehandler.c:55
#, c-format
#: e2fsck/emptydir.c:62
msgid "empty dir map"
-msgstr "sơ đồ thư mục rỗng"
+msgstr "ánh xạ thư mục rỗng"
#: e2fsck/emptydir.c:98
#, c-format
#: e2fsck/extend.c:44
#, c-format
msgid "Illegal number of blocks!\n"
-msgstr "Không cho phép số khối đó.\n"
+msgstr "Không cho phép số khối đó!\n"
#: e2fsck/extend.c:50
#, c-format
"[KĐN: các khối đệm nút thông tin]\n"
"\n"
-#: e2fsck/iscan.c:81 e2fsck/unix.c:930
+#: e2fsck/iscan.c:81 e2fsck/unix.c:963
#, c-format
msgid "while opening %s for flushing"
msgstr "trong khi mở %s để xoá sạch"
-#: e2fsck/iscan.c:86 e2fsck/unix.c:936 resize/main.c:276
+#: e2fsck/iscan.c:86 e2fsck/unix.c:969 resize/main.c:276
#, c-format
msgid "while trying to flush %s"
msgstr "trong khi thử xoá sạch %s"
#: e2fsck/message.c:125
msgid "E@e '%Dn' in %p (%i)"
-msgstr "E@e '%Dn' trong %p (%i)"
+msgstr "E@e “%Dn” trong %p (%i)"
#: e2fsck/message.c:126
msgid "ffilesystem"
#: e2fsck/message.c:129
msgid "hHTREE @d @i"
-msgstr "hHCÂY @d @i"
+msgstr "hHTREE @d @i"
#: e2fsck/message.c:130
msgid "llost+found"
#: e2fsck/pass1b.c:222
msgid "multiply claimed inode map"
-msgstr "sơ đồ nút thông tin đa tuyên bố"
+msgstr "ánh xạ nút thông tin đa tuyên bố"
#: e2fsck/pass1b.c:610 e2fsck/pass1b.c:729
#, c-format
#: e2fsck/pass1.c:599
msgid "in-use inode map"
-msgstr "sơ đồ nút thông tin đang được dùng"
+msgstr "ánh xạ nút thông tin đang được dùng"
#: e2fsck/pass1.c:610
msgid "directory inode map"
-msgstr "sơ đồ nút thông tin thư mục"
+msgstr "ánh xạ nút thông tin thư mục"
#: e2fsck/pass1.c:620
msgid "regular file inode map"
-msgstr "sơ đồ nút thông tin tập tin chuẩn"
+msgstr "ánh xạ nút thông tin tập tin chuẩn"
#: e2fsck/pass1.c:629
msgid "in-use block map"
-msgstr "sơ đồ khối đang được dùng"
+msgstr "ánh xạ khối đang được dùng"
#: e2fsck/pass1.c:696
msgid "opening inode scan"
#: e2fsck/pass1.c:1347
msgid "bad inode map"
-msgstr "sơ đồ nút thông tin sai"
+msgstr "ánh xạ nút thông tin sai"
#: e2fsck/pass1.c:1370
msgid "inode in bad block map"
-msgstr "nút thông tin trong sơ đồ khối sai"
+msgstr "nút thông tin trong ánh xạ khối sai"
#: e2fsck/pass1.c:1390
msgid "imagic inode map"
-msgstr "sơ đồ nút thông tin ma thuật imagic"
+msgstr "ánh xạ nút thông tin ma thuật imagic"
#: e2fsck/pass1.c:1417
msgid "multiply claimed block map"
-msgstr "sơ đồ khối đa tuyên bố"
+msgstr "ánh xạ khối đa tuyên bố"
#: e2fsck/pass1.c:1518
msgid "ext attr block map"
-msgstr "sơ đồ khối ext attr (thuộc tính thêm?)"
+msgstr "ánh xạ khối ext attr (thuộc tính thêm?)"
#: e2fsck/pass1.c:2266
#, c-format
#: e2fsck/problem.c:69
msgid "Clear HTree index"
-msgstr "Xoá sạch chỉ mục HCây"
+msgstr "Xoá sạch chỉ mục hHTREE"
#: e2fsck/problem.c:70
msgid "Recreate"
#: e2fsck/problem.c:79
msgid "(NONE)"
-msgstr "(KHÔNG CÓ)"
+msgstr "(KHÔNG)"
#: e2fsck/problem.c:80
msgid "FIXED"
msgstr ""
"Ghi chú: nếu vài khối nút thông tin hay khối mảng ảnh khối\n"
"hay phần của bảng nút thông tin cần thiết được định vị lại,\n"
-"đề nghị bạn thử chạy e2fsck với tùy chọn « -b %S »\n"
+"đề nghị bạn thử chạy e2fsck với tùy chọn “-b %S”\n"
"trước tiên. Vấn đề có thể nằm chỉ trong các mô tả nhóm\n"
"khối chính, thì các mô tả nhóm khối dự trữ có thể là đúng.\n"
"\n"
#: e2fsck/problem.c:213
msgid ""
"@f @j @S is unknown type %N (unsupported).\n"
-"It is likely that your copy of e2fsck is old and/or doesn't support this @j "
-"format.\n"
+"It is likely that your copy of e2fsck is old and/or doesn't support this @j format.\n"
"It is also possible the @j @S is corrupt.\n"
msgstr ""
"@S @j @f có kiểu lạ %N (không được hỗ trợ).\n"
-"Rất có thể là bạn có một bản sao e2fsck cũ mà/hay không hỗ trợ định dạng @j "
-"này.\n"
+"Rất có thể là bạn có một bản sao e2fsck cũ mà/hay không hỗ trợ định dạng @j này.\n"
"Cũng có thể là @S @j bị hỏng.\n"
#. @-expanded: journal superblock is corrupt.\n
#: e2fsck/problem.c:381
msgid "The test_fs flag is set (and ext4 is available). "
-msgstr "Cờ « test_fs » được đặt (và ext4 sẵn sàng)"
+msgstr "Cờ “test_fs” được đặt (và ext4 sẵn sàng)"
#. @-expanded: superblock last mount time is in the future.\n
#. @-expanded: \t(by less than a day, probably due to the hardware clock being incorrectly
#: e2fsck/problem.c:386
msgid ""
"@S last mount time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set) "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set) "
msgstr ""
"Giờ gắn kết @S cuối cùng nằm trong tương lai\n"
"\t(theo ít nhất một ngày, rất có thể do đồng hồ phần cứng bị sai lập)."
#: e2fsck/problem.c:392
msgid ""
"@S last write time is in the future.\n"
-"\t(by less than a day, probably due to the hardware clock being incorrectly "
-"set). "
+"\t(by less than a day, probably due to the hardware clock being incorrectly set). "
msgstr ""
"Giờ ghi nhớ @S cuối cùng nằm trong tương lai\n"
"\t(theo ít nhất một ngày, rất có thể do đồng hồ phần cứng bị sai lập)."
#. @-expanded: Making quota inode %i (%Q) hidden.\n
#: e2fsck/problem.c:413
-#, fuzzy
msgid "Making @q @i %i (%Q) hidden.\n"
-msgstr ""
-"Làm cho @q @is ẩn đi.\n"
-"\n"
+msgstr "Làm cho @q @is %i (%Q) ẩn đi.\n"
#. @-expanded: superblock has invalid MMP block.
#: e2fsck/problem.c:418
#: e2fsck/problem.c:469
#, c-format
msgid "@i %i is a @z @d. "
-msgstr "@i %i là @d @z"
+msgstr "@i %i là @d @z. "
#. @-expanded: group %g's block bitmap at %b conflicts with some other fs block.\n
#: e2fsck/problem.c:474
"in the @f.\n"
msgstr ""
"\n"
-"@i @n rất có thể bị hỏng. Đề nghị bạn thôi ngay bây giờ\n"
-"và chạy lệnh « e2fsck -c » để quét tìm khối sai trong @f.\n"
+"@i @n gần như chắc chắn đã hỏng. Đề nghị bạn dừng ngay bây giờ\n"
+"và chạy lệnh “e2fsck -c” để quét tìm khối sai trong @f.\n"
#. @-expanded: \n
#. @-expanded: If the block is really bad, the filesystem can not be fixed.\n
#. @-expanded: Block %b in the primary group descriptors is on the bad block list\n
#: e2fsck/problem.c:572
msgid "Block %b in the primary @g descriptors is on the bad @b list\n"
-msgstr ""
-"Khối %b trong những mô tả @g chính có nằm trong danh sách các @b sai.\n"
+msgstr "Khối %b trong những mô tả @g chính có nằm trong danh sách các @b sai.\n"
#. @-expanded: Warning: Group %g's superblock (%b) is bad.\n
#: e2fsck/problem.c:578
#. @-expanded: Programming error? block #%b claimed for no reason in process_bad_block.\n
#: e2fsck/problem.c:589
msgid "Programming error? @b #%b claimed for no reason in process_bad_@b.\n"
-msgstr ""
-"Lỗi lập trình ? @b %b được tuyên bố, không có lý do, trong process_bad_@b\n"
+msgstr "Lỗi lập trình ? @b %b được tuyên bố, không có lý do, trong process_bad_@b\n"
#. @-expanded: error allocating %N contiguous block(s) in block group %g for %s: %m\n
#: e2fsck/problem.c:595
#: e2fsck/problem.c:776
#, c-format
msgid "@i %i is too big. "
-msgstr "@i %i quá lớn. "
+msgstr "@i %i quá lớn. "
#. @-expanded: %B (%b) causes directory to be too big.
#: e2fsck/problem.c:780
msgid "%B (%b) causes @d to be too big. "
-msgstr "%B (%b) gây ra @d quá lớn. "
+msgstr "%B (%b) gây ra @d quá lớn. "
#: e2fsck/problem.c:785
msgid "%B (%b) causes file to be too big. "
-msgstr "%B (%b) gây ra tập tin quá lớn. "
+msgstr "%B (%b) gây ra tập tin quá lớn. "
#: e2fsck/problem.c:790
msgid "%B (%b) causes symlink to be too big. "
-msgstr "%B (%b) gây ra liên kết tượng trưng quá lớn. "
+msgstr "%B (%b) làm cho liên kết tượng trưng quá lớn."
#. @-expanded: inode %i has INDEX_FL flag set on filesystem without htree support.\n
#: e2fsck/problem.c:795
#: e2fsck/problem.c:897
#, c-format
msgid "@i %i is in extent format, but @S is missing EXTENTS feature\n"
-msgstr ""
-"@i %i theo định dạng phạm vi, còn @S thiếu tính năng phạm vi (EXTENTS)\n"
+msgstr "@i %i theo định dạng phạm vi, còn @S thiếu tính năng phạm vi (EXTENTS)\n"
#. @-expanded: inode %i missing EXTENT_FL, but is in extents format\n
#: e2fsck/problem.c:902
"@m @bs already reassigned or cloned.\n"
"\n"
msgstr ""
-"@b @m Ä\91ã Ä\91ược gán lại hay nhái.\n"
+"@b @m Ä\91ã Ä\91ược gán lại hay nhân bản.\n"
"\n"
#: e2fsck/problem.c:1039
#: e2fsck/problem.c:1050
#, c-format
msgid "@n @i number for '.' in @d @i %i.\n"
-msgstr "Con số @i @n cho dấu chấm « . » trong @i @d %i.\n"
+msgstr "Con số @i @n cho dấu chấm “.” trong @i @d %i.\n"
#. @-expanded: entry '%Dn' in %p (%i) has invalid inode #: %Di.\n
#: e2fsck/problem.c:1055
#. @-expanded: entry '%Dn' in %p (%i) is a link to '.'
#: e2fsck/problem.c:1065
msgid "@E @L to '.' "
-msgstr "@E @L đến « . » "
+msgstr "@E @L đến “.” "
#. @-expanded: entry '%Dn' in %p (%i) points to inode (%Di) located in a bad block.\n
#: e2fsck/problem.c:1070
#: e2fsck/problem.c:1090
#, c-format
msgid "Missing '.' in @d @i %i.\n"
-msgstr "Thiếu « . » trong @i @d %i.\n"
+msgstr "Thiếu “.” trong @i @d %i.\n"
#. @-expanded: Missing '..' in directory inode %i.\n
#: e2fsck/problem.c:1095
#, c-format
msgid "Missing '..' in @d @i %i.\n"
-msgstr "Thiếu « .. » trong @i @d %i.\n"
+msgstr "Thiếu “..” trong @i @d %i.\n"
#. @-expanded: First entry '%Dn' (inode=%Di) in directory inode %i (%p) should be '.'\n
#: e2fsck/problem.c:1100
msgid "First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"
-msgstr "@e '%Dn' thứ nhất (@i=%Di) trong @i @d %i (%p) @s « . »\n"
+msgstr "@e “%Dn” thứ nhất (@i=%Di) trong @i @d %i (%p) @s “.”\n"
#. @-expanded: Second entry '%Dn' (inode=%Di) in directory inode %i should be '..'\n
#: e2fsck/problem.c:1105
msgid "Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"
-msgstr "@e '%Dn' thứ hai (@i=%Di) trong @i @d %i @s « .. »\n"
+msgstr "@e “%Dn” thứ hai (@i=%Di) trong @i @d %i @s “..”\n"
#. @-expanded: i_faddr for inode %i (%Q) is %IF, should be zero.\n
#: e2fsck/problem.c:1110
#: e2fsck/problem.c:1155
#, c-format
msgid "'.' @d @e in @d @i %i is not NULL terminated\n"
-msgstr ""
-"@e @d « . » trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
+msgstr "@e @d “.” trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
#. @-expanded: '..' directory entry in directory inode %i is not NULL terminated\n
#: e2fsck/problem.c:1160
#, c-format
msgid "'..' @d @e in @d @i %i is not NULL terminated\n"
-msgstr ""
-"@e @d « .. » trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
+msgstr "@e @d “..” trong @i @d %i không được chấm dứt bằng NULL (vô giá trị)\n"
#. @-expanded: inode %i (%Q) is an illegal character device.\n
#: e2fsck/problem.c:1165
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '.' entry.\n
#: e2fsck/problem.c:1175
msgid "@E is duplicate '.' @e.\n"
-msgstr "@E là @e « . » trùng.\n"
+msgstr "@E là @e “.” trùng.\n"
#. @-expanded: entry '%Dn' in %p (%i) is duplicate '..' entry.\n
#: e2fsck/problem.c:1180
msgid "@E is duplicate '..' @e.\n"
-msgstr "@E là @e « .. » trùng.\n"
+msgstr "@E là @e “..” trùng.\n"
#: e2fsck/problem.c:1185 e2fsck/problem.c:1485
#, c-format
#: e2fsck/problem.c:1225
#, c-format
msgid "@d @e for '.' in %p (%i) is big.\n"
-msgstr "@d @e đối với '.' trong %p (%i) quá lớn.\n"
+msgstr "@d @e đối với “.” trong %p (%i) quá lớn.\n"
#. @-expanded: inode %i (%Q) is an illegal FIFO.\n
#: e2fsck/problem.c:1230
"\tMarking %p (%i) to be rebuilt.\n"
"\n"
msgstr ""
-"Tìm thấy @e '%Dn' trùng\n"
+"Tìm thấy @e “%Dn” trùng\n"
"\tnên nhãn %p (%i) cần được xây dựng lại.\n"
"\n"
#. @-expanded: entry '%Dn' in %p (%i) references inode %Di found in group %g's unused inodes area.\n
#: e2fsck/problem.c:1363
msgid "@E references @i %Di found in @g %g's unused inodes area.\n"
-msgstr ""
-"@E tham chiếu đến @i %Di được tìm trong vùng nút thông tin không dùng của @g "
-"%g.\n"
+msgstr "@E tham chiếu đến @i %Di được tìm trong vùng nút thông tin không dùng của @g %g.\n"
#. @-expanded: i_file_acl_hi for inode %i (%Q) is %N, should be zero.\n
#: e2fsck/problem.c:1368
#. @-expanded: root inode not allocated.
#: e2fsck/problem.c:1380
msgid "@r not allocated. "
-msgstr "Chưa cấp phát @r."
+msgstr "Chưa cấp phát @r. "
#. @-expanded: No room in lost+found directory.
#: e2fsck/problem.c:1385
msgid "No room in @l @d. "
-msgstr "Không có chỗ còn rảnh trong @d @l."
+msgstr "Không có chỗ còn rảnh trong @d @l. "
#. @-expanded: Unconnected directory inode %i (%p)\n
#: e2fsck/problem.c:1390
#. @-expanded: '..' in %Q (%i) is %P (%j), should be %q (%d).\n
#: e2fsck/problem.c:1400
msgid "'..' in %Q (%i) is %P (%j), @s %q (%d).\n"
-msgstr "« .. » trong %Q (%i) là %P (%j), @s %q (%d).\n"
+msgstr "“..” trong %Q (%i) là %P (%j), @s %q (%d).\n"
#. @-expanded: Bad or non-existent /lost+found. Cannot reconnect.\n
#: e2fsck/problem.c:1405
#. @-expanded: PROGRAMMING ERROR: filesystem (#%N) bitmap endpoints (%b, %c) don't match calculated bitmap
#. @-expanded: endpoints (%i, %j)\n
#: e2fsck/problem.c:1638
-msgid ""
-"PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B "
-"endpoints (%i, %j)\n"
-msgstr ""
-"LỖI LẬP TRÌNH: trong @f (#%N) có các điểm cuối @B (%b, %c) không tương ứng "
-"với các điểm cuối @B đã tính (%i, %j)\n"
+msgid "PROGRAMMING ERROR: @f (#%N) @B endpoints (%b, %c) don't match calculated @B endpoints (%i, %j)\n"
+msgstr "LỖI LẬP TRÌNH: trong @f (#%N) có các điểm cuối @B (%b, %c) không tương ứng với các điểm cuối @B đã tính (%i, %j)\n"
#: e2fsck/problem.c:1644
msgid "Internal error: fudging end of bitmap (%N)\n"
#: e2fsck/problem.c:1696
msgid "Update quota info for quota type %N"
-msgstr ""
+msgstr "Cập nhật thông tin hạn ngạch cho kiểu hạn ngạch %N"
#: e2fsck/problem.c:1815
#, c-format
#: e2fsck/super.c:188
#, c-format
msgid "while calling ext2fs_block_iterate for inode %d"
-msgstr ""
-"trong khi gọi hàm lặp lại khối « ext2fs_block_iterate » cho nút thông tin %d"
+msgstr "trong khi gọi hàm lặp lại khối “ext2fs_block_iterate” cho nút thông tin %d"
#: e2fsck/super.c:211
#, c-format
msgid "while calling ext2fs_adjust_ea_refcount2 for inode %d"
-msgstr "trong khi gọi hàm « ext2fs_adjust_ea_refcount » cho nút thông tin %d"
+msgstr "trong khi gọi hàm “ext2fs_adjust_ea_refcount” cho nút thông tin %d"
#: e2fsck/super.c:272
msgid "Truncating"
"\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n"
"\t\t[-E extended-options] device\n"
msgstr ""
-"Sử dụng: %s [-panyrcdfvtDFV] [-b siêu_khối] [-B cỡ_khối]\n"
+"Cách dùng: %s [-panyrcdfvtDFV] [-b siêu_khối] [-B cỡ_khối]\n"
"\t\t[-I khối_đệm_inode] [-P cỡ_inode_xử_lý]\n"
"\t\t[-l|-L tập_tin_khối_sai] [-C fd] [-j nhật_ký_ngoài]\n"
"\t\t[-E tùy_chọn_đã_mở_rộng] thiết_bị\n"
" -p Automatic repair (no questions)\n"
" -n Make no changes to the filesystem\n"
" -y Assume \"yes\" to all questions\n"
-" -c Check for bad blocks and add them to the badblock "
-"list\n"
+" -c Check for bad blocks and add them to the badblock list\n"
" -f Force checking even if filesystem is marked clean\n"
msgstr ""
"\n"
"Trợ giúp khẩn cấp:\n"
" -p Sửa chữa tự động (không có câu hỏi)\n"
" -n Không thay đổi hệ thống tập tin\n"
-" -y Giả sử trả lời « Có » mọi câu hỏi\n"
+" -y Giả sử trả lời “Có” mọi câu hỏi\n"
" -c Kiểm tra tìm khối sai: thêm vào danh sách khối sai\n"
-" -f Buộc kiểm tra ngay cả khi hệ thống tập tin có nhãn là "
-"sạch\n"
+" -f Buộc kiểm tra ngay cả khi hệ thống tập tin có nhãn là sạch\n"
#: e2fsck/unix.c:86
#, c-format
" -l bad_blocks_file Add to badblocks list\n"
" -L bad_blocks_file Set badblocks list\n"
msgstr ""
-" -v \t\tXuất chi tiết\n"
-" -b siêu_khối \t\tDùng siêu khối xen kẽ\n"
-" -B cỡ_khối \t\tBuộc kích cỡ của khối khi tìm siêu khối\n"
-" -j nhật_ký_bên_ngoài \tĐặt địa điểm của nhật ký bên ngoài\n"
-" -l tập_tin_khối_sai Thêm vào danh sách các khối sai\n"
-" -L tập_tin_khối_sai Đặt danh sách các khối sai\n"
+" -v Xuất chi tiết\n"
+" -b siêu_khối Dùng siêu khối xen kẽ\n"
+" -B cỡ_khối Buộc kích cỡ của khối khi tìm siêu khối\n"
+" -j nhật_ký_bên_ngoài Đặt địa điểm của nhật ký bên ngoài\n"
+" -l tập_tin_khối_sai Thêm vào danh sách các khối sai\n"
+" -L tập_tin_khối_sai Đặt danh sách các khối sai\n"
-#: e2fsck/unix.c:130
+#: e2fsck/unix.c:131
#, c-format
msgid "%s: %u/%u files (%0d.%d%% non-contiguous), %llu/%llu blocks\n"
msgstr "%s: %u/%u tập tin (%0d.%d%% không kề nhau), %llu/%llu khối\n"
-#: e2fsck/unix.c:137
+#: e2fsck/unix.c:157
#, c-format
msgid ""
"\n"
-"%8u inode used (%2.2f%%)\n"
+"%12u inode used (%2.2f%%, out of %u)\n"
msgid_plural ""
"\n"
-"%8u inodes used (%2.2f%%)\n"
+"%12u inodes used (%2.2f%%, out of %u)\n"
msgstr[0] ""
"\n"
-"%8u nút đã được sử dụng (%2.2f%%)\n"
+"%12u inode đã được dùng (%2.2f%%, vượt quá %u)\n"
-#: e2fsck/unix.c:141
+#: e2fsck/unix.c:161
#, c-format
-msgid "%8u non-contiguous file (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous files (%0d.%d%%)\n"
-msgstr[0] "%8u tệp tin không kề nhau (%0d.%d%%)\n"
+msgid "%12u non-contiguous file (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous files (%0d.%d%%)\n"
+msgstr[0] "%12u tệp tin không kề nhau (%0d.%d%%)\n"
-#: e2fsck/unix.c:146
+#: e2fsck/unix.c:166
#, c-format
-msgid "%8u non-contiguous directory (%0d.%d%%)\n"
-msgid_plural "%8u non-contiguous directories (%0d.%d%%)\n"
-msgstr[0] "%8u thư mục không kề nhau (%0d.%d%%)\n"
+msgid "%12u non-contiguous directory (%0d.%d%%)\n"
+msgid_plural "%12u non-contiguous directories (%0d.%d%%)\n"
+msgstr[0] "%12u thư mục không kề nhau (%0d.%d%%)\n"
-#: e2fsck/unix.c:151
+#: e2fsck/unix.c:171
#, c-format
-msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
-msgstr " số inode có khối ind/dind/tind: %u/%u/%u\n"
+msgid " # of inodes with ind/dind/tind blocks: %u/%u/%u\n"
+msgstr " # số inode có khối ind/dind/tind: %u/%u/%u\n"
-#: e2fsck/unix.c:159
-msgid " Extent depth histogram: "
-msgstr " Đồ thị độ sâu: "
+#: e2fsck/unix.c:179
+msgid " Extent depth histogram: "
+msgstr " Đồ thị độ sâu: "
-#: e2fsck/unix.c:168
+#: e2fsck/unix.c:188
#, c-format
-msgid "%8llu block used (%2.2f%%)\n"
-msgid_plural "%8llu blocks used (%2.2f%%)\n"
-msgstr[0] "%8llu khối đã được sử dụng (%2.2f%%)\n"
+msgid "%12llu block used (%2.2f%%, out of %llu)\n"
+msgid_plural "%12llu blocks used (%2.2f%%, out of %llu)\n"
+msgstr[0] "%12llu khối đã dùng (%2.2f%%, vượt quá %llu)\n"
-#: e2fsck/unix.c:171
+#: e2fsck/unix.c:192
#, c-format
-msgid "%8u bad block\n"
-msgid_plural "%8u bad blocks\n"
-msgstr[0] "%8u khối hỏng\n"
+msgid "%12u bad block\n"
+msgid_plural "%12u bad blocks\n"
+msgstr[0] "%12u khối hỏng\n"
-#: e2fsck/unix.c:173
+#: e2fsck/unix.c:194
#, c-format
-msgid "%8u large file\n"
-msgid_plural "%8u large files\n"
-msgstr[0] "%8u tập tin lớn\n"
+msgid "%12u large file\n"
+msgid_plural "%12u large files\n"
+msgstr[0] "%12u tập tin quá lớn\n"
-#: e2fsck/unix.c:175
+#: e2fsck/unix.c:196
#, c-format
msgid ""
"\n"
-"%8u regular file\n"
+"%12u regular file\n"
msgid_plural ""
"\n"
-"%8u regular files\n"
+"%12u regular files\n"
msgstr[0] ""
"\n"
-"%8u tập tin thường\n"
+"%12u tập tin thường\n"
-#: e2fsck/unix.c:177
+#: e2fsck/unix.c:198
#, c-format
-msgid "%8u directory\n"
-msgid_plural "%8u directories\n"
-msgstr[0] "%8u thư mục\n"
+msgid "%12u directory\n"
+msgid_plural "%12u directories\n"
+msgstr[0] "%12u thư mục\n"
-#: e2fsck/unix.c:179
+#: e2fsck/unix.c:200
#, c-format
-msgid "%8u character device file\n"
-msgid_plural "%8u character device files\n"
-msgstr[0] "%8u thiết bị ký tự\n"
+msgid "%12u character device file\n"
+msgid_plural "%12u character device files\n"
+msgstr[0] "%12u thiết bị ký tự\n"
-#: e2fsck/unix.c:182
+#: e2fsck/unix.c:203
#, c-format
-msgid "%8u block device file\n"
-msgid_plural "%8u block device files\n"
-msgstr[0] "%8u tệp tin thiết bị khối\n"
+msgid "%12u block device file\n"
+msgid_plural "%12u block device files\n"
+msgstr[0] "%12u tệp tin thiết bị khối\n"
-#: e2fsck/unix.c:184
+#: e2fsck/unix.c:205
#, c-format
-msgid "%8u fifo\n"
-msgid_plural "%8u fifos\n"
-msgstr[0] "%8u fifo\n"
+msgid "%12u fifo\n"
+msgid_plural "%12u fifos\n"
+msgstr[0] "%12u fifo\n"
-#: e2fsck/unix.c:186
+#: e2fsck/unix.c:207
#, c-format
-msgid "%8u link\n"
-msgid_plural "%8u links\n"
-msgstr[0] "%8u liên kết\n"
+msgid "%12u link\n"
+msgid_plural "%12u links\n"
+msgstr[0] "%12u liên kết\n"
-#: e2fsck/unix.c:189
+#: e2fsck/unix.c:210
#, c-format
-msgid "%8u symbolic link"
-msgid_plural "%8u symbolic links"
-msgstr[0] "%8u liên kết tượng trưng"
+msgid "%12u symbolic link"
+msgid_plural "%12u symbolic links"
+msgstr[0] "%12u liên kết tượng trưng"
-#: e2fsck/unix.c:191
+#: e2fsck/unix.c:212
#, c-format
msgid " (%u fast symbolic link)\n"
msgid_plural " (%u fast symbolic links)\n"
msgstr[0] " (%u liên kết tượng trưng nhanh)\n"
-#: e2fsck/unix.c:195
+#: e2fsck/unix.c:216
#, c-format
-msgid "%8u socket\n"
-msgid_plural "%8u sockets\n"
-msgstr[0] "%8u ổ cắm\n"
+msgid "%12u socket\n"
+msgid_plural "%12u sockets\n"
+msgstr[0] "%12u socket\n"
-#: e2fsck/unix.c:198
+#: e2fsck/unix.c:220
#, c-format
-msgid "%8u file\n"
-msgid_plural "%8u files\n"
-msgstr[0] "%8u tệp tin\n"
+msgid "%12u file\n"
+msgid_plural "%12u files\n"
+msgstr[0] "%12u tập tin\n"
-#: e2fsck/unix.c:212 misc/badblocks.c:983 misc/tune2fs.c:1979 misc/util.c:147
+#: e2fsck/unix.c:234 misc/badblocks.c:983 misc/tune2fs.c:1970 misc/util.c:147
#: resize/main.c:247
#, c-format
msgid "while determining whether %s is mounted."
msgstr "trong khi quyết định nếu %s đã gắn kết chưa."
-#: e2fsck/unix.c:230
-#, fuzzy, c-format
+#: e2fsck/unix.c:254
+#, c-format
msgid "Warning! %s is %s.\n"
-msgstr "Cảnh báo: %s đã gắn kết.\n"
+msgstr "Cảnh báo! %s là %s.\n"
-#: e2fsck/unix.c:237
+#: e2fsck/unix.c:261
#, c-format
msgid "%s is %s.\n"
-msgstr ""
+msgstr "%s là %s.\n"
-#: e2fsck/unix.c:240
+#: e2fsck/unix.c:264
msgid ""
"Cannot continue, aborting.\n"
"\n"
"Không thể tiếp tục nên hủy bỏ.\n"
"\n"
-#: e2fsck/unix.c:242
+#: e2fsck/unix.c:266
msgid ""
"\n"
"\n"
msgstr ""
"\n"
"\n"
-"\a\a\a\aCẢNH BÁO !!! Hệ thống tập tin đã gắn kết. Vẫn tiếp tục thì\n"
+"CẢNH BÁO!!! Hệ thống tập tin đã gắn kết. Vẫn tiếp tục thì\n"
"đây có thể là nguyên nhân ***LÀM HỎNG NẶNG*** hệ thống tập tin.\n"
"\n"
-#: e2fsck/unix.c:247
+#: e2fsck/unix.c:271
msgid "Do you really want to continue"
msgstr "Bạn thực sự muốn tiếp tục"
-#: e2fsck/unix.c:249
+#: e2fsck/unix.c:273
#, c-format
msgid "check aborted.\n"
msgstr "kiểm tra bị hủy bỏ.\n"
-#: e2fsck/unix.c:339
+#: e2fsck/unix.c:363
msgid " contains a file system with errors"
msgstr " chứa hệ thống tập tin có lỗi"
-#: e2fsck/unix.c:341
+#: e2fsck/unix.c:365
msgid " was not cleanly unmounted"
msgstr " chưa tháo gắn kết sạch"
-#: e2fsck/unix.c:343
+#: e2fsck/unix.c:367
msgid " primary superblock features different from backup"
-msgstr "các tính năng của siêu khối chính khác với bản sao lưu"
+msgstr " tính năng của siêu khối chính khác với bản sao lưu"
-#: e2fsck/unix.c:347
+#: e2fsck/unix.c:371
#, c-format
msgid " has been mounted %u times without being checked"
msgstr " đã được gắn kết %u lần mà không được kiểm tra"
-#: e2fsck/unix.c:354
+#: e2fsck/unix.c:378
msgid " has filesystem last checked time in the future"
-msgstr "có giờ kiểm tra hệ thống tập tin lần cuối cùng trong tương lai"
+msgstr " có giờ kiểm tra hệ thống tập tin lần cuối cùng trong tương lai"
-#: e2fsck/unix.c:360
+#: e2fsck/unix.c:384
#, c-format
msgid " has gone %u days without being checked"
msgstr " đã chạy trong %u ngày mà không được kiểm tra"
-#: e2fsck/unix.c:369
+#: e2fsck/unix.c:393
msgid ", check forced.\n"
msgstr ", kiểm tra bị ép buộc.\n"
-#: e2fsck/unix.c:402
+#: e2fsck/unix.c:426
#, c-format
msgid "%s: clean, %u/%u files, %llu/%llu blocks"
msgstr "%s: sạch, %u/%u tập tin, %llu/%llu khối"
-#: e2fsck/unix.c:421
+#: e2fsck/unix.c:445
msgid " (check deferred; on battery)"
msgstr " (kiểm tra bị hoãn; chạy bằng pin)"
-#: e2fsck/unix.c:424
+#: e2fsck/unix.c:448
msgid " (check after next mount)"
msgstr " (kiểm tra sau lần kế tiếp gắn kết)"
-#: e2fsck/unix.c:426
+#: e2fsck/unix.c:450
#, c-format
msgid " (check in %ld mounts)"
msgstr " (kiểm tra sau %ld lần gắn kết)"
-#: e2fsck/unix.c:576
+#: e2fsck/unix.c:600
#, c-format
msgid "ERROR: Couldn't open /dev/null (%s)\n"
-msgstr "LỖI: không thể mở « /dev/null » (%s)\n"
+msgstr "LỖI: không thể mở “/dev/null” (%s)\n"
-#: e2fsck/unix.c:645
+#: e2fsck/unix.c:669
#, c-format
msgid "Invalid EA version.\n"
msgstr "Phiên bản EA không hợp lệ.\n"
-#: e2fsck/unix.c:672
+#: e2fsck/unix.c:696
#, c-format
msgid "Unknown extended option: %s\n"
msgstr "Tùy chọn đã mở rộng lạ: %s\n"
-#: e2fsck/unix.c:697
+#: e2fsck/unix.c:721
#, c-format
msgid ""
"Syntax error in e2fsck config file (%s, line #%d)\n"
"Gặp lỗi cú pháp trong tập tin cấu hình e2fsck (%s, dòng số %d)\n"
"\t%s\n"
-#: e2fsck/unix.c:766
+#: e2fsck/unix.c:790
#, c-format
msgid "Error validating file descriptor %d: %s\n"
msgstr "Gặp lỗi khi hợp lệ hóa mô tả tập tin %d: %s\n"
-#: e2fsck/unix.c:770
+#: e2fsck/unix.c:794
msgid "Invalid completion information file descriptor"
msgstr "Mô tả tập tin thông tin hoà chỉnh không hợp lệ"
-#: e2fsck/unix.c:785
+#: e2fsck/unix.c:809
msgid "Only one of the options -p/-a, -n or -y may be specified."
-msgstr "Có thể xác định chỉ một của những tùy chọn -p/-a, -n và -y."
+msgstr "Có thể chỉ ra một trong những tùy chọn -p/-a, -n và -y."
-#: e2fsck/unix.c:806
+#: e2fsck/unix.c:830
#, c-format
msgid "The -t option is not supported on this version of e2fsck.\n"
-msgstr "Tùy chọn « -t » không được hỗ trợ trong phiên bản e2fsck này.\n"
+msgstr "Tùy chọn “-t” không được hỗ trợ trong phiên bản e2fsck này.\n"
-#: e2fsck/unix.c:837 e2fsck/unix.c:909 misc/tune2fs.c:811 misc/tune2fs.c:1100
-#: misc/tune2fs.c:1118
+#: e2fsck/unix.c:861 e2fsck/unix.c:933 misc/tune2fs.c:802 misc/tune2fs.c:1091
+#: misc/tune2fs.c:1109
#, c-format
msgid "Unable to resolve '%s'"
-msgstr "Không thể quyết định « %s »"
+msgstr "Không thể quyết định “%s”"
-#: e2fsck/unix.c:888
+#: e2fsck/unix.c:912
msgid "The -n and -D options are incompatible."
-msgstr "Hai tùy chọn « -n » và « -D » không tương thích với nhau."
+msgstr "Hai tùy chọn “-n” và “-D” không tương thích với nhau."
-#: e2fsck/unix.c:893
+#: e2fsck/unix.c:917
msgid "The -n and -c options are incompatible."
-msgstr "Hai tùy chọn « -n » và « -c » không tương thích với nhau."
+msgstr "Hai tùy chọn “-n” và “-c” không tương thích với nhau."
-#: e2fsck/unix.c:898
+#: e2fsck/unix.c:922
msgid "The -n and -l/-L options are incompatible."
-msgstr "Hai tùy chọn « -n » và « -l/-L » không tương thích với nhau."
+msgstr "Hai tùy chọn “-n” và “-l/-L” không tương thích với nhau."
-#: e2fsck/unix.c:943
+#: e2fsck/unix.c:976
#, c-format
msgid "The -c and the -l/-L options may not be both used at the same time.\n"
-msgstr ""
-"Không cho phép sử dụng đồng thời cả hai tùy chọn « --c » và « --l/L ».\n"
+msgstr "Không cho phép sử dụng đồng thời cả hai tùy chọn “--c” và “--l/L”.\n"
-#: e2fsck/unix.c:991
+#: e2fsck/unix.c:1024
#, c-format
msgid ""
"E2FSCK_JBD_DEBUG \"%s\" not an integer\n"
"\n"
msgstr ""
-"E2FSCK_JBD_DEBUG « %s » không phải số nguyên\n"
+"E2FSCK_JBD_DEBUG “%s” không phải số nguyên\n"
"\n"
-#: e2fsck/unix.c:1000
+#: e2fsck/unix.c:1033
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Đối số không thuộc số không hợp lệ đối với -%c (« %s »)\n"
+"Đối số không thuộc số không hợp lệ đối với -%c (“%s”)\n"
"\n"
-#: e2fsck/unix.c:1089
+#: e2fsck/unix.c:1122
#, c-format
-msgid ""
-"MMP interval is %u seconds and total wait time is %u seconds. Please "
-"wait...\n"
-msgstr ""
-"khoảng nhịp MMP là %u giây cộng với tổng thời gian chờ là %u giây. Vui lòng "
-"chờ...\n"
+msgid "MMP interval is %u seconds and total wait time is %u seconds. Please wait...\n"
+msgstr "khoảng nhịp MMP là %u giây cộng với tổng thời gian chờ là %u giây. Vui lòng chờ...\n"
# Item in the main menu to select this package
-#: e2fsck/unix.c:1106 e2fsck/unix.c:1111
+#: e2fsck/unix.c:1139 e2fsck/unix.c:1144
msgid "while checking MMP block"
msgstr "trong khi kiểm tra khối MMP"
-#: e2fsck/unix.c:1113 misc/tune2fs.c:1912
+#: e2fsck/unix.c:1146 misc/tune2fs.c:1903
msgid ""
"If you are sure the filesystem is not in use on any node, run:\n"
"'tune2fs -f -E clear_mmp {device}'\n"
msgstr ""
-"Nếu bạn không chắc là hệ thống tệp tin không đang sử dụng bất kỳ nút nào, "
-"chạy lệnh:\n"
-"'tune2fs -f -E clear_mmp {thiết_bị}'\n"
+"Nếu bạn không chắc là hệ thống tập tin không đang sử dụng bất kỳ nút nào, chạy lệnh:\n"
+"“tune2fs -f -E clear_mmp {thiết_bị}”\n"
-#: e2fsck/unix.c:1163
+#: e2fsck/unix.c:1196
#, c-format
msgid "Error: ext2fs library version out of date!\n"
msgstr "Lỗi: phiên bản thư viện ext2fs quá cũ.\n"
-#: e2fsck/unix.c:1171
+#: e2fsck/unix.c:1204
msgid "while trying to initialize program"
msgstr "trong khi thử sở khởi chương trình"
-#: e2fsck/unix.c:1194
+#: e2fsck/unix.c:1227
#, c-format
msgid "\tUsing %s, %s\n"
msgstr "\tDùng %s, %s\n"
-#: e2fsck/unix.c:1206
+#: e2fsck/unix.c:1239
msgid "need terminal for interactive repairs"
-msgstr "cần thiết thiết bị cuối để sửa chữa tương tác"
+msgstr "cần thiết bị cuối để sửa chữa theo kiểu tương tác"
-#: e2fsck/unix.c:1256
+#: e2fsck/unix.c:1292
#, c-format
msgid "%s: %s trying backup blocks...\n"
-msgstr "%s %s đang thử các khối dự trữ...\n"
+msgstr "%s: %s đang thử các khối dự trữ...\n"
-#: e2fsck/unix.c:1258
+#: e2fsck/unix.c:1294
msgid "Superblock invalid,"
msgstr "Siêu khối không hợp lệ,"
-#: e2fsck/unix.c:1259
+#: e2fsck/unix.c:1295
msgid "Group descriptors look bad..."
msgstr "Có vẻ là các mô tả nhóm sai..."
-#: e2fsck/unix.c:1269
+#: e2fsck/unix.c:1305
#, c-format
msgid "%s: %s while using the backup blocks"
msgstr "%s: %s trong khi đọc nút thông tin khối hỏng"
-#: e2fsck/unix.c:1273
+#: e2fsck/unix.c:1309
#, c-format
msgid "%s: going back to original superblock\n"
msgstr "%s: đang trở về siêu khối gốc\n"
-#: e2fsck/unix.c:1301
+#: e2fsck/unix.c:1337
msgid ""
"The filesystem revision is apparently too high for this version of e2fsck.\n"
"(Or the filesystem superblock is corrupt)\n"
"(hoặc siêu khối hệ thống tập tin bị hỏng).\n"
"\n"
-#: e2fsck/unix.c:1307
+#: e2fsck/unix.c:1343
msgid "Could this be a zero-length partition?\n"
msgstr "Phân vùng này có thể có độ dài bằng không ?\n"
-#: e2fsck/unix.c:1310
+#: e2fsck/unix.c:1346
#, c-format
msgid "You must have %s access to the filesystem or be root\n"
-msgstr ""
-"Bạn phải có quyền truy cập %s vào hệ thống tập tin, hoặc là người chủ "
-"(root)\n"
+msgstr "Bạn phải có quyền truy cập %s vào hệ thống tập tin, hoặc là người chủ (root)\n"
-#: e2fsck/unix.c:1315
+#: e2fsck/unix.c:1351
msgid "Possibly non-existent or swap device?\n"
msgstr "Có thể là thiết bị không tồn tại, hoặc thiết bị trao đổi ?\n"
-#: e2fsck/unix.c:1318
+#: e2fsck/unix.c:1354
msgid "Filesystem mounted or opened exclusively by another program?\n"
-msgstr ""
-"Hệ thống tập tin đã được gắn kết hay mở hoàn toàn bởi chương trình khác ?\n"
+msgstr "Hệ thống tập tin đã được gắn kết hay mở hoàn toàn bởi chương trình khác ?\n"
-#: e2fsck/unix.c:1321
+#: e2fsck/unix.c:1357
msgid "Possibly non-existent device?\n"
msgstr "Có thể là thiết bị không tồn tại?\n"
-#: e2fsck/unix.c:1324
+#: e2fsck/unix.c:1360
msgid ""
"Disk write-protected; use the -n option to do a read-only\n"
"check of the device.\n"
msgstr ""
-"Đĩa bị chống ghi; hãy dùng tùy chọn « -n » để chạy\n"
+"Đĩa bị chống ghi; hãy dùng tùy chọn “-n” để chạy\n"
"việc kiểm tra chỉ đọc trên thiết bị đó.\n"
-#: e2fsck/unix.c:1389
+#: e2fsck/unix.c:1425
msgid "Get a newer version of e2fsck!"
-msgstr "Lấy phiên bản e2fsck mới hơn."
+msgstr "Lấy phiên bản e2fsck mới hơn!"
-#: e2fsck/unix.c:1437
+#: e2fsck/unix.c:1469
#, c-format
msgid "while checking ext3 journal for %s"
msgstr "trong khi kiểm tra nhật ký ext3 tìm %s"
-#: e2fsck/unix.c:1448
-msgid ""
-"Warning: skipping journal recovery because doing a read-only filesystem "
-"check.\n"
-msgstr ""
-"Cảnh báo: đang bỏ qua việc phục hồi nhật ký vì đang kiểm tra hệ thống tập "
-"tin một cách chỉ đọc.\n"
+#: e2fsck/unix.c:1480
+msgid "Warning: skipping journal recovery because doing a read-only filesystem check.\n"
+msgstr "Cảnh báo: đang bỏ qua việc phục hồi nhật ký vì đang kiểm tra hệ thống tập tin một cách chỉ đọc.\n"
-#: e2fsck/unix.c:1461
+#: e2fsck/unix.c:1493
#, c-format
msgid "unable to set superblock flags on %s\n"
msgstr "không thể đặt cờ siêu khối trên %s\n"
-#: e2fsck/unix.c:1467
+#: e2fsck/unix.c:1499
#, c-format
msgid "while recovering ext3 journal of %s"
msgstr "trong khi phục hồi nhật ký ext3 của %s"
-#: e2fsck/unix.c:1492
+#: e2fsck/unix.c:1523
#, c-format
msgid "%s has unsupported feature(s):"
msgstr "%s có tính năng không được hỗ trợ:"
-#: e2fsck/unix.c:1507
+#: e2fsck/unix.c:1538
#, c-format
msgid "%s: warning: compression support is experimental.\n"
msgstr "%s: cảnh báo: sự hỗ trợ khả năng nén là thực nghiệm.\n"
-#: e2fsck/unix.c:1513
+#: e2fsck/unix.c:1544
#, c-format
msgid ""
"%s: e2fsck not compiled with HTREE support,\n"
"\tbut filesystem %s has HTREE directories.\n"
msgstr ""
-"%s: e2fsck không được biên dịch với khả năng hỗ trợ HCÂY,\n"
-"\tnhưng hệ thống tập tin %s có thư mục HCÂY.\n"
+"%s: e2fsck không được biên dịch với khả năng hỗ trợ HTREE,\n"
+"\tnhưng hệ thống tập tin %s có thư mục HTREE.\n"
-#: e2fsck/unix.c:1565
+#: e2fsck/unix.c:1596
#, c-format
msgid "%s: %s while reading bad blocks inode\n"
msgstr "%s: %s trong khi đọc nút thông tin khối hỏng\n"
-#: e2fsck/unix.c:1568
+#: e2fsck/unix.c:1599
msgid "This doesn't bode well, but we'll try to go on...\n"
-msgstr ""
-"Đây không phải báo trước điềm hay, nhưng tiến trình này sẽ thử tiếp tục...\n"
+msgstr "Đây không phải báo trước điềm hay, nhưng tiến trình này sẽ thử tiếp tục...\n"
-#: e2fsck/unix.c:1609
+#: e2fsck/unix.c:1640
#, c-format
msgid "Creating journal (%d blocks): "
msgstr "Đang tạo nhật ký (%d khối): "
-#: e2fsck/unix.c:1619
+#: e2fsck/unix.c:1650
msgid " Done.\n"
-msgstr " Hoàn tất\n"
+msgstr " Hoàn tất.\n"
-#: e2fsck/unix.c:1620
+#: e2fsck/unix.c:1651
msgid ""
"\n"
"*** journal has been re-created - filesystem is now ext3 again ***\n"
"\n"
"••• nhật ký đã được tạo lại — hệ thống tập tin lúc này là ext3 lại •••\n"
-#: e2fsck/unix.c:1643
+#: e2fsck/unix.c:1674
msgid "Restarting e2fsck from the beginning...\n"
msgstr "Đang khởi chạy lại hoàn toàn e2fsck...\n"
-#: e2fsck/unix.c:1647
+#: e2fsck/unix.c:1678
msgid "while resetting context"
msgstr "trong khi đặt lại ngữ cảnh"
-#: e2fsck/unix.c:1654
+#: e2fsck/unix.c:1685
#, c-format
msgid "%s: e2fsck canceled.\n"
-msgstr "%s: e2fsck bị thôi.\n"
+msgstr "%s: e2fsck bị hủy bỏ.\n"
-#: e2fsck/unix.c:1659
+#: e2fsck/unix.c:1690
msgid "aborted"
msgstr "bị hủy bỏ"
-#: e2fsck/unix.c:1671 e2fsck/util.c:67
+#: e2fsck/unix.c:1702 e2fsck/util.c:67
#, c-format
msgid ""
"\n"
"\n"
"%s: ••••• HỆ THỐNG TẬP TIN BỊ SỬA ĐỔI •••••\n"
-#: e2fsck/unix.c:1675
+#: e2fsck/unix.c:1706
#, c-format
msgid "%s: ***** REBOOT LINUX *****\n"
msgstr "%s: ••••• HÃY KHỞI ĐỘNG LẠI LINUX •••••\n"
-#: e2fsck/unix.c:1683 e2fsck/util.c:73
+#: e2fsck/unix.c:1714 e2fsck/util.c:73
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"%s: •••••••••• CẢNH BÁO: hệ thống tập tin vẫn còn có lỗi ••••••••••\n"
+"%s: •••••••••• CẢNH BÁO: Hệ thống tập tin vẫn còn có lỗi ••••••••••\n"
"\n"
-#: e2fsck/unix.c:1723
+#: e2fsck/unix.c:1754
msgid "while setting block group checksum info"
msgstr "trong khi đặt thông tin tổng kiểm nhóm khối"
#: e2fsck/util.c:189 misc/util.c:70
msgid "yY"
-msgstr "cC"
+msgstr "cCyY"
#: e2fsck/util.c:190
msgid "nN"
-msgstr "kK"
+msgstr "kKnN"
#: e2fsck/util.c:204
msgid "<y>"
#: e2fsck/util.c:222
msgid "cancelled!\n"
-msgstr "bị thôi !\n"
+msgstr "đã hủy!\n"
#: e2fsck/util.c:237
msgid "yes\n"
"\n"
"\n"
"%s: MÂU THUẪN BẤT THƯỜNG: HÃY TỰ CHẠY fsck.\n"
-"\t(tức là không có tùy chọn « -a » hay « -p »).\n"
+"\t(tức là không có tùy chọn “-a” hay “-p”).\n"
#: e2fsck/util.c:395
#, c-format
msgstr "trong khi cấp phát bộ đếm làm số không"
#: e2fsck/util.c:788
-msgid ""
-"UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is "
-"running.\n"
-msgstr ""
-"MÂU THUẪN: hệ thống tệp tin đang được sửa chữa trong khi lệnh fsck đang "
-"chạy.\n"
+msgid "UNEXPECTED INCONSISTENCY: the filesystem is being modified while fsck is running.\n"
+msgstr "MÂU THUẪN: hệ thống tập tin đang được sửa chữa trong khi lệnh fsck đang chạy.\n"
#: misc/badblocks.c:69
msgid "done \n"
-msgstr "hoàn tất \n"
+msgstr "hoàn tất \n"
#: misc/badblocks.c:93
#, c-format
msgid ""
"Usage: %s [-b block_size] [-i input_file] [-o output_file] [-svwnf]\n"
-" [-c blocks_at_once] [-d delay_factor_between_reads] [-e "
-"max_bad_blocks]\n"
+" [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]\n"
" [-p num_passes] [-t test_pattern [-t test_pattern [...]]]\n"
" device [last_block [first_block]]\n"
msgstr ""
-"Sử dụng: %s [-b cỡ_khối] [-i tập_tin_nhập] [-o tập_tin_xuất] [-svwnf]\n"
+"Cách dùng: %s [-b cỡ_khối] [-i tập_tin_nhập] [-o tập_tin_xuất] [-svwnf]\n"
" [-c số_khối_cùng_lúc] [-d hệ_số_đợi_đọc] [-e số_tối_đa_khối_xấu]\n"
" [-p số_lần_qua] [-t mẫu_thử [-t mẫu_thử [...]]]\n"
" thiết_bị [khối_cuối [khối_đầu]]\n"
"%s: The -n and -w options are mutually exclusive.\n"
"\n"
msgstr ""
-"%s: hai tùy chọn « -n » và « -w » loại từ lẫn nhau.\n"
+"%s: hai tùy chọn “-n” và “-w” loại từ lẫn nhau.\n"
"\n"
#: misc/badblocks.c:219
#: misc/badblocks.c:383
#, c-format
msgid "Weird value (%ld) in do_read\n"
-msgstr "Giá trị lạ (%ld) trong việc đọc « do_read »\n"
+msgstr "Giá trị lạ (%ld) trong việc đọc “do_read”\n"
#: misc/badblocks.c:469
msgid "during ext2fs_sync_device"
-msgstr "trong khi đồng bộ hoá thiết bị « ext2fs_sync_device »"
+msgstr "trong khi đồng bộ hoá thiết bị “ext2fs_sync_device”"
#: misc/badblocks.c:489 misc/badblocks.c:749
msgid "while beginning bad block list iteration"
#: misc/badblocks.c:988 misc/util.c:152
#, c-format
msgid "%s is mounted; "
-msgstr "%s đã gắn kết; "
+msgstr "%s đã được gắn kết; "
#: misc/badblocks.c:990
msgid "badblocks forced anyway. Hope /etc/mtab is incorrect.\n"
msgstr ""
"tùy chọn khối sai (badblocks) vẫn bị ép buộc.\n"
-"Mong « /etc/mtab » không đúng.\n"
+"Mong “/etc/mtab” không đúng.\n"
#: misc/badblocks.c:995
msgid "it's not safe to run badblocks!\n"
#: misc/badblocks.c:1000 misc/util.c:163
#, c-format
msgid "%s is apparently in use by the system; "
-msgstr "Có vẻ là %s đang bị hệ thống dùng; "
+msgstr "Có vẻ là %s đang được hệ thống dùng; "
#: misc/badblocks.c:1003
msgid "badblocks forced anyway.\n"
#: misc/badblocks.c:1163
msgid "Maximum of one test_pattern may be specified in read-only mode"
-msgstr ""
-"Trong chế độ chỉ đọc, có thể xác định tối đa một mẫu thử (test_pattern)"
+msgstr "Trong chế độ chỉ đọc, có thể xác định tối đa một mẫu thử (test_pattern)"
#: misc/badblocks.c:1169
msgid "Random test_pattern is not allowed in read-only mode"
#: misc/chattr.c:86
#, c-format
-msgid "Usage: %s [-RVf] [-+=AacDdeijsSu] [-v version] files...\n"
-msgstr "Sử dụng: %s [-RVf] [-+=AacDdeijsSu] [-v phiên_bản] tập_tin...\n"
+msgid "Usage: %s [-RVf] [-+=AaCcDdeijsSu] [-v version] files...\n"
+msgstr "Cách dùng: %s [-RVf] [-+=AaCcDdeijsSu] [-v phiên_bản] tập_tin...\n"
-#: misc/chattr.c:154
+#: misc/chattr.c:155
#, c-format
msgid "bad version - %s\n"
msgstr "phiên bản sai — %s\n"
-#: misc/chattr.c:201 misc/lsattr.c:116
+#: misc/chattr.c:202 misc/lsattr.c:116
#, c-format
msgid "while trying to stat %s"
msgstr "trong khi thử lấy các thông tin về %s"
-#: misc/chattr.c:208
+#: misc/chattr.c:209
#, c-format
msgid "while reading flags on %s"
msgstr "trong khi đọc các cờ trên %s"
-#: misc/chattr.c:217 misc/chattr.c:236
+#: misc/chattr.c:218 misc/chattr.c:237
#, c-format
msgid "Clearing extent flag not supported on %s"
msgstr "Chức năng xoá sạch cờ tầm không được hỗ trợ trên %s"
-#: misc/chattr.c:222 misc/chattr.c:241
+#: misc/chattr.c:223 misc/chattr.c:242
#, c-format
msgid "Flags of %s set as "
msgstr "Các cờ của %s đã đặt thành "
-#: misc/chattr.c:250
+#: misc/chattr.c:251
#, c-format
msgid "while setting flags on %s"
msgstr "trong khi đặt các cờ trên %s"
-#: misc/chattr.c:258
+#: misc/chattr.c:259
#, c-format
msgid "Version of %s set as %lu\n"
msgstr "Phiên bản %s được đặt thành %lu\n"
-#: misc/chattr.c:262
+#: misc/chattr.c:263
#, c-format
msgid "while setting version on %s"
msgstr "trong khi đặt phiên bản trên %s"
-#: misc/chattr.c:282
+#: misc/chattr.c:283
#, c-format
msgid "Couldn't allocate path variable in chattr_dir_proc"
msgstr "Không thể cấp phát biến đường dẫn trong chattr_dir_proc"
-#: misc/chattr.c:322
+#: misc/chattr.c:323
msgid "= is incompatible with - and +\n"
-msgstr "= không tương thích với « - » và « + »\n"
+msgstr "= không tương thích với “-” và “+”\n"
-#: misc/chattr.c:330
+#: misc/chattr.c:331
msgid "Must use '-v', =, - or +\n"
-msgstr "Phải dùng « -v », « = », « - » hay « + »\n"
+msgstr "Phải dùng “-v”, “=”, “-” hay “+”\n"
#: misc/dumpe2fs.c:55
#, c-format
msgid "Usage: %s [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device\n"
-msgstr "Sử dụng: %s [-bfhixV] [-o siêu_khối=<số>] [-o cỡ_khối=<số>] thiết_bị\n"
+msgstr "Cách dùng: %s [-bfhixV] [-o siêu_khối=<số>] [-o cỡ_khối=<số>] thiết_bị\n"
#: misc/dumpe2fs.c:159
msgid "blocks"
#: misc/dumpe2fs.c:206
#, c-format
msgid " (EXPECTED 0x%04x)"
-msgstr " (MONG ĐỢI 0x%04x)"
+msgstr " (CẦN 0x%04x)"
#: misc/dumpe2fs.c:207
#, c-format
#: misc/dumpe2fs.c:355
#, c-format
msgid "Journal features: "
-msgstr "Tính năng nhật ký: "
+msgstr "Tính năng nhật ký: "
#: misc/dumpe2fs.c:368
msgid "Journal size: "
-msgstr "Kích cỡ nhật ký: "
+msgstr "Kích cỡ nhật ký: "
#: misc/dumpe2fs.c:379
#, c-format
"Journal sequence: 0x%08x\n"
"Journal start: %u\n"
msgstr ""
-"Chiều dài nhật ký: %u\n"
-"Dãy nhật ký: 0x%08x\n"
-"Đầu nhật ký: %u\n"
+"Chiều dài nhật ký: %u\n"
+"Dãy nhật ký: 0x%08x\n"
+"Đầu nhật ký: %u\n"
#: misc/dumpe2fs.c:386
-#, fuzzy, c-format
+#, c-format
msgid "Journal errno: %d\n"
-msgstr "Người dùng nhật ký: %s\n"
+msgstr "Lỗi Journal: %d\n"
#: misc/dumpe2fs.c:401 misc/tune2fs.c:218
msgid "while reading journal superblock"
"Journal number of users: %u\n"
msgstr ""
"\n"
-"Kích cỡ khối nhật ký: \t%u\n"
-"Độ dài nhật ký: \t\t%u\n"
-"Khối đầu nhật ký: \t\t%u\n"
-"Dãy nhật ký: \t\t\t0x%08x\n"
-"Đầu nhật ký: \t\t%u\n"
-"Số người dùng nhật ký: \t%u\n"
+"Kích cỡ khối nhật ký: %u\n"
+"Độ dài nhật ký: %u\n"
+"Khối đầu nhật ký: %u\n"
+"Dãy nhật ký: 0x%08x\n"
+"Đầu nhật ký: %u\n"
+"Số người dùng nhật ký: %u\n"
#: misc/dumpe2fs.c:426
#, c-format
msgid "Journal users: %s\n"
-msgstr "Người dùng nhật ký: %s\n"
+msgstr "Người dùng nhật ký: %s\n"
-#: misc/dumpe2fs.c:442 misc/mke2fs.c:662 misc/tune2fs.c:1137
+#: misc/dumpe2fs.c:442 misc/mke2fs.c:665 misc/tune2fs.c:1128
#, c-format
msgid "Couldn't allocate memory to parse options!\n"
-msgstr "Không thể cấp phát bộ nhớ để phân tách tùy chọn !\n"
+msgstr "Không thể cấp phát bộ nhớ để phân tách tùy chọn!\n"
#: misc/dumpe2fs.c:468
#, c-format
"\tblocksize=<blocksize>\n"
msgstr ""
"\n"
-"Sai xác định tùy chọn đã mở rộng: %s\n"
+"Chỉ ra tùy chọn mở rộng sai: %s\n"
"\n"
"Các tùy chọn đã mở rộng cũng định giới bằng dấu phẩy, có thể chấp nhận\n"
-"đối số được ngụ ý với dấu bằng « = ».\n"
+"đối số được ngụ ý với dấu bằng “=”.\n"
"\n"
"Tùy chọn đã mở rộng hợp lệ:\n"
"\tsuperblock=<số thứ tự siêu khối>\n"
"\tblocksize=<kích cỡ khối>\n"
-#: misc/dumpe2fs.c:554 misc/mke2fs.c:1525
+#: misc/dumpe2fs.c:554 misc/mke2fs.c:1528
#, c-format
msgid "\tUsing %s\n"
msgstr "\tDùng %s\n"
-#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1923
+#: misc/dumpe2fs.c:590 misc/e2image.c:1309 misc/tune2fs.c:1914
#: resize/main.c:305
#, c-format
msgid "Couldn't find valid filesystem superblock.\n"
#: misc/e2image.c:87
#, c-format
msgid "Usage: %s [-rsIQ] device image_file\n"
-msgstr "Sử dụng: %s [-rsIQ] thiết_bị tập_tin_ảnh\n"
+msgstr "Cách dùng: %s [-rsIQ] thiết_bị tập_tin_ảnh\n"
#: misc/e2image.c:135
#, c-format
msgid "e2label: not an ext2 filesystem\n"
msgstr "e2label: không phải hệ thống tập tin kiểu ext2\n"
-#: misc/e2label.c:97 misc/tune2fs.c:2074
+#: misc/e2label.c:97 misc/tune2fs.c:2065
#, c-format
msgid "Warning: label too long, truncating.\n"
msgstr "Cảnh báo: nhãn quá dài nên cắt ngắn.\n"
msgid "e2label: error writing superblock\n"
msgstr "e2label: gặp lỗi khi ghi siêu khối\n"
-#: misc/e2label.c:117 misc/tune2fs.c:803
+#: misc/e2label.c:117 misc/tune2fs.c:794
#, c-format
msgid "Usage: e2label device [newlabel]\n"
-msgstr "Sử dụng: e2label thiết_bị [nhãn_mới]\n"
+msgstr "Cách dùng: e2label thiết_bị [nhãn_mới]\n"
#: misc/e2undo.c:36
#, c-format
msgid "Usage: %s <transaction file> <filesystem>\n"
-msgstr "Sử dụng: %s <tập tin giao dịch> <hệ thống tập tin>\n"
+msgstr "Cách dùng: %s <tập tin giao dịch> <hệ thống tập tin>\n"
#: misc/e2undo.c:52
msgid "Failed to read the file system data \n"
"with 'no' or '!'.\n"
msgstr ""
"Hoặc tất cả hoặc không có kiểu hệ thống tập tin được gửi qua\n"
-"cho tùy chọn « -t » phải có tiền tố « no » hay « ! ».\n"
+"cho tùy chọn “-t” phải có tiền tố “no” hay “!”.\n"
#: misc/fsck.c:761
msgid "Couldn't allocate memory for filesystem types\n"
#: misc/fsck.c:884
#, c-format
-msgid ""
-"%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass "
-"number\n"
-msgstr ""
-"%s: đang bỏ qua dòng sai trong « /etc/fstab »: đóng kết lắp với số gửi qua "
-"fsck khác số không\n"
+msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number\n"
+msgstr "%s: đang bỏ qua dòng sai trong “/etc/fstab”: đóng kết lắp với số gửi qua fsck khác số không\n"
#: misc/fsck.c:911
#, c-format
msgstr "--đang đợi-- (lần qua %d)\n"
#: misc/fsck.c:1078
-msgid ""
-"Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
+msgid "Usage: fsck [-AMNPRTV] [ -C [ fd ] ] [-t fstype] [fs-options] [filesys ...]\n"
msgstr ""
-"Sử dụng: fsck [-AMNPRTV] [ -C [ fd ] ] [-t kiểu_HTT] [fs-options] [HTT ...]\n"
+"Cách dùng: fsck [-AMNPRTV] [ -C [ fd ] ] [-t kiểu_HTT] [fs-options] [HTT ...]\n"
"\n"
"HTT: hệ thống tập tin\n"
#: misc/lsattr.c:74
#, c-format
msgid "Usage: %s [-RVadlv] [files...]\n"
-msgstr "Sử dụng: %s [-RVadlv] [tập_tin...]\n"
+msgstr "Cách dùng: %s [-RVadlv] [tập_tin...]\n"
#: misc/lsattr.c:84
#, c-format
msgid "While reading version on %s"
msgstr "Trong khi đọc phiên bản trên %s"
-#: misc/mke2fs.c:114
+#: misc/mke2fs.c:115
#, c-format
msgid ""
"Usage: %s [-c|-l filename] [-b block-size] [-C cluster-size]\n"
"\t[-m reserved-blocks-percentage] [-o creator-os]\n"
"\t[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]\n"
"\t[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]\n"
-"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-"
-"count]\n"
+"\t[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]\n"
msgstr ""
-"Sử dụng: %s [-c|-l tên_tập_tin] [-b cỡ_khối] [-C cỡ_đoạn]\n"
+"Cách dùng: %s [-c|-l tên_tập_tin] [-b cỡ_khối] [-C cỡ_đoạn]\n"
"\t[-i byte_mỗi_inode] [-I cỡ_inode] [-J tùy_chọn_nhật_ký]\n"
"\t[-G cỡ_nhóm-flex] [-N số_lượng_inode]\n"
"\t [-m phần_trăm_khối_dành_riêng] [-o HĐH_tạo]\n"
"\t[-g số-khối_mỗi_nhóm] [-L nhãn_khối_tin] [-M thư_mục_lắp_cuối]\n"
"\t[-O tính_năng[,...]] [-r bản_sửa_đổi_HTT] [-E tùy_chọn_mở_rộng[,...]]\n"
-"\t [-t kiểu_HTTT] [-T kiểu-dùng ] [-U UUID] [-jnqvDFKSV] thiết_bị "
-"[số_lượng_khối]\n"
+"\t [-t kiểu_HTTT] [-T kiểu-dùng ] [-U UUID] [-jnqvDFKSV] thiết_bị [số_lượng_khối]\n"
"Từ viết tắt:\n"
"\tHDH: hệ điều hành\n"
-"\tHTTT: há»\87 thá»\91ng tá»\87p tin\n"
+"\tHTTT: há»\87 thá»\91ng táºp tin\n"
-#: misc/mke2fs.c:217
+#: misc/mke2fs.c:218
#, c-format
msgid "Running command: %s\n"
msgstr "Đang chạy lệnh: %s\n"
-#: misc/mke2fs.c:221
+#: misc/mke2fs.c:222
#, c-format
msgid "while trying to run '%s'"
-msgstr "trong khi thử chạy « %s »"
+msgstr "trong khi thử chạy “%s”"
-#: misc/mke2fs.c:228
+#: misc/mke2fs.c:229
msgid "while processing list of bad blocks from program"
msgstr "trong khi xử lý danh sách các khối sai từ chương trình"
-#: misc/mke2fs.c:255
+#: misc/mke2fs.c:256
#, c-format
msgid "Block %d in primary superblock/group descriptor area bad.\n"
msgstr "Khối %d sai trong vùng mô tả nhóm/siêu khối chính.\n"
-#: misc/mke2fs.c:257
+#: misc/mke2fs.c:258
#, c-format
msgid "Blocks %u through %u must be good in order to build a filesystem.\n"
msgstr ""
"Các khối trong phạm vi %u đến %u phải là tốt\n"
"để xây dựng được hệ thống tập tin.\n"
-#: misc/mke2fs.c:260
+#: misc/mke2fs.c:261
msgid "Aborting....\n"
msgstr "Đang hủy bỏ...\n"
-#: misc/mke2fs.c:280
+#: misc/mke2fs.c:281
#, c-format
msgid ""
"Warning: the backup superblock/group descriptors at block %u contain\n"
"Cảnh báo: các mô tả nhóm/siêu khối dự trữ tại khối %u chứa khối sai.\n"
"\n"
-#: misc/mke2fs.c:299
+#: misc/mke2fs.c:300
msgid "while marking bad blocks as used"
msgstr "trong khi đánh dấu các khối sai đã được dùng"
-#: misc/mke2fs.c:316
+#: misc/mke2fs.c:317
msgid "Writing inode tables: "
msgstr "Đang ghi các bảng nút thông tin: "
-#: misc/mke2fs.c:337
+#: misc/mke2fs.c:339
#, c-format
msgid ""
"\n"
"\n"
"Không thể ghi %d khối trong bảng nút thông tin, bắt đầu tại %llu: %s\n"
-#: misc/mke2fs.c:351 misc/mke2fs.c:2175 misc/mke2fs.c:2429
+#: misc/mke2fs.c:353 misc/mke2fs.c:2181 misc/mke2fs.c:2435
#, c-format
msgid "done \n"
-msgstr "hoàn tất \n"
+msgstr "hoàn tất \n"
-#: misc/mke2fs.c:362
+#: misc/mke2fs.c:364
msgid "while creating root dir"
msgstr "trong khi tạo thư mục gốc"
-#: misc/mke2fs.c:369
+#: misc/mke2fs.c:371
msgid "while reading root inode"
msgstr "trong khi đọc nút thông tin gốc"
-#: misc/mke2fs.c:383
+#: misc/mke2fs.c:385
msgid "while setting root inode ownership"
msgstr "trong khi đặt quyền sở hữu nút thông tin gốc"
-#: misc/mke2fs.c:401
+#: misc/mke2fs.c:403
msgid "while creating /lost+found"
msgstr "trong khi tạo /mất+tìm"
-#: misc/mke2fs.c:408
+#: misc/mke2fs.c:410
msgid "while looking up /lost+found"
msgstr "trong khi tra tìm /mất+tìm"
-#: misc/mke2fs.c:421
+#: misc/mke2fs.c:423
msgid "while expanding /lost+found"
msgstr "trong khi mở rộng /mất+tìm"
-#: misc/mke2fs.c:436
+#: misc/mke2fs.c:438
msgid "while setting bad block inode"
msgstr "trong khi đặt nút thông tin khối sai"
-#: misc/mke2fs.c:463
+#: misc/mke2fs.c:465
#, c-format
msgid "Out of memory erasing sectors %d-%d\n"
msgstr "Hết bộ nhớ nên xoá các rãnh ghi trong phạm vi %d đến %d\n"
-#: misc/mke2fs.c:473
+#: misc/mke2fs.c:475
#, c-format
msgid "Warning: could not read block 0: %s\n"
msgstr "Cảnh báo: không thể đọc khối 0: %s\n"
-#: misc/mke2fs.c:489
+#: misc/mke2fs.c:491
#, c-format
msgid "Warning: could not erase sector %d: %s\n"
msgstr "Cảnh báo: không thể xoá rãnh ghi %d: %s\n"
-#: misc/mke2fs.c:505
+#: misc/mke2fs.c:507
msgid "while initializing journal superblock"
msgstr "trong khi sở khởi siêu khối nhật ký"
-#: misc/mke2fs.c:513
+#: misc/mke2fs.c:515
msgid "Zeroing journal device: "
msgstr "Đang làm số không thiết bị nhật ký: "
-#: misc/mke2fs.c:525
+#: misc/mke2fs.c:527
#, c-format
msgid "while zeroing journal device (block %llu, count %d)"
msgstr "trong khi làm số không thiết bị nhật ký (khối %llu, số lượng %d)"
-#: misc/mke2fs.c:543
+#: misc/mke2fs.c:546
msgid "while writing journal superblock"
msgstr "trong khi ghi siêu khối nhật ký"
-#: misc/mke2fs.c:558
+#: misc/mke2fs.c:561
#, c-format
msgid ""
"warning: %llu blocks unused.\n"
"cảnh báo: %llu khối chưa dùng.\n"
"\n"
-#: misc/mke2fs.c:563
+#: misc/mke2fs.c:566
#, c-format
msgid "Filesystem label=%s\n"
msgstr "Nhãn hệ thống tập tin=%s\n"
-#: misc/mke2fs.c:566
+#: misc/mke2fs.c:569
#, c-format
msgid "OS type: %s\n"
msgstr "Kiểu HĐH: %s\n"
-#: misc/mke2fs.c:568
+#: misc/mke2fs.c:571
#, c-format
msgid "Block size=%u (log=%u)\n"
msgstr "Cỡ khối=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:572
+#: misc/mke2fs.c:575
#, c-format
msgid "Cluster size=%u (log=%u)\n"
msgstr "Cỡ liên cung=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:576
+#: misc/mke2fs.c:579
#, c-format
msgid "Fragment size=%u (log=%u)\n"
msgstr "Cỡ đoạn=%u (bản ghi=%u)\n"
-#: misc/mke2fs.c:578
+#: misc/mke2fs.c:581
#, c-format
msgid "Stride=%u blocks, Stripe width=%u blocks\n"
msgstr "Bước=%u khối, Độ rộng sọc=%u khối\n"
-#: misc/mke2fs.c:580
+#: misc/mke2fs.c:583
#, c-format
msgid "%u inodes, %llu blocks\n"
msgstr "%u nút thông tin, %llu khối\n"
-#: misc/mke2fs.c:582
+#: misc/mke2fs.c:585
#, c-format
msgid "%llu blocks (%2.2f%%) reserved for the super user\n"
msgstr "%llu khối (%2.2f%%) được dành riêng cho siêu người dùng\n"
-#: misc/mke2fs.c:585
+#: misc/mke2fs.c:588
#, c-format
msgid "First data block=%u\n"
msgstr "Khối dữ liệu đầu=%u\n"
-#: misc/mke2fs.c:587
+#: misc/mke2fs.c:590
#, c-format
msgid "Maximum filesystem blocks=%lu\n"
msgstr "Khối hệ thống tập tin tối đa=%lu\n"
-#: misc/mke2fs.c:591
+#: misc/mke2fs.c:594
#, c-format
msgid "%u block groups\n"
msgstr "%u nhóm khối\n"
-#: misc/mke2fs.c:593
+#: misc/mke2fs.c:596
#, c-format
msgid "%u block group\n"
msgstr "%u nhóm khối\n"
-#: misc/mke2fs.c:596
+#: misc/mke2fs.c:599
#, c-format
msgid "%u blocks per group, %u clusters per group\n"
msgstr "%u khối trên mỗi nhóm, %u đoạn trên mỗi nhóm\n"
-#: misc/mke2fs.c:599
+#: misc/mke2fs.c:602
#, c-format
msgid "%u blocks per group, %u fragments per group\n"
msgstr "%u khối trên mỗi nhóm, %u đoạn trên mỗi nhóm\n"
-#: misc/mke2fs.c:601
+#: misc/mke2fs.c:604
#, c-format
msgid "%u inodes per group\n"
msgstr "%u nút thông tin trên mỗi nhóm\n"
-#: misc/mke2fs.c:608
+#: misc/mke2fs.c:611
#, c-format
msgid "Superblock backups stored on blocks: "
msgstr "Siêu khối dự trữ được cất giữ trên khối: "
-#: misc/mke2fs.c:687 misc/tune2fs.c:1165
+#: misc/mke2fs.c:690 misc/tune2fs.c:1156
#, c-format
msgid "Invalid mmp_update_interval: %s\n"
msgstr "mmp_update_interval không hợp lệ: %s\n"
-#: misc/mke2fs.c:701
+#: misc/mke2fs.c:704
#, c-format
msgid "Invalid stride parameter: %s\n"
msgstr "Tham số stride không hợp lệ: %s\n"
-#: misc/mke2fs.c:716
+#: misc/mke2fs.c:719
#, c-format
msgid "Invalid stripe-width parameter: %s\n"
msgstr "Tham số stride không hợp lệ: %s\n"
-#: misc/mke2fs.c:739
+#: misc/mke2fs.c:742
#, c-format
msgid "Invalid resize parameter: %s\n"
msgstr "Tham số thay đổi kích cỡ không hợp lệ: %s\n"
-#: misc/mke2fs.c:746
+#: misc/mke2fs.c:749
#, c-format
msgid "The resize maximum must be greater than the filesystem size.\n"
-msgstr ""
-"Số thay đổi kích cỡ tối đa phải lớn hơn kích cỡ của hệ thống tập tin.\n"
+msgstr "Số thay đổi kích cỡ tối đa phải lớn hơn kích cỡ của hệ thống tập tin.\n"
-#: misc/mke2fs.c:770
+#: misc/mke2fs.c:773
#, c-format
msgid "On-line resizing not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng thay đổi kích cỡ một cách trực tuyến không được hỗ trợ\n"
"trên hệ thống tập tin bản sửa đổi 0\n"
-#: misc/mke2fs.c:808
+#: misc/mke2fs.c:811
#, c-format
msgid "Invalid quotatype parameter: %s\n"
msgstr "Tham số kiểu hạn ngạch không hợp lệ: %s\n"
-#: misc/mke2fs.c:819
+#: misc/mke2fs.c:822
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Sai xác định tùy chọn: %s\n"
+"Tùy chọn đã cho không đúng: %s\n"
"\n"
"Các tùy chọn mở rộng được định giới bằng dấu phẩy, có thể chấp nhận\n"
-"\tđối số được đặt với dấu bằng ('=').\n"
+"\tđối số được đặt với dấu bằng (”=”).\n"
"\n"
"Tùy chọn mở rộng hợp lệ:\n"
"\tstride=<đoạn dữ liệu RAID mỗi đĩa theo khối>\n"
"\tquotatype=<usr HAY grp>\n"
"\n"
-#: misc/mke2fs.c:839
+#: misc/mke2fs.c:842
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
"\n"
-"Cảnh báo: chiều rộng sọc (stripe-width) RAID %u không phải là một bội số "
-"dương của %u.\n"
+"Cảnh báo: chiều rộng sọc (stripe-width) RAID %u không phải là một bội số dương của %u.\n"
"\n"
-#: misc/mke2fs.c:878
+#: misc/mke2fs.c:881
#, c-format
msgid ""
"Syntax error in mke2fs config file (%s, line #%d)\n"
"Gặp lỗi cú pháp trong tập tin cấu hình mke2fs (%s, dòng số %d)\n"
"\t%s\n"
-#: misc/mke2fs.c:891 misc/tune2fs.c:393
+#: misc/mke2fs.c:894 misc/tune2fs.c:393
#, c-format
msgid "Invalid filesystem option set: %s\n"
msgstr "Đặt tùy chọn hệ thống tập tin không hợp lệ: %s\n"
-#: misc/mke2fs.c:903 misc/tune2fs.c:345
+#: misc/mke2fs.c:906 misc/tune2fs.c:345
#, c-format
msgid "Invalid mount option set: %s\n"
msgstr "Đặt tùy chọn lắp không hợp lệ: %s\n"
-#: misc/mke2fs.c:1043
+#: misc/mke2fs.c:1046
#, c-format
msgid ""
"\n"
"Your mke2fs.conf file does not define the %s filesystem type.\n"
msgstr ""
"\n"
-"Tập tin « mke2fs.conf » của bạn không xác định kiểu hệ thống tập tin %s.\n"
+"Tập tin “mke2fs.conf” của bạn không xác định kiểu hệ thống tập tin %s.\n"
-#: misc/mke2fs.c:1047
+#: misc/mke2fs.c:1050
#, c-format
msgid ""
"You probably need to install an updated mke2fs.conf file.\n"
"\n"
msgstr ""
-"Rất có thể là bạn cần phải cài đặt một tập tin « mke2fs.conf » mới.\n"
+"Rất có thể là bạn cần phải cài đặt một tập tin “mke2fs.conf” mới.\n"
"\n"
-#: misc/mke2fs.c:1051
+#: misc/mke2fs.c:1054
#, c-format
msgid "Aborting...\n"
msgstr "Đang hủy bỏ...\n"
-#: misc/mke2fs.c:1091
+#: misc/mke2fs.c:1094
#, c-format
msgid ""
"\n"
"Cảnh báo: fs_type %s không được định nghĩa trong mke2fs.conf\n"
"\n"
-#: misc/mke2fs.c:1249
+#: misc/mke2fs.c:1252
#, c-format
msgid "Couldn't allocate memory for new PATH.\n"
msgstr "Không thể cấp phát bộ nhớ cho ĐƯỜNG-DẪN\n"
-#: misc/mke2fs.c:1290
+#: misc/mke2fs.c:1293
#, c-format
msgid "Couldn't init profile successfully (error: %ld).\n"
msgstr "Không thể khởi tạo profile thành công (lỗi: %ld).\n"
-#: misc/mke2fs.c:1330
+#: misc/mke2fs.c:1333
#, c-format
msgid "invalid block size - %s"
msgstr "cỡ khối không hợp lệ — %s"
-#: misc/mke2fs.c:1334
+#: misc/mke2fs.c:1337
#, c-format
msgid "Warning: blocksize %d not usable on most systems.\n"
msgstr "Cảnh báo: kích cỡ khối %d vô ích trên phần lớn hệ thống.\n"
-#: misc/mke2fs.c:1350
+#: misc/mke2fs.c:1353
#, c-format
msgid "invalid cluster size - %s"
msgstr "cỡ nhóm không hợp lệ — %s"
-#: misc/mke2fs.c:1362
+#: misc/mke2fs.c:1365
msgid "Illegal number for blocks per group"
msgstr "Số cấm cho số khối trên mỗi nhóm"
-#: misc/mke2fs.c:1367
+#: misc/mke2fs.c:1370
msgid "blocks per group must be multiple of 8"
msgstr "số khối trên mỗi nhóm phải là bội số cho 8"
-#: misc/mke2fs.c:1375
+#: misc/mke2fs.c:1378
msgid "Illegal number for flex_bg size"
msgstr "Kích cỡ flex_bg có số không được phép"
-#: misc/mke2fs.c:1381
+#: misc/mke2fs.c:1384
msgid "flex_bg size must be a power of 2"
msgstr "Kích cỡ flex_bg phải là lũy thừa 2"
-#: misc/mke2fs.c:1391
+#: misc/mke2fs.c:1394
#, c-format
msgid "invalid inode ratio %s (min %d/max %d)"
msgstr "tỷ lệ nút thông tin không hợp lệ %s (thiểu %d/đa %d)"
-#: misc/mke2fs.c:1401
+#: misc/mke2fs.c:1404
#, c-format
-msgid ""
-"Warning: -K option is deprecated and should not be used anymore. Use '-E "
-"nodiscard' extended option instead!\n"
-msgstr ""
-"Cảnh báo: tuỳ chọn -K không được tán thành và có lẽ không còn bao giờ được "
-"sử dụng nữa. Sử dụng tuỳ chọn mở rộng '-E nodiscard' để thay thế!\n"
+msgid "Warning: -K option is deprecated and should not be used anymore. Use '-E nodiscard' extended option instead!\n"
+msgstr "Cảnh báo: tuỳ chọn -K không được tán thành và có lẽ không còn bao giờ được sử dụng nữa. Sử dụng tuỳ chọn mở rộng “-E nodiscard” để thay thế!\n"
-#: misc/mke2fs.c:1415
+#: misc/mke2fs.c:1418
msgid "in malloc for bad_blocks_filename"
msgstr ""
"trong hàm cấp phát bộ nhớ malloc cho tên tập tin khối sai\n"
-"« bad_blocks_filename »"
+"“bad_blocks_filename”"
-#: misc/mke2fs.c:1425
+#: misc/mke2fs.c:1428
#, c-format
msgid "invalid reserved blocks percent - %s"
msgstr "phần trăm khối được dành riêng không hợp lệ — %s"
-#: misc/mke2fs.c:1443
+#: misc/mke2fs.c:1446
#, c-format
msgid "bad revision level - %s"
msgstr "cấp bản sửa đổi sai — %s"
-#: misc/mke2fs.c:1455
+#: misc/mke2fs.c:1458
#, c-format
msgid "invalid inode size - %s"
msgstr "kích cỡ nút thông tin không hợp lệ — %s"
-#: misc/mke2fs.c:1475
+#: misc/mke2fs.c:1478
#, c-format
msgid "bad num inodes - %s"
msgstr "số (num) nút thông tin sai — %s"
-#: misc/mke2fs.c:1492
+#: misc/mke2fs.c:1495
msgid "The -t option may only be used once"
msgstr "tùy chọn -t chỉ sử dụng một lần"
-#: misc/mke2fs.c:1500
+#: misc/mke2fs.c:1503
msgid "The -T option may only be used once"
msgstr "Tùy chọn -T chỉ sử dụng một lần"
-#: misc/mke2fs.c:1550 misc/mke2fs.c:2508
+#: misc/mke2fs.c:1553 misc/mke2fs.c:2514
#, c-format
msgid "while trying to open journal device %s\n"
msgstr "trong khi thử mở thiết bị nhật ký %s\n"
-#: misc/mke2fs.c:1556
+#: misc/mke2fs.c:1559
#, c-format
msgid "Journal dev blocksize (%d) smaller than minimum blocksize %d\n"
msgstr "Kích cỡ của thiết bị nhật ký (%d) nhỏ hơn kích cỡ tối thiểu %d\n"
-#: misc/mke2fs.c:1562
+#: misc/mke2fs.c:1565
#, c-format
msgid "Using journal device's blocksize: %d\n"
msgstr "Đang dùng kích cỡ khối của thiết bị nhật ký: %d\n"
-#: misc/mke2fs.c:1573
+#: misc/mke2fs.c:1576
#, c-format
msgid "invalid blocks '%s' on device '%s'"
-msgstr "khối '%s' sai trên thiết bị '%s'"
+msgstr "khối “%s” sai trên thiết bị “%s”"
-#: misc/mke2fs.c:1583
+#: misc/mke2fs.c:1586
msgid "filesystem"
msgstr "hệ thống tập tin"
-#: misc/mke2fs.c:1596 resize/main.c:374
+#: misc/mke2fs.c:1599 resize/main.c:355
msgid "while trying to determine filesystem size"
msgstr "trong khi thử quyết định kích cỡ của hệ thống tập tin"
-#: misc/mke2fs.c:1602
+#: misc/mke2fs.c:1605
msgid ""
"Couldn't determine device size; you must specify\n"
"the size of the filesystem\n"
"Không thể quyết định kích cỡ của thiết bị;\n"
"bạn cần phải xác định kích cỡ của hệ thống tập tin\n"
-#: misc/mke2fs.c:1609
+#: misc/mke2fs.c:1612
msgid ""
"Device size reported to be zero. Invalid partition specified, or\n"
"\tpartition table wasn't reread after running fdisk, due to\n"
"\tdo phân vùng đã sửa đổi đang bận và đang được dùng.\n"
"Có lẽ bạn cần phải khởi động lại máy để đọc lại bảng phân vùng.\n"
-#: misc/mke2fs.c:1626
+#: misc/mke2fs.c:1629
msgid "Filesystem larger than apparent device size."
msgstr "Hệ thống tập tin lớn hơn kích cỡ thiết bị biểu kiến."
-#: misc/mke2fs.c:1646
+#: misc/mke2fs.c:1649
#, c-format
msgid "Failed to parse fs types list\n"
msgstr "Lỗi phân tích danh sách các kiểu hệ thống tập tin\n"
-#: misc/mke2fs.c:1700
+#: misc/mke2fs.c:1703
#, c-format
msgid ""
"%s: Size of device (0x%llx blocks) %s too big to be expressed\n"
"%s: thiết bị (0x%llx blocks) %s có kích cỡ quá lớn để biểu diễn theo 32 bit\n"
"\tdùng kích cỡ khối của %d.\n"
-#: misc/mke2fs.c:1716
+#: misc/mke2fs.c:1719
msgid "fs_types for mke2fs.conf resolution: "
msgstr "fs_types để giải quyết mke2fs.conf: "
-#: misc/mke2fs.c:1723
+#: misc/mke2fs.c:1726
#, c-format
msgid "Filesystem features not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng hệ thống tập tin không được hỗ trợ trên hệ thống tập tin\n"
"bản sửa đổi 0\n"
-#: misc/mke2fs.c:1730
+#: misc/mke2fs.c:1733
#, c-format
msgid "Sparse superblocks not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng siêu khối thưa thớt không được hỗ trợ\n"
"trên hệ thống tập tin bản sửa đổi 0\n"
-#: misc/mke2fs.c:1742
+#: misc/mke2fs.c:1745
#, c-format
msgid "Journals not supported with revision 0 filesystems\n"
msgstr ""
"Tính năng nhật ký không được hỗ trợ trên hệ thống tập tin\n"
"bản sửa đổi 0\n"
-#: misc/mke2fs.c:1756
+#: misc/mke2fs.c:1759
#, c-format
msgid "invalid reserved blocks percent - %lf"
msgstr "phần trăm khối được dành riêng không hợp lệ -%lf"
-#: misc/mke2fs.c:1772
+#: misc/mke2fs.c:1775
#, c-format
msgid ""
"The resize_inode and meta_bg features are not compatible.\n"
"They can not be both enabled simultaneously.\n"
msgstr ""
-"Hai tính năng thay đổi kích cỡ nút (resize_inode) và siêu nền (meta_bg) "
-"không tương thích với nhau.\n"
+"Hai tính năng thay đổi kích cỡ nút (resize_inode) và siêu nền (meta_bg) không tương thích với nhau.\n"
"Do đó không thể hiệu lực đồng thời cả hai.\n"
-#: misc/mke2fs.c:1789
+#: misc/mke2fs.c:1792
msgid "while trying to determine hardware sector size"
msgstr "trong khi thử quyết định kích cỡ của rãnh ghi phần cứng"
-#: misc/mke2fs.c:1795
+#: misc/mke2fs.c:1798
msgid "while trying to determine physical sector size"
msgstr "trong khi thử quyết định kích cỡ của rãnh ghi vật lý"
-#: misc/mke2fs.c:1828
+#: misc/mke2fs.c:1831
msgid "while setting blocksize; too small for device\n"
msgstr "trong khi lập kích cỡ khối ; quá nhỏ đối với thiết bị\n"
-#: misc/mke2fs.c:1833
+#: misc/mke2fs.c:1836
#, c-format
-msgid ""
-"Warning: specified blocksize %d is less than device physical sectorsize %d\n"
-msgstr ""
-"Cảnh báo: kích cỡ khối %d đã ghi rõ vẫn nhỏ hơn kích cỡ rãnh ghi vật lý của "
-"thiết bị %d\n"
+msgid "Warning: specified blocksize %d is less than device physical sectorsize %d\n"
+msgstr "Cảnh báo: kích cỡ khối %d đã ghi rõ vẫn nhỏ hơn kích cỡ rãnh ghi vật lý của thiết bị %d\n"
-#: misc/mke2fs.c:1864
+#: misc/mke2fs.c:1867
#, c-format
msgid "warning: Unable to get device geometry for %s\n"
msgstr "cảnh báo: không thể lấy dạng hình thiết bị cho %s\n"
-#: misc/mke2fs.c:1867
+#: misc/mke2fs.c:1870
#, c-format
msgid "%s alignment is offset by %lu bytes.\n"
msgstr "Khoảng sắp hàng %s bị bù theo %lu byte.\n"
-#: misc/mke2fs.c:1869
+#: misc/mke2fs.c:1872
#, c-format
-msgid ""
-"This may result in very poor performance, (re)-partitioning suggested.\n"
-msgstr ""
-"Trường hợp này có thể gây ra hiệu suất rất yếu thì khuyên bạn phân vùng "
-"(lại).\n"
+msgid "This may result in very poor performance, (re)-partitioning suggested.\n"
+msgstr "Trường hợp này có thể gây ra hiệu suất rất yếu thì khuyên bạn phân vùng (lại).\n"
-#: misc/mke2fs.c:1880
+#: misc/mke2fs.c:1883
#, c-format
msgid "%d-byte blocks too big for system (max %d)"
msgstr "Khối %d-byte quá lớn đối với hệ thống (tối đa %d)"
-#: misc/mke2fs.c:1884
+#: misc/mke2fs.c:1887
#, c-format
-msgid ""
-"Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
+msgid "Warning: %d-byte blocks too big for system (max %d), forced to continue\n"
msgstr ""
"Cảnh báo: khối %d-byte quá lớn đối với hệ thống (tối đa %d)\n"
"nên bị buộc tiếp tục\n"
-#: misc/mke2fs.c:1920
+#: misc/mke2fs.c:1925
msgid "reserved online resize blocks not supported on non-sparse filesystem"
msgstr ""
"khối thay đổi kích cỡ trực tuyến được dành riêng không được hỗ trợ\n"
"trên hệ thống tập tin không thưa thớt"
-#: misc/mke2fs.c:1929
+#: misc/mke2fs.c:1934
msgid "blocks per group count out of range"
msgstr "số khối trên mỗi nhóm ở ngoài phạm vi"
-#: misc/mke2fs.c:1944
+#: misc/mke2fs.c:1949
msgid "Flex_bg feature not enabled, so flex_bg size may not be specified"
msgstr "Chưa hiệu lực tính năng Flex_bg thì không thể ghi rõ kích cỡ Flex_bg"
-#: misc/mke2fs.c:1956
+#: misc/mke2fs.c:1961
#, c-format
msgid "invalid inode size %d (min %d/max %d)"
msgstr "kích cỡ nút thông tin không hợp lệ %d (thiểu %d/đa %d)"
-#: misc/mke2fs.c:1974
+#: misc/mke2fs.c:1979
#, c-format
msgid "too many inodes (%llu), raise inode ratio?"
msgstr "quá nhiều nút thông tin (%llu), tăng tỷ lệ nút thông tin không?"
-#: misc/mke2fs.c:1981
+#: misc/mke2fs.c:1986
#, c-format
msgid "too many inodes (%llu), specify < 2^32 inodes"
msgstr "quá nhiều nút thông tin (%llu), xác định <2³² nút thông tin"
-#: misc/mke2fs.c:1995
+#: misc/mke2fs.c:2000
#, c-format
msgid ""
"inode_size (%u) * inodes_count (%u) too big for a\n"
"\ttỷ_lệ_nút_thông_tin (-i) cao hơn hay số lượng nút thông tin\n"
"(-N) thấp hơn\n"
-#: misc/mke2fs.c:2114
+#: misc/mke2fs.c:2119
#, c-format
msgid ""
"Overwriting existing filesystem; this can be undone using the command:\n"
" e2undo %s %s\n"
"\n"
-#: misc/mke2fs.c:2128
+#: misc/mke2fs.c:2133
msgid "while trying to setup undo file\n"
-msgstr "trong khi tử cài đặt tệp tin undo\n"
+msgstr "trong khi thử cài đặt tập tin undo\n"
-#: misc/mke2fs.c:2154
+#: misc/mke2fs.c:2159
msgid "Discarding device blocks: "
msgstr "Bỏ qua khối thiết bị: "
-#: misc/mke2fs.c:2170
+#: misc/mke2fs.c:2176
msgid "failed - "
-msgstr "gặp lỗi -"
+msgstr "gặp lỗi - "
# Item in the main menu to select this package
-#: misc/mke2fs.c:2277
+#: misc/mke2fs.c:2283
msgid "while setting up superblock"
msgstr "trong khi thiết lập siêu khối"
-#: misc/mke2fs.c:2286
+#: misc/mke2fs.c:2292
#, c-format
msgid "Discard succeeded and will return 0s - skipping inode table wipe\n"
msgstr "Loại bỏ thành công và sẽ trả về 0 - bỏ qua xoá bảng nút\n"
-#: misc/mke2fs.c:2369
+#: misc/mke2fs.c:2375
#, c-format
msgid "unknown os - %s"
msgstr "hệ điều hành lạ — %s"
-#: misc/mke2fs.c:2421
+#: misc/mke2fs.c:2427
#, c-format
msgid "Allocating group tables: "
msgstr "Phân bổ bảng nhóm: "
-#: misc/mke2fs.c:2425
+#: misc/mke2fs.c:2431
msgid "while trying to allocate filesystem tables"
msgstr "trong khi thử cấp phát các bảng hệ thống tập tin"
-#: misc/mke2fs.c:2434
+#: misc/mke2fs.c:2440
msgid ""
"\n"
"\twhile converting subcluster bitmap"
"\n"
"\ttrong khi chuyển đổi mảng ảnh liên cung con"
-#: misc/mke2fs.c:2477
+#: misc/mke2fs.c:2483
#, c-format
msgid "while zeroing block %llu at end of filesystem"
msgstr "trong khi điền số không khối %llu tại kết thúc của hệ thống tập tin"
-#: misc/mke2fs.c:2490
+#: misc/mke2fs.c:2496
msgid "while reserving blocks for online resize"
msgstr "trong khi dành riêng các khối để thay đổi kích cỡ trực tuyến"
-#: misc/mke2fs.c:2501 misc/tune2fs.c:640
+#: misc/mke2fs.c:2507 misc/tune2fs.c:640
msgid "journal"
msgstr "nhật ký"
-#: misc/mke2fs.c:2513
+#: misc/mke2fs.c:2519
#, c-format
msgid "Adding journal to device %s: "
msgstr "Đang thêm nhật ký vào thiết bị %s: "
-#: misc/mke2fs.c:2520
+#: misc/mke2fs.c:2526
#, c-format
msgid ""
"\n"
"\n"
"trong khi thử thêm nhật ký vào thiết bị %s"
-#: misc/mke2fs.c:2525 misc/mke2fs.c:2557 misc/tune2fs.c:669 misc/tune2fs.c:683
+#: misc/mke2fs.c:2531 misc/mke2fs.c:2563 misc/tune2fs.c:669 misc/tune2fs.c:683
#, c-format
msgid "done\n"
msgstr "hoàn tất\n"
-#: misc/mke2fs.c:2534
+#: misc/mke2fs.c:2540
#, c-format
msgid "Skipping journal creation in super-only mode\n"
msgstr "Đang bỏ qua bước tạo nhật ký trong chế độ chỉ siêu\n"
-#: misc/mke2fs.c:2545
+#: misc/mke2fs.c:2551
#, c-format
msgid "Creating journal (%u blocks): "
msgstr "Đang tạo nhật ký (%u khối): "
-#: misc/mke2fs.c:2553
+#: misc/mke2fs.c:2559
msgid ""
"\n"
"\twhile trying to create journal"
"\n"
"trong khi thử tạo nhật ký"
-#: misc/mke2fs.c:2564 misc/tune2fs.c:446
+#: misc/mke2fs.c:2570 misc/tune2fs.c:446
#, c-format
msgid ""
"\n"
"\n"
"Lỗi khi bật đặc tính bảo vệ đa gắn"
-#: misc/mke2fs.c:2569
+#: misc/mke2fs.c:2575
#, c-format
msgid "Multiple mount protection is enabled with update interval %d seconds.\n"
msgstr "Bảo vệ đa gắn được bật với nhịp cập nhật là %d giây.\n"
-#: misc/mke2fs.c:2582
+#: misc/mke2fs.c:2588
#, c-format
msgid "Writing superblocks and filesystem accounting information: "
msgstr "Đang ghi siêu khối và thông tin kế toán hệ thống tập tin: "
-#: misc/mke2fs.c:2589
+#: misc/mke2fs.c:2595
#, c-format
msgid ""
"\n"
"\n"
"Cảnh báo: gặp khó khăn trong việc ghi ra các siêu khối."
-#: misc/mke2fs.c:2591
+#: misc/mke2fs.c:2597
#, c-format
msgid ""
"done\n"
#: misc/mklost+found.c:50
#, c-format
msgid "Usage: mklost+found\n"
-msgstr "Sử dụng: mklost+found\n"
+msgstr "Cách dùng: mklost+found\n"
#: misc/partinfo.c:41
#, c-format
"For example: %s /dev/hda\n"
"\n"
msgstr ""
-"Sử dụng: %s thiết bị...\n"
+"Cách dùng: %s thiết bị...\n"
"\n"
"In ra thông tin về phân vùng đối với mỗi thiết bị được cho.\n"
"Ví dụ: %s /dev/hda\n"
msgid ""
"Usage: %s [-c max_mounts_count] [-e errors_behavior] [-g group]\n"
"\t[-i interval[d|m|w]] [-j] [-J journal_options] [-l]\n"
-"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p "
-"mmp_update_interval]\n"
+"\t[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]\n"
"\t[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]\n"
"\t[-M last_mounted_dir] [-O [^]feature[,...]]\n"
"\t[-E extended-option[,...]] [-T last_check_time] [-U UUID]\n"
"\t[ -I new_inode_size ] device\n"
msgstr ""
-"Sử dụng: %s [-c số_đếm_lắp_tối_đa] [-e ứng_xử_lỗi] [-g nhóm]\n"
+"Cách dùng: %s [-c số_đếm_lắp_tối_đa] [-e ứng_xử_lỗi] [-g nhóm]\n"
"\t[-i khoảng[d|m|w]] [-j] [-J tùy_chọn_nhật_ký] [-l]\n"
-"\t[-m phần_trăm_khối_dành_riêng] [-o [^]tùy_chọn_lắp[,...]] [-p "
-"nhịp_cập_nhật_mmp]\n"
-"\t[-r số_đếm_khối_dành_riêng] [-u người_dùng] [-C số_đếm_lắp] [-L "
-"nhãn_phân_vùng]\n"
+"\t[-m phần_trăm_khối_dành_riêng] [-o [^]tùy_chọn_lắp[,...]] [-p nhịp_cập_nhật_mmp]\n"
+"\t[-r số_đếm_khối_dành_riêng] [-u người_dùng] [-C số_đếm_lắp] [-L nhãn_phân_vùng]\n"
"\t[-M thư_mục_lắp_cuối] [-O [^]tính_năng[,...]]\n"
"\t[-E tùy_chọn_mở_rộng[,...] [-T giờ_kiểm_tra_cuối] [-U UUID]\n"
"\t[-l cỡ_nút_mới] thiết_bị\n"
#: misc/tune2fs.c:396
#, c-format
msgid "Clearing filesystem feature '%s' not supported.\n"
-msgstr "Tính năng xoá sạch hệ thống tập tin « %s » không được hỗ trợ.\n"
+msgstr "Tính năng xoá sạch hệ thống tập tin “%s” không được hỗ trợ.\n"
#: misc/tune2fs.c:402
#, c-format
msgid "Setting filesystem feature '%s' not supported.\n"
-msgstr "Tính năng đặt hệ thống tập tin « %s » không được hỗ trợ.\n"
+msgstr "Tính năng đặt hệ thống tập tin “%s” không được hỗ trợ.\n"
#: misc/tune2fs.c:411
msgid ""
"read-only.\n"
msgstr ""
"Tính năng bảo vệ chống đa gắn không thể\n"
-"Ä\91ặt Ä\91ược nếu há»\87 thá»\91ng tá»\87p tin đã được gắn kết\n"
+"Ä\91ặt Ä\91ược nếu há»\87 thá»\91ng táºp tin đã được gắn kết\n"
"hay chỉ cho đọc.\n"
#: misc/tune2fs.c:456
"be disabled if the filesystem is readonly.\n"
msgstr ""
"Đặc tính kỹ thuật bảo vệ đa gắn không thể\n"
-"Ä\91ược tắt nếu há»\87 thá»\91ng tá»\87p tin chỉ đọc.\n"
+"Ä\91ược tắt nếu há»\87 thá»\91ng táºp tin chỉ đọc.\n"
#: misc/tune2fs.c:473
msgid "Error while reading bitmaps\n"
"Warning: '^quota' option overrides '-Q'arguments.\n"
msgstr ""
"\n"
-"Cảnh báo: tuỳ chọn '^quota' sẽ dè lên đối số '-Q'.\n"
+"Cảnh báo: tuỳ chọn “^quota” sẽ dè lên đối số “-Q”.\n"
#: misc/tune2fs.c:635
msgid "The filesystem already has a journal.\n"
"\n"
"trong khi thử tạo tập tin nhật ký"
-#: misc/tune2fs.c:763
+#: misc/tune2fs.c:754
msgid "Couldn't allocate memory to parse quota options!\n"
msgstr "Không thể cấp phát bộ nhớ để phân tách các tùy chọn hạn ngạch!\n"
-#: misc/tune2fs.c:785
+#: misc/tune2fs.c:776
msgid ""
"\n"
"Bad quota options specified.\n"
"\n"
-"Following valid quota options are available (pass by separating with "
-"comma):\n"
+"Following valid quota options are available (pass by separating with comma):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
"Đã chỉ định tuỳ chọn hạn ngạch sai.\n"
"\n"
-"Sau đây là danh sách các tuỳ chọn hạn ngạch được dùng (chấp nhận ngăn cách "
-"bằng dấu phẩy):\n"
+"Sau đây là danh sách các tuỳ chọn hạn ngạch được dùng (chấp nhận ngăn cách bằng dấu phẩy):\n"
"\t[^]usrquota\n"
"\t[^]grpquota\n"
"\n"
"\n"
-#: misc/tune2fs.c:846
+#: misc/tune2fs.c:837
#, c-format
msgid "Couldn't parse date/time specifier: %s"
msgstr "Không thể phân tách toán tử ngày/giờ: %s"
-#: misc/tune2fs.c:870 misc/tune2fs.c:883
+#: misc/tune2fs.c:861 misc/tune2fs.c:874
#, c-format
msgid "bad mounts count - %s"
-msgstr "số đếm lắp sai — %s"
+msgstr "số đếm gắn sai — %s"
-#: misc/tune2fs.c:899
+#: misc/tune2fs.c:890
#, c-format
msgid "bad error behavior - %s"
msgstr "ứng xử lỗi sai — %s"
-#: misc/tune2fs.c:926
+#: misc/tune2fs.c:917
#, c-format
msgid "bad gid/group name - %s"
msgstr "GID/tên nhóm sai — %s"
-#: misc/tune2fs.c:959
+#: misc/tune2fs.c:950
#, c-format
msgid "bad interval - %s"
-msgstr "khoảng sai - %s"
+msgstr "sai nhịp - %s"
-#: misc/tune2fs.c:988
+#: misc/tune2fs.c:979
#, c-format
msgid "bad reserved block ratio - %s"
msgstr "tỷ lệ khối dành riêng sai — %s"
-#: misc/tune2fs.c:1003
+#: misc/tune2fs.c:994
msgid "-o may only be specified once"
-msgstr "có thể xác định tùy chọn « -o » chỉ một lần"
+msgstr "có thể đưa ra tùy chọn “-o” chỉ một lần"
-#: misc/tune2fs.c:1012
+#: misc/tune2fs.c:1003
msgid "-O may only be specified once"
-msgstr "có thể xác định tùy chọn « -O » chỉ một lần"
+msgstr "có thể đưa ra tùy chọn “-O” chỉ một lần"
-#: misc/tune2fs.c:1027
+#: misc/tune2fs.c:1018
#, c-format
msgid "bad reserved blocks count - %s"
msgstr "số đếm khối dành riêng sai — %s"
-#: misc/tune2fs.c:1056
+#: misc/tune2fs.c:1047
#, c-format
msgid "bad uid/user name - %s"
msgstr "UID/tên người dùng sai — %s"
-#: misc/tune2fs.c:1073
+#: misc/tune2fs.c:1064
#, c-format
msgid "bad inode size - %s"
msgstr "kích cỡ nút sai — %s"
-#: misc/tune2fs.c:1080
+#: misc/tune2fs.c:1071
#, c-format
msgid "Inode size must be a power of two- %s"
msgstr "Kích cỡ nút phải là lũy thừa 2 — %s"
-#: misc/tune2fs.c:1174
+#: misc/tune2fs.c:1165
#, c-format
msgid "mmp_update_interval too big: %lu\n"
msgstr "mmp_update_interval quá lớn (%lu)\n"
-#: misc/tune2fs.c:1179
+#: misc/tune2fs.c:1170
#, c-format
msgid "Setting multiple mount protection update interval to %lu second\n"
-msgid_plural ""
-"Setting multiple mount protection update interval to %lu seconds\n"
-msgstr[0] ""
-"Đang đặt khoảng thời gian cập nhật bảo vệ chống đa lắp thành %lu giây\n"
+msgid_plural "Setting multiple mount protection update interval to %lu seconds\n"
+msgstr[0] "Đang đặt khoảng thời gian cập nhật bảo vệ chống đa lắp thành %lu giây\n"
-#: misc/tune2fs.c:1202
+#: misc/tune2fs.c:1193
#, c-format
msgid "Invalid RAID stride: %s\n"
msgstr "Tham số stride RAID không hợp lệ: %s\n"
-#: misc/tune2fs.c:1217
+#: misc/tune2fs.c:1208
#, c-format
msgid "Invalid RAID stripe-width: %s\n"
msgstr "Tham số chiều rộng sọc (stripe-width) RAID không hợp lệ: %s\n"
-#: misc/tune2fs.c:1232
+#: misc/tune2fs.c:1223
#, c-format
msgid "Invalid hash algorithm: %s\n"
msgstr "Thuật toán tạo mẫu duy nhất vẫn không hợp lệ: %s\n"
-#: misc/tune2fs.c:1238
+#: misc/tune2fs.c:1229
#, c-format
msgid "Setting default hash algorithm to %s (%d)\n"
msgstr "Đang đặt thuật toán tạo mẫu duy nhất thành %s (%d)\n"
-#: misc/tune2fs.c:1257
+#: misc/tune2fs.c:1248
#, c-format
msgid ""
"\n"
"\t^test_fs\n"
msgstr ""
"\n"
-"Sai xác định tùy chọn.\n"
+"Chỉ định tùy chọn sai.\n"
"\n"
"Các tùy chọn mở rộng định giới bằng dấu phẩy, có thể chấp nhận\n"
-"\tđối số được gán với dấu bằng « = ».\n"
+"\tđối số được gán với dấu bằng “=”.\n"
"\n"
"Tùy chọn đã mở rộng hợp lệ:\n"
"\tclear_mmp\n"
"\ttest_fs\n"
"\t^test_fs\n"
-#: misc/tune2fs.c:1723
+#: misc/tune2fs.c:1714
msgid "Failed to read inode bitmap\n"
-msgstr "Không thể đọc sơ đồ inode\n"
+msgstr "Không thể đọc ánh xạ inode\n"
-#: misc/tune2fs.c:1728
+#: misc/tune2fs.c:1719
msgid "Failed to read block bitmap\n"
msgstr "Lỗi khi đọc mảng khối\n"
-#: misc/tune2fs.c:1745 resize/resize2fs.c:784
+#: misc/tune2fs.c:1736 resize/resize2fs.c:802
msgid "blocks to be moved"
msgstr "khối cần di chuyển"
-#: misc/tune2fs.c:1748
+#: misc/tune2fs.c:1739
msgid "Failed to allocate block bitmap when increasing inode size\n"
msgstr "Lỗi cấp phát ảnh mảng khối khi tăng kích cỡ inode\n"
-#: misc/tune2fs.c:1754
+#: misc/tune2fs.c:1745
msgid "Not enough space to increase inode size \n"
msgstr "Không đủ sức chứa để tăng kích cỡ inode\n"
-#: misc/tune2fs.c:1759
+#: misc/tune2fs.c:1750
msgid "Failed to relocate blocks during inode resize \n"
msgstr "Lỗi định vị lại khối trong khi thay đổi kích cỡ inode \n"
-#: misc/tune2fs.c:1791
+#: misc/tune2fs.c:1782
msgid ""
"Error in resizing the inode size.\n"
"Run e2undo to undo the file system changes. \n"
msgstr ""
"Gặp lỗi khi thay đổi kích cỡ nút.\n"
-"Hãy chạy lệnh « e2undo » để hủy các bước thay đổi hệ thống tập tin. \n"
+"Hãy chạy lệnh “e2undo” để hủy các bước thay đổi hệ thống tập tin. \n"
-#: misc/tune2fs.c:1818
+#: misc/tune2fs.c:1809
msgid "Couldn't allocate memory for tdb filename\n"
msgstr "Không thể cấp phát bộ nhớ cho tên tập tin tdb\n"
-#: misc/tune2fs.c:1840
+#: misc/tune2fs.c:1831
#, c-format
msgid "while trying to delete %s"
msgstr "trong khi thử xoá %s"
-#: misc/tune2fs.c:1850
+#: misc/tune2fs.c:1841
#, c-format
msgid ""
"To undo the tune2fs operation please run the command\n"
" e2undo %s %s\n"
"\n"
-#: misc/tune2fs.c:1919
+#: misc/tune2fs.c:1910
#, c-format
msgid ""
"MMP block magic is bad. Try to fix it by running:\n"
"'e2fsck -f %s'\n"
msgstr ""
"Khối màu nhiệm MMP sai. Thử sửa bằng cách chạy lệnh:\n"
-"'e2fsck -f %s'\n"
+"“e2fsck -f %s”\n"
-#: misc/tune2fs.c:1937
+#: misc/tune2fs.c:1928
#, c-format
msgid "The inode size is already %lu\n"
msgstr "Kích cỡ nút thông tin đã %lu\n"
-#: misc/tune2fs.c:1943
+#: misc/tune2fs.c:1934
#, c-format
msgid "Shrinking the inode size is not supported\n"
msgstr "Không hỗ trợ tính năng thu nhỏ kích cỡ nút thông tin\n"
-#: misc/tune2fs.c:1990
+#: misc/tune2fs.c:1981
#, c-format
msgid "Setting maximal mount count to %d\n"
msgstr "Đang đặt số đếm lắp tối đa thành %d\n"
-#: misc/tune2fs.c:1996
+#: misc/tune2fs.c:1987
#, c-format
msgid "Setting current mount count to %d\n"
msgstr "Đang đặt số đếm lắp hiện thời thành %d\n"
-#: misc/tune2fs.c:2001
+#: misc/tune2fs.c:1992
#, c-format
msgid "Setting error behavior to %d\n"
msgstr "Đang đặt ứng xử lỗi thành %d\n"
-#: misc/tune2fs.c:2006
+#: misc/tune2fs.c:1997
#, c-format
msgid "Setting reserved blocks gid to %lu\n"
msgstr "Đang đặt GID khối dành riêng thành %lu\n"
-#: misc/tune2fs.c:2011
+#: misc/tune2fs.c:2002
#, c-format
msgid "interval between checks is too big (%lu)"
msgstr "khoảng giữa hai lần kiểm tra quá lớn (%lu)"
-#: misc/tune2fs.c:2018
+#: misc/tune2fs.c:2009
#, c-format
msgid "Setting interval between checks to %lu seconds\n"
msgstr "Đang đặt khoảng giữa hai lần kiểm tra thành %lu giây\n"
-#: misc/tune2fs.c:2025
+#: misc/tune2fs.c:2016
#, c-format
msgid "Setting reserved blocks percentage to %g%% (%llu blocks)\n"
msgstr "Đang đặt phần trăm khối dự trữ thành %g%% (%llu khối)\n"
-#: misc/tune2fs.c:2031
+#: misc/tune2fs.c:2022
#, c-format
msgid "reserved blocks count is too big (%llu)"
msgstr "số lượng khối dự trữ quá lớn (%llu)"
-#: misc/tune2fs.c:2038
+#: misc/tune2fs.c:2029
#, c-format
msgid "Setting reserved blocks count to %llu\n"
msgstr "Đang đặt số lượng khối dự trữ thành %llu\n"
-#: misc/tune2fs.c:2044
+#: misc/tune2fs.c:2035
msgid ""
"\n"
"The filesystem already has sparse superblocks.\n"
"\n"
"Hệ thống tập tin đã có siêu khối thưa thớt.\n"
-#: misc/tune2fs.c:2051
+#: misc/tune2fs.c:2042
#, c-format
msgid ""
"\n"
"\n"
"Đặt cờ siêu khối thưa thớt. %s"
-#: misc/tune2fs.c:2056
+#: misc/tune2fs.c:2047
msgid ""
"\n"
"Clearing the sparse superflag not supported.\n"
"\n"
"Tính năng xoá sạch siêu cờ sparse không được hỗ trợ.\n"
-#: misc/tune2fs.c:2064
+#: misc/tune2fs.c:2055
#, c-format
msgid "Setting time filesystem last checked to %s\n"
msgstr "Đang đặt giờ kiểm tra hệ thống tập tin lần cuối cùng thành %s\n"
-#: misc/tune2fs.c:2070
+#: misc/tune2fs.c:2061
#, c-format
msgid "Setting reserved blocks uid to %lu\n"
msgstr "Đang đặt UID khối dành riêng thành %lu\n"
-#: misc/tune2fs.c:2102
+#: misc/tune2fs.c:2093
msgid "Error in using clear_mmp. It must be used with -f\n"
msgstr "Lỗi không sử dụng clear_mmp. Nó phải được sử dụng cùng với -f\n"
-#: misc/tune2fs.c:2120
-msgid ""
-"The quota feature may only be changed when the filesystem is unmounted.\n"
-msgstr ""
-"Đặc tính hạn ngạch chỉ có thể được thay đổi khi hệ thống tập tin không được "
-"gắn kết.\n"
+#: misc/tune2fs.c:2111
+msgid "The quota feature may only be changed when the filesystem is unmounted.\n"
+msgstr "Đặc tính hạn ngạch chỉ có thể được thay đổi khi hệ thống tập tin không được gắn kết.\n"
-#: misc/tune2fs.c:2153
+#: misc/tune2fs.c:2144
msgid "Invalid UUID format\n"
msgstr "Định dạng UUID không hợp lệ\n"
-#: misc/tune2fs.c:2166
+#: misc/tune2fs.c:2157
msgid "The inode size may only be changed when the filesystem is unmounted.\n"
-msgstr ""
-"Kích cỡ nút chỉ có thể thay đổi khi hệ thống tập tin không được gắn kết.\n"
+msgstr "Kích cỡ nút chỉ có thể thay đổi khi hệ thống tập tin không được gắn kết.\n"
-#: misc/tune2fs.c:2174
+#: misc/tune2fs.c:2165
msgid ""
"Changing the inode size not supported for filesystems with the flex_bg\n"
"feature enabled.\n"
-msgstr ""
-"Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ "
-"thống tập tin đã bật tính năng « flex_bg ».\n"
+msgstr "Chức năng thay đổi kích cỡ nút thông tin không phải được hỗ trợ đối với hệ thống tập tin đã bật tính năng “flex_bg”.\n"
-#: misc/tune2fs.c:2187
+#: misc/tune2fs.c:2178
#, c-format
msgid "Setting inode size %lu\n"
msgstr "Đang đặt kích cỡ nút %lu\n"
-#: misc/tune2fs.c:2190
+#: misc/tune2fs.c:2181
#, c-format
msgid "Failed to change inode size\n"
msgstr "Lỗi thay đổi kích thước của nút\n"
-#: misc/tune2fs.c:2201
+#: misc/tune2fs.c:2192
#, c-format
msgid "Setting stride size to %d\n"
msgstr "Đang đặt kích cỡ stride thành %d\n"
-#: misc/tune2fs.c:2206
+#: misc/tune2fs.c:2197
#, c-format
msgid "Setting stripe width to %d\n"
msgstr "Đang đặt chiều rộng sọc (stripe width) thành %d\n"
-#: misc/tune2fs.c:2213
+#: misc/tune2fs.c:2204
#, c-format
msgid "Setting extended default mount options to '%s'\n"
-msgstr "Đang đặt tuỳ chọn gắn mặc định mở rộng thành '%s'\n"
+msgstr "Đang đặt tuỳ chọn gắn mặc định mở rộng thành “%s”\n"
#: misc/util.c:74
msgid "Proceed anyway? (y,n) "
"The device apparently does not exist; did you specify it correctly?\n"
msgstr ""
"\n"
-"Có vẻ là thiết bị không tồn tại; bạn có xác định đúng chưa?\n"
+"Có vẻ là thiết bị không tồn tại; bạn có đưa ra đúng chưa?\n"
#: misc/util.c:103
#, c-format
#: misc/util.c:154
msgid "mke2fs forced anyway. Hope /etc/mtab is incorrect.\n"
-msgstr "Tiến trình mke2fs vẫn còn bị ép buộc. Mong « /etc/mtab » không đúng.\n"
+msgstr "Tiến trình mke2fs vẫn còn bị ép buộc. Mong “/etc/mtab” không đúng.\n"
#: misc/util.c:159
#, c-format
"\n"
msgstr ""
"\n"
-"Sai xác định tùy chọn nhật ký.\n"
+"Đưa ra tùy chọn nhật ký sai.\n"
"\n"
"Các tùy chọn nhật ký cũng định giới bằng dấu phẩy, có thể chấp nhận\n"
-"đối số được ngụ ý với dấu bằng « = ».\n"
+"đối số được ngụ ý với dấu bằng “=”.\n"
"\n"
"Tùy chọn nhật ký hợp lệ:\n"
"\tsize=<kích cỡ nhật ký theo MB>\n"
msgstr ""
"Hệ thống tập tin này sẽ được kiểm tra tự động mỗi %d lần gắn kết\n"
"hay mỗi %g ngày, điều nào xảy ra trước. Hãy dùng tùy chọn\n"
-"« tune2fs -c » hay « tune2fs -i » để ghi đè lên nó.\n"
+"“tune2fs -c” hay “tune2fs -i” để ghi đè lên nó.\n"
#: misc/uuidd.c:48
#, c-format
msgid "Usage: %s [-d] [-p pidfile] [-s socketpath] [-T timeout]\n"
-msgstr "Sử dụng: %s [-d] [-p tập_tin_PID] [-s đường_dẫn_ổ_cắm] [-T thời_hạn]\n"
+msgstr "Cách dùng: %s [-d] [-p tập_tin_PID] [-s đường_dẫn_ổ_cắm] [-T thời_hạn]\n"
#: misc/uuidd.c:50
#, c-format
#: misc/uuidgen.c:32
#, c-format
msgid "Usage: %s [-r] [-t]\n"
-msgstr "Sử dụng: %s [-r] [-t]\n"
+msgstr "Cách dùng: %s [-r] [-t]\n"
#: resize/extent.c:202
msgid "# Extent dump:\n"
"Usage: %s [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]\n"
"\n"
msgstr ""
-"Sử dụng: %s [-d cờ_gỡ_lỗi] [-f] [-F] [-M] [-P] [-p] thiết_bị [kích_cỡ_mới]\n"
+"Cách dùng: %s [-d cờ_gỡ_lỗi] [-f] [-F] [-M] [-P] [-p] thiết_bị [kích_cỡ_mới]\n"
"\n"
#: resize/main.c:65
#: resize/main.c:80
msgid "Unknown pass?!?"
-msgstr "Lần qua lạ ?!?"
+msgstr "Lần qua lạ?!?"
#: resize/main.c:83
#, c-format
msgid "while getting stat information for %s"
msgstr "trong khi lấy các thông tin về %s"
-#: resize/main.c:331
-#, c-format
-msgid ""
-"%s: The combination of flex_bg and\n"
-"\t!resize_inode features is not supported by resize2fs.\n"
-msgstr ""
-"%s: tổ hợp hai tính năng flex_bg và !resize_inode\n"
-"đều không được resize2fs hỗ trợ.\n"
-
-#: resize/main.c:344 resize/main.c:452
+#: resize/main.c:325 resize/main.c:437
#, c-format
msgid ""
"Please run 'e2fsck -f %s' first.\n"
"\n"
-msgstr "Trước tiên hãy chạy tiến trình « e2fsck -f %s ».\n"
+msgstr "Trước tiên hãy chạy chương trình “e2fsck -f %s”.\n"
-#: resize/main.c:348
+#: resize/main.c:329
#, c-format
msgid "Estimated minimum size of the filesystem: %llu\n"
msgstr "Kích cỡ hệ thống tập tin tối thiểu được ước tính: %llu\n"
-#: resize/main.c:384
+#: resize/main.c:365
#, c-format
msgid "Invalid new size: %s\n"
msgstr "Kích cỡ mới không hợp lệ: %s\n"
-#: resize/main.c:392
+#: resize/main.c:381
msgid "New size too large to be expressed in 32 bits\n"
msgstr "Kích thước mới quá lớn để có thể dùng số 32 bit\n"
-#: resize/main.c:404
+#: resize/main.c:389
#, c-format
msgid "New size smaller than minimum (%llu)\n"
msgstr "Kích cỡ mới vẫn nhỏ hơn mức tối thiểu (%llu)\n"
-#: resize/main.c:410
+#: resize/main.c:395
msgid "Invalid stride length"
msgstr "Độ dài stride không hợp lệ"
-#: resize/main.c:434
+#: resize/main.c:419
#, c-format
msgid ""
"The containing partition (or device) is only %llu (%dk) blocks.\n"
"Bạn đã yêu cầu kích cỡ mới %llu khối.\n"
"\n"
-#: resize/main.c:441
+#: resize/main.c:426
#, c-format
msgid ""
"The filesystem is already %llu blocks long. Nothing to do!\n"
"Hệ thống tập tin đã có độ dài %llu khối. Không có gì cần làm !\n"
"\n"
-#: resize/main.c:456
+#: resize/main.c:457
#, c-format
-msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgid ""
+"%s: The combination of flex_bg and\n"
+"\t!resize_inode features is not supported by resize2fs.\n"
msgstr ""
-"Đang thay đổi kích cỡ của hệ thống tập tin trên %s thành %llu (%dk) khối.\n"
+"%s: tổ hợp hai tính năng flex_bg và !resize_inode\n"
+"đều không được resize2fs hỗ trợ.\n"
+
+#: resize/main.c:463
+#, c-format
+msgid "Resizing the filesystem on %s to %llu (%dk) blocks.\n"
+msgstr "Đang thay đổi kích cỡ của hệ thống tập tin trên %s thành %llu (%dk) khối.\n"
-#: resize/main.c:465
+#: resize/main.c:472
#, c-format
msgid "while trying to resize %s"
msgstr "trong khi thử thay đổi kích cỡ %s"
-#: resize/main.c:468
+#: resize/main.c:475
#, c-format
msgid ""
"Please run 'e2fsck -fy %s' to fix the filesystem\n"
"after the aborted resize operation.\n"
msgstr ""
-"Hãy chạy câu lệnh « e2fsck -fy %s » để sửa chữa hệ thống tập tin\n"
+"Hãy chạy câu lệnh “e2fsck -fy %s” để sửa chữa hệ thống tập tin\n"
"đằng sau thao tác thay đổi kích cỡ bị hủy bỏ.\n"
-#: resize/main.c:474
+#: resize/main.c:481
#, c-format
msgid ""
"The filesystem on %s is now %llu blocks long.\n"
"Hệ thống tập tin nằm trên %s giờ có độ dài %llu khối.\n"
"\n"
-#: resize/main.c:489
+#: resize/main.c:496
#, c-format
msgid "while trying to truncate %s"
msgstr "trong khi thử cắt ngắn %s"
#: resize/online.c:40
#, c-format
msgid "Filesystem at %s is mounted on %s; on-line resizing required\n"
-msgstr ""
-"Hệ thống tập tin ở %s được gắn kết vào %s; cần thiết thay đổi kích cỡ trực "
-"tuyến\n"
+msgstr "Hệ thống tập tin ở %s được gắn kết vào %s; cần thiết thay đổi kích cỡ trực tuyến\n"
#: resize/online.c:44
msgid "On-line shrinking not supported"
msgstr "Tính năng thu nhỏ khi đang chạy không được hỗ trợ"
-#: resize/online.c:63
+#: resize/online.c:69
msgid "Filesystem does not support online resizing"
msgstr "Hệ thống tập tin không hỗ trợ tính năng thay đổi kích cỡ trực tuyến"
-#: resize/online.c:70
+#: resize/online.c:78
+msgid "Not enough reserved gdt blocks for resizing"
+msgstr "Không đủ khối dự trữ gdt để thay đổi kích thước"
+
+#: resize/online.c:85
+msgid "Kernel does not support resizing a file system this large"
+msgstr "Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ hệ thống tập tin này rộng hơn"
+
+#: resize/online.c:93
#, c-format
msgid "while trying to open mountpoint %s"
msgstr "trong khi thử mở điểm lắp %s"
-#: resize/online.c:92 resize/online.c:116
+#: resize/online.c:115 resize/online.c:132
msgid "Permission denied to resize filesystem"
msgstr "Không đủ quyền để thay đổi kích cỡ của hệ thống tập tin"
-#: resize/online.c:95 resize/online.c:122
+#: resize/online.c:118 resize/online.c:138
msgid "While checking for on-line resizing support"
msgstr "Trong khi kiểm tra có hỗ trợ thay đổi kích cỡ trực tuyến"
-#: resize/online.c:107
-msgid "Kernel does not support resizing a file system this large"
-msgstr ""
-"Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ hệ thống tệp tin này rộng "
-"hơn"
-
-#: resize/online.c:119
+#: resize/online.c:135
msgid "Kernel does not support online resizing"
msgstr "Hạt nhân không hỗ trợ tính năng thay đổi kích cỡ trực tuyến"
-#: resize/online.c:152
+#: resize/online.c:168
#, c-format
msgid "Performing an on-line resize of %s to %llu (%dk) blocks.\n"
-msgstr ""
-"Đang thực hiện một công việc thay đổi kích cỡ %s trực tuyến thành %llu (%dk) "
-"khối.\n"
+msgstr "Đang thực hiện một công việc thay đổi kích cỡ %s trực tuyến thành %llu (%dk) khối.\n"
-#: resize/online.c:162
+#: resize/online.c:178
msgid "While trying to extend the last group"
msgstr "Trong khi thử mở rộng nhóm cuối cùng"
-#: resize/online.c:216
+#: resize/online.c:232
#, c-format
msgid "While trying to add group #%d"
msgstr "Trong khi thử thêm nhóm số %d"
-#: resize/online.c:227
+#: resize/online.c:243
#, c-format
-msgid ""
-"Filesystem at %s is mounted on %s, and on-line resizing is not supported on "
-"this system.\n"
-msgstr ""
-"Hệ thống tập tin ở %s được gắn kết vào %s, và tính năng thay đổi kích cỡ "
-"trên dòng không được hỗ trợ trên hệ thống này.\n"
+msgid "Filesystem at %s is mounted on %s, and on-line resizing is not supported on this system.\n"
+msgstr "Hệ thống tập tin ở %s được gắn kết vào %s, và tính năng thay đổi kích cỡ trên dòng không được hỗ trợ trên hệ thống này.\n"
-#: resize/resize2fs.c:348
+#: resize/resize2fs.c:346
#, c-format
msgid "inodes (%llu) must be less than %u"
msgstr "nút thông tin (%llu) phải nhỏ hơn %u"
-#: resize/resize2fs.c:576
+#: resize/resize2fs.c:582
msgid "reserved blocks"
msgstr "khối dành riêng"
-#: resize/resize2fs.c:789
+#: resize/resize2fs.c:807
msgid "meta-data blocks"
msgstr "khối siêu dữ liệu"
-#: resize/resize2fs.c:1735
+#: resize/resize2fs.c:1753
#, c-format
msgid "Should never happen: resize inode corrupt!\n"
msgstr "Không bao giờ nên xảy ra: nút thông tin thay đổi kích cỡ bị hỏng !\n"
#: lib/ext2fs/ext2_err.c:11
-#, fuzzy
-msgid "EXT2FS Library version 1.42.4"
-msgstr "Thư viện EXT2FS phiên bản 1.42"
+msgid "EXT2FS Library version 1.42.6"
+msgstr "Thư viện EXT2FS phiên bản 1.42.6"
#: lib/ext2fs/ext2_err.c:12
msgid "Wrong magic number for ext2_filsys structure"
#: lib/ext2fs/ext2_err.c:26
msgid "Wrong magic number for ext2 file structure"
-msgstr "Sai sá»\91 mà u nhiá»\87m cho cấu trúc tá»\87p tin ext2"
+msgstr "Sai sá»\91 mà u nhiá»\87m cho cấu trúc táºp tin ext2"
#: lib/ext2fs/ext2_err.c:27
msgid "Wrong magic number for Ext2 Image Header"
#: lib/ext2fs/ext2_err.c:31
msgid "Filesystem revision too high"
-msgstr "Phiên bản há»\87 thá»\91ng tá»\87p tin quá cao"
+msgstr "Phiên bản há»\87 thá»\91ng táºp tin quá cao"
#: lib/ext2fs/ext2_err.c:32
msgid "Attempt to write to filesystem opened read-only"
-msgstr "Thá» viết và o há»\87 thá»\91ng tá»\87p tin mà nónó chỉ đọc"
+msgstr "Thá» viết và o há»\87 thá»\91ng táºp tin mà nónó chỉ đọc"
#: lib/ext2fs/ext2_err.c:33
msgid "Can't read group descriptors"
#: lib/ext2fs/ext2_err.c:43
msgid "Can't read an inode table"
-msgstr "Không thể đọcbảng nút thông tin"
+msgstr "Không thể đọc bảng nút thông tin"
#: lib/ext2fs/ext2_err.c:44
msgid "Can't read next inode"
#: lib/ext2fs/ext2_err.c:45
msgid "Filesystem has unexpected block size"
-msgstr "Há»\87 thá»\91ng tá»\87p tin có kích cỡ khối bất thường"
+msgstr "Há»\87 thá»\91ng táºp tin có kích cỡ khối bất thường"
#: lib/ext2fs/ext2_err.c:46
msgid "EXT2 directory corrupted"
#: lib/ext2fs/ext2_err.c:47
msgid "Attempt to read block from filesystem resulted in short read"
-msgstr "Thá» Ä\91á»\8dc khá»\91i từ há»\87 thá»\91ng tá»\87p tin kết quả dạng ngắn"
+msgstr "Thá» Ä\91á»\8dc khá»\91i từ há»\87 thá»\91ng táºp tin kết quả dạng ngắn"
#: lib/ext2fs/ext2_err.c:48
msgid "Attempt to write block to filesystem resulted in short write"
-msgstr "Thá» ghi khá»\91i tá»\9bi há»\87 thá»\91ng tá»\87p tin kết quả dạng ngắn"
+msgstr "Thá» ghi khá»\91i tá»\9bi há»\87 thá»\91ng táºp tin kết quả dạng ngắn"
#: lib/ext2fs/ext2_err.c:49
msgid "No free space in the directory"
#: lib/ext2fs/ext2_err.c:55
msgid "Not enough space to build proposed filesystem"
-msgstr "Không Ä\91ủ sức chứa Ä\91á»\83 xây dá»±ng há»\87 thá»\91ng tá»\87p tin như đề xuất"
+msgstr "Không Ä\91ủ sức chứa Ä\91á»\83 xây dá»±ng há»\87 thá»\91ng táºp tin như đề xuất"
#: lib/ext2fs/ext2_err.c:56
msgid "Illegal block number passed to ext2fs_mark_block_bitmap"
#: lib/ext2fs/ext2_err.c:72
msgid "Illegal generic bit number passed to ext2fs_mark_generic_bitmap"
-msgstr ""
-"Số bít chung không hợp lệ được chuyển qua cho ext2fs_mark_generic_bitmap"
+msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_mark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:73
msgid "Illegal generic bit number passed to ext2fs_unmark_generic_bitmap"
-msgstr ""
-"Số bít chung không hợp lệ được chuyển qua cho ext2fs_unmark_generic_bitmap"
+msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_unmark_generic_bitmap"
#: lib/ext2fs/ext2_err.c:74
msgid "Illegal generic bit number passed to ext2fs_test_generic_bitmap"
-msgstr ""
-"Số bít chung không hợp lệ được chuyển qua cho ext2fs_test_generic_bitmap"
+msgstr "Số bít chung không hợp lệ được chuyển qua cho ext2fs_test_generic_bitmap"
#: lib/ext2fs/ext2_err.c:75
msgid "Too many symbolic links encountered."
#: lib/ext2fs/ext2_err.c:78
msgid "Filesystem has unsupported feature(s)"
-msgstr "Há»\87 thá»\91ng tá»\87p tin có tính năng không được hỗ trợ"
+msgstr "Há»\87 thá»\91ng táºp tin có tính năng không được hỗ trợ"
#: lib/ext2fs/ext2_err.c:79
msgid "Filesystem has unsupported read-only feature(s)"
-msgstr "Há»\87 thá»\91ng tá»\87p tin không hỗ trợ tính năng chỉ đọc"
+msgstr "Há»\87 thá»\91ng táºp tin không hỗ trợ tính năng chỉ đọc"
#: lib/ext2fs/ext2_err.c:80
msgid "IO Channel failed to seek on read or write"
-msgstr "Kênh IO gặp lá»\97i khi tìm kiếm trên tá»\87p tin lúc đọc hay ghi"
+msgstr "Kênh IO gặp lá»\97i khi tìm kiếm trên táºp tin lúc đọc hay ghi"
#: lib/ext2fs/ext2_err.c:81
msgid "Memory allocation failed"
#: lib/ext2fs/ext2_err.c:87
msgid "File not found by ext2_lookup"
-msgstr "Tá»\87p tin không tìm được bởi ext2_lookup"
+msgstr "Táºp tin không tìm được bởi ext2_lookup"
#: lib/ext2fs/ext2_err.c:88
msgid "File open read-only"
-msgstr "Má»\9f tá»\87p tin trong chế độ chỉ cho đọc"
+msgstr "Má»\9f táºp tin trong chế độ chỉ cho đọc"
#: lib/ext2fs/ext2_err.c:89
msgid "Ext2 directory block not found"
#: lib/ext2fs/ext2_err.c:93
msgid "Ext2 file too big"
-msgstr "Tá»\87p tin ext2 quá lớn"
+msgstr "Táºp tin ext2 quá lớn"
#: lib/ext2fs/ext2_err.c:94
msgid "Supplied journal device not a block device"
#: lib/ext2fs/ext2_err.c:102
msgid "Cannot create filesystem with requested number of inodes"
-msgstr "Không thá»\83 tạo há»\87 thá»\91ng tá»\87p tin với số nút đã yêu cầu"
+msgstr "Không thá»\83 tạo há»\87 thá»\91ng táºp tin với số nút đã yêu cầu"
#: lib/ext2fs/ext2_err.c:103
msgid "E2image snapshot not in use"
#: lib/ext2fs/ext2_err.c:135
msgid "No 'next' extent"
-msgstr "Không có extent 'tiếp theo'"
+msgstr "Không có extent “tiếp theo”"
#: lib/ext2fs/ext2_err.c:136
msgid "No 'previous' extent"
-msgstr "Không có extent 'liền trước'"
+msgstr "Không có extent “liền trước”"
#: lib/ext2fs/ext2_err.c:137
msgid "No 'up' extent"
-msgstr "Không có extent 'lên'"
+msgstr "Không có extent “lên”"
#: lib/ext2fs/ext2_err.c:138
msgid "No 'down' extent"
-msgstr "Không có extent 'xuống'"
+msgstr "Không có extent “xuống”"
#: lib/ext2fs/ext2_err.c:139
msgid "No current node"
#: lib/ext2fs/ext2_err.c:147
msgid "Can't check if filesystem is mounted due to missing mtab file"
-msgstr ""
-"Không thể kiểm tra nếu hệ thống tệp tin được gắn bởi vì mất tệp tin mtab"
+msgstr "Không thể kiểm tra nếu hệ thống tập tin được gắn bởi vì mất tập tin mtab"
#: lib/ext2fs/ext2_err.c:148
msgid "Filesystem too large to use legacy bitmaps"
-msgstr "Há»\87 thá»\91ng tá»\87p tin quá lớn để có thể sử dụng mảng kiểu cũ"
+msgstr "Há»\87 thá»\91ng táºp tin quá lớn để có thể sử dụng mảng kiểu cũ"
#: lib/ext2fs/ext2_err.c:149
msgid "MMP: invalid magic number"
#: lib/ext2fs/ext2_err.c:152
msgid "MMP: block number beyond filesystem range"
-msgstr "MMP: sá»\91 khá»\91i nằm xa ngoà i vùng của há»\87 thá»\91ng tá»\87p tin"
+msgstr "MMP: sá»\91 khá»\91i nằm xa ngoà i vùng của há»\87 thá»\91ng táºp tin"
#: lib/ext2fs/ext2_err.c:153
msgid "MMP: undergoing an unknown operation"
#: lib/ext2fs/ext2_err.c:154
msgid "MMP: filesystem still in use"
-msgstr "MMP: há»\87 thá»\91ng tá»\87p tin vẫn đang được sử dụng"
+msgstr "MMP: há»\87 thá»\91ng táºp tin vẫn đang được sử dụng"
#: lib/ext2fs/ext2_err.c:155
msgid "MMP: open with O_DIRECT failed"
#: e2fsck/prof_err.c:23
msgid "Attempt to modify read-only profile"
-msgstr "Thá» viết và o há»\87 thá»\91ng tá»\87p tin profile chỉ đọc"
+msgstr "Thá» viết và o há»\87 thá»\91ng táºp tin profile chỉ đọc"
#: e2fsck/prof_err.c:24
msgid "Profile section header not at top level"
#~ msgstr "cỡ đoạn không hợp lệ — %s"
#~ msgid "Warning: fragments not supported. Ignoring -f option\n"
-#~ msgstr "Cảnh báo: không hỗ trợ đoạn nên bỏ qua tùy chọn « -f »\n"
+#~ msgstr "Cảnh báo: không hỗ trợ đoạn nên bỏ qua tùy chọn “-f”\n"
#~ msgid "Calling BLKDISCARD from %llu to %llu "
#~ msgstr "Đang gọi BLKDISCARD từ %llu đến %llu "
TEST_PROGS= test_extent
MANPAGES= resize2fs.8
-RESIZE_OBJS= extent.o resize2fs.o main.o online.o sim_progress.o
+RESIZE_OBJS= extent.o resize2fs.o main.o online.o resource_track.o \
+ sim_progress.o
TEST_EXTENT_OBJS= extent.o test_extent.o
$(srcdir)/resize2fs.c \
$(srcdir)/main.c \
$(srcdir)/online.c \
+ $(srcdir)/resource_track.c \
$(srcdir)/sim_progress.c
LIBS= $(LIBE2P) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBINTL)
# Makefile dependencies follow. This must be the last section in
# the Makefile.in file
#
-extent.o: $(srcdir)/extent.c $(srcdir)/resize2fs.h \
+extent.o: $(srcdir)/extent.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-resize2fs.o: $(srcdir)/resize2fs.c $(srcdir)/resize2fs.h \
+resize2fs.o: $(srcdir)/resize2fs.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-main.o: $(srcdir)/main.c $(top_srcdir)/lib/e2p/e2p.h \
+main.o: $(srcdir)/main.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/e2p/e2p.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(srcdir)/resize2fs.h $(top_srcdir)/lib/ext2fs/ext2fs.h \
$(top_srcdir)/lib/ext2fs/ext3_extents.h $(top_srcdir)/lib/et/com_err.h \
$(top_srcdir)/lib/ext2fs/ext2_io.h $(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/version.h
-online.o: $(srcdir)/online.c $(srcdir)/resize2fs.h \
+online.o: $(srcdir)/online.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
$(top_builddir)/lib/ext2fs/ext2_err.h \
$(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
$(top_srcdir)/lib/e2p/e2p.h
-sim_progress.o: $(srcdir)/sim_progress.c $(srcdir)/resize2fs.h \
+resource_track.o: $(srcdir)/resource_track.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
+ $(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
+ $(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
+ $(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
+ $(top_builddir)/lib/ext2fs/ext2_err.h \
+ $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/bitops.h \
+ $(top_srcdir)/lib/e2p/e2p.h
+sim_progress.o: $(srcdir)/sim_progress.c $(top_builddir)/lib/config.h \
+ $(top_builddir)/lib/dirpaths.h $(srcdir)/resize2fs.h \
$(top_srcdir)/lib/ext2fs/ext2_fs.h $(top_builddir)/lib/ext2fs/ext2_types.h \
$(top_srcdir)/lib/ext2fs/ext2fs.h $(top_srcdir)/lib/ext2fs/ext3_extents.h \
$(top_srcdir)/lib/et/com_err.h $(top_srcdir)/lib/ext2fs/ext2_io.h \
{
unsigned int group;
unsigned long long sum;
- unsigned int has_sb, prev_has_sb, num;
+ unsigned int has_sb, prev_has_sb = 0, num;
int i_stride, b_stride;
if (fs->stride)
#endif
}
+static void bigalloc_check(ext2_filsys fs, int force)
+{
+ if (!force && EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
+ fprintf(stderr, _("\nResizing bigalloc file systems has "
+ "not been fully tested. Proceed\n"
+ "at your own risk! Use the force option "
+ "if you want to go ahead anyway.\n\n"));
+ exit(1);
+ }
+}
+
int main (int argc, char ** argv)
{
errcode_t retval;
exit(1);
}
- /*
- * XXXX The combination of flex_bg and !resize_inode causes
- * major problems for resize2fs, since when the group descriptors
- * grow in size this can potentially require multiple inode
- * tables to be moved aside to make room, and resize2fs chokes
- * rather badly in this scenario. It's a rare combination,
- * except when a filesystem is expanded more than a certain
- * size, so for now, we'll just prohibit that combination.
- * This is something we should fix eventually, though.
- */
- if ((fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
- !(fs->super->s_feature_compat & EXT2_FEATURE_COMPAT_RESIZE_INODE)) {
- com_err(program_name, 0, _("%s: The combination of flex_bg "
- "and\n\t!resize_inode features "
- "is not supported by resize2fs.\n"),
- device_name);
- exit(1);
- }
-
min_size = calculate_minimum_resize_size(fs);
if (print_min_size) {
exit(1);
}
} else {
- /* Take down devices exactly 16T to 2^32-1 blocks */
- if (max_size == (1ULL << 32))
- max_size--;
- else if (max_size > (1ULL << 32)) {
- com_err(program_name, 0, _("New size too large to be "
- "expressed in 32 bits\n"));
- exit(1);
- }
new_size = max_size;
/* Round down to an even multiple of a pagesize */
if (sys_page_size > fs->blocksize)
new_size &= ~((sys_page_size / fs->blocksize)-1);
}
+ if (!EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_64BIT)) {
+ /* Take 16T down to 2^32-1 blocks */
+ if (new_size == (1ULL << 32))
+ new_size--;
+ else if (new_size > (1ULL << 32)) {
+ com_err(program_name, 0,
+ _("New size too large to be "
+ "expressed in 32 bits\n"));
+ exit(1);
+ }
+ }
if (!force && new_size < min_size) {
com_err(program_name, 0,
exit(0);
}
if (mount_flags & EXT2_MF_MOUNTED) {
+ bigalloc_check(fs, force);
retval = online_resize_fs(fs, mtpt, &new_size, flags);
} else {
if (!force && ((fs->super->s_lastcheck < fs->super->s_mtime) ||
device_name);
exit(1);
}
+ bigalloc_check(fs, force);
printf(_("Resizing the filesystem on "
"%s to %llu (%dk) blocks.\n"),
device_name, new_size, fs->blocksize / 1024);
#define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1)
+#ifdef __linux__
+static int parse_version_number(const char *s)
+{
+ int major, minor, rev;
+ char *endptr;
+ const char *cp = s;
+
+ if (!s)
+ return 0;
+ major = strtol(cp, &endptr, 10);
+ if (cp == endptr || *endptr != '.')
+ return 0;
+ cp = endptr + 1;
+ minor = strtol(cp, &endptr, 10);
+ if (cp == endptr || *endptr != '.')
+ return 0;
+ cp = endptr + 1;
+ rev = strtol(cp, &endptr, 10);
+ if (cp == endptr)
+ return 0;
+ return ((((major * 256) + minor) * 256) + rev);
+}
+
+#define VERSION_CODE(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+
+#endif
+
errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
blk64_t *new_size, int flags EXT2FS_ATTR((unused)))
{
blk_t size;
int fd, overhead;
int use_old_ioctl = 1;
+ int no_meta_bg_resize = 0;
+ int no_resize_ioctl = 0;
+
+ if (getenv("RESIZE2FS_KERNEL_VERSION")) {
+ char *version_to_emulate = getenv("RESIZE2FS_KERNEL_VERSION");
+ int kvers = parse_version_number(version_to_emulate);
+
+ if (kvers < VERSION_CODE(3, 7, 0))
+ no_meta_bg_resize = 1;
+ if (kvers < VERSION_CODE(3, 3, 0))
+ no_resize_ioctl = 1;
+ }
printf(_("Filesystem at %s is mounted on %s; "
"on-line resizing required\n"), fs->device_name, mtpt);
EXT2_DESC_PER_BLOCK(fs->super));
printf("old_desc_blocks = %lu, new_desc_blocks = %lu\n",
fs->desc_blocks, new_desc_blocks);
- if (!(fs->super->s_feature_compat &
- EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
- new_desc_blocks != fs->desc_blocks) {
- com_err(program_name, 0,
- _("Filesystem does not support online resizing"));
- exit(1);
+
+ /*
+ * Do error checking to make sure the resize will be successful.
+ */
+ if ((access("/sys/fs/ext4/features/meta_bg_resize", R_OK) != 0) ||
+ no_meta_bg_resize) {
+ if (!EXT2_HAS_COMPAT_FEATURE(fs->super,
+ EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
+ (new_desc_blocks != fs->desc_blocks)) {
+ com_err(program_name, 0,
+ _("Filesystem does not support online resizing"));
+ exit(1);
+ }
+
+ if (EXT2_HAS_COMPAT_FEATURE(fs->super,
+ EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
+ new_desc_blocks > (fs->desc_blocks +
+ fs->super->s_reserved_gdt_blocks)) {
+ com_err(program_name, 0,
+ _("Not enough reserved gdt blocks for resizing"));
+ exit(1);
+ }
+
+ if ((ext2fs_blocks_count(sb) > MAX_32_NUM) ||
+ (*new_size > MAX_32_NUM)) {
+ com_err(program_name, 0,
+ _("Kernel does not support resizing a file system this large"));
+ exit(1);
+ }
}
fd = open(mtpt, O_RDONLY);
exit(1);
}
- if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
+ if (no_resize_ioctl) {
+ printf(_("Old resize interface requested.\n"));
+ } else if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
/*
* If kernel does not support EXT4_IOC_RESIZE_FS, use the
* old online resize. Note that the old approach does not
return 0;
}
- if ((ext2fs_blocks_count(sb) > MAX_32_NUM) ||
- (*new_size > MAX_32_NUM)) {
- com_err(program_name, 0,
- _("Kernel does not support resizing a file system "
- "this large"));
- exit(1);
- }
size = ext2fs_blocks_count(sb);
if (ioctl(fd, EXT2_IOC_GROUP_EXTEND, &size)) {
4 \-\ Debug inode relocations
.br
8 \-\ Debug moving the inode table
+.br
+ 16 \-\ Print timing information
.TP
.B \-f
Forces resize2fs to proceed with the filesystem resize operation, overriding
static errcode_t fix_resize_inode(ext2_filsys fs);
static errcode_t ext2fs_calculate_summary_stats(ext2_filsys fs);
static errcode_t fix_sb_journal_backup(ext2_filsys fs);
+static errcode_t mark_table_blocks(ext2_filsys fs,
+ ext2fs_block_bitmap bmap);
/*
* Some helper CPP macros
((blk) < (ext2fs_inode_table_loc((fs), (i)) + \
(fs)->inode_blocks_per_group)))
-#define META_OVERHEAD(fs) (2 + (fs)->inode_blocks_per_group)
-#define SUPER_OVERHEAD(fs) (1 + (fs)->desc_blocks +\
- (fs)->super->s_reserved_gdt_blocks)
+/* Some bigalloc helper macros which are more succint... */
+#define B2C(x) EXT2FS_B2C(fs, (x))
+#define C2B(x) EXT2FS_C2B(fs, (x))
+#define EQ_CLSTR(x, y) (B2C(x) == B2C(y))
+#define LE_CLSTR(x, y) (B2C(x) <= B2C(y))
+#define LT_CLSTR(x, y) (B2C(x) < B2C(y))
+#define GE_CLSTR(x, y) (B2C(x) >= B2C(y))
+#define GT_CLSTR(x, y) (B2C(x) > B2C(y))
+
+int lazy_itable_init;
/*
* This is the top-level routine which does the dirty deed....
{
ext2_resize_t rfs;
errcode_t retval;
-
- retval = ext2fs_read_bitmaps(fs);
- if (retval)
- return retval;
-
- fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(fs);
- ext2fs_flush(fs);
+ struct resource_track rtrack, overall_track;
/*
* Create the data structure
retval = ext2fs_get_mem(sizeof(struct ext2_resize_struct), &rfs);
if (retval)
return retval;
- memset(rfs, 0, sizeof(struct ext2_resize_struct));
- fix_uninit_block_bitmaps(fs);
+ memset(rfs, 0, sizeof(struct ext2_resize_struct));
fs->priv_data = rfs;
rfs->old_fs = fs;
rfs->flags = flags;
rfs->itable_buf = 0;
rfs->progress = progress;
+
+ init_resource_track(&overall_track, "overall resize2fs", fs->io);
+ init_resource_track(&rtrack, "read_bitmaps", fs->io);
+ retval = ext2fs_read_bitmaps(fs);
+ if (retval)
+ goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+
+ fs->super->s_state |= EXT2_ERROR_FS;
+ ext2fs_mark_super_dirty(fs);
+ ext2fs_flush(fs);
+
+ init_resource_track(&rtrack, "fix_uninit_block_bitmaps 1", fs->io);
+ fix_uninit_block_bitmaps(fs);
+ print_resource_track(rfs, &rtrack, fs->io);
retval = ext2fs_dup_handle(fs, &rfs->new_fs);
if (retval)
goto errout;
+ init_resource_track(&rtrack, "adjust_superblock", fs->io);
retval = adjust_superblock(rfs, *new_size);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+
+ init_resource_track(&rtrack, "fix_uninit_block_bitmaps 2", fs->io);
fix_uninit_block_bitmaps(rfs->new_fs);
+ print_resource_track(rfs, &rtrack, fs->io);
/* Clear the block bitmap uninit flag for the last block group */
ext2fs_bg_flags_clear(rfs->new_fs, rfs->new_fs->group_desc_count - 1,
EXT2_BG_BLOCK_UNINIT);
*new_size = ext2fs_blocks_count(rfs->new_fs->super);
+ init_resource_track(&rtrack, "blocks_to_move", fs->io);
retval = blocks_to_move(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
#ifdef RESIZE2FS_DEBUG
if (rfs->flags & RESIZE_DEBUG_BMOVE)
rfs->needed_blocks);
#endif
+ init_resource_track(&rtrack, "block_mover", fs->io);
retval = block_mover(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "inode_scan_and_fix", fs->io);
retval = inode_scan_and_fix(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "inode_ref_fix", fs->io);
retval = inode_ref_fix(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "move_itables", fs->io);
retval = move_itables(rfs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "calculate_summary_stats", fs->io);
retval = ext2fs_calculate_summary_stats(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "fix_resize_inode", fs->io);
retval = fix_resize_inode(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
+ init_resource_track(&rtrack, "fix_sb_journal_backup", fs->io);
retval = fix_sb_journal_backup(rfs->new_fs);
if (retval)
goto errout;
+ print_resource_track(rfs, &rtrack, fs->io);
rfs->new_fs->super->s_state &= ~EXT2_ERROR_FS;
rfs->new_fs->flags &= ~EXT2_FLAG_MASTER_SB_ONLY;
+
+ print_resource_track(rfs, &overall_track, fs->io);
retval = ext2fs_close(rfs->new_fs);
if (retval)
goto errout;
*/
static void fix_uninit_block_bitmaps(ext2_filsys fs)
{
- blk64_t i, blk, super_blk, old_desc_blk, new_desc_blk;
- int old_desc_blocks;
+ blk64_t blk, lblk;
dgrp_t g;
+ int i;
if (!(EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM)))
if (!(ext2fs_bg_flags_test(fs, g, EXT2_BG_BLOCK_UNINIT)))
continue;
- blk = (g * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block;
-
- ext2fs_super_and_bgd_loc2(fs, g, &super_blk,
- &old_desc_blk, &new_desc_blk, 0);
-
- if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
- old_desc_blocks = fs->super->s_first_meta_bg;
- else
- old_desc_blocks = fs->desc_blocks +
- fs->super->s_reserved_gdt_blocks;
-
- for (i=0; i < fs->super->s_blocks_per_group; i++, blk++) {
- if (blk >= ext2fs_blocks_count(fs->super))
- break;
- if ((blk == super_blk) ||
- (old_desc_blk && old_desc_blocks &&
- (blk >= old_desc_blk) &&
- (blk < old_desc_blk + old_desc_blocks)) ||
- (new_desc_blk && (blk == new_desc_blk)) ||
- (blk == ext2fs_block_bitmap_loc(fs, g)) ||
- (blk == ext2fs_inode_bitmap_loc(fs, g)) ||
- (blk >= ext2fs_inode_table_loc(fs, g) &&
- (blk < ext2fs_inode_table_loc(fs, g)
- + fs->inode_blocks_per_group)))
- ext2fs_fast_mark_block_bitmap2(fs->block_map, blk);
- else
- ext2fs_fast_unmark_block_bitmap2(fs->block_map, blk);
- }
+ blk = ext2fs_group_first_block2(fs, g);
+ lblk = ext2fs_group_last_block2(fs, g);
+ ext2fs_unmark_block_bitmap_range2(fs->block_map, blk,
+ lblk - blk + 1);
+
+ ext2fs_reserve_super_and_bgd(fs, g, fs->block_map);
+ ext2fs_mark_block_bitmap2(fs->block_map,
+ ext2fs_block_bitmap_loc(fs, g));
+ ext2fs_mark_block_bitmap2(fs->block_map,
+ ext2fs_inode_bitmap_loc(fs, g));
+ for (i = 0, blk = ext2fs_inode_table_loc(fs, g);
+ i < (unsigned int) fs->inode_blocks_per_group;
+ i++, blk++)
+ ext2fs_mark_block_bitmap2(fs->block_map, blk);
}
}
/*
* This routine is shared by the online and offline resize routines.
* All of the information which is adjusted in memory is done here.
- *
- * The reserve_blocks parameter is only needed when shrinking the
- * filesystem.
*/
errcode_t adjust_fs_info(ext2_filsys fs, ext2_filsys old_fs,
ext2fs_block_bitmap reserve_blocks, blk64_t new_size)
blk64_t rem;
blk64_t blk, group_block;
blk64_t real_end;
- blk64_t adj, old_numblocks, numblocks, adjblocks;
- unsigned long i, j, old_desc_blocks, max_group;
+ blk64_t old_numblocks, numblocks, adjblocks;
+ unsigned long i, j, old_desc_blocks;
unsigned int meta_bg, meta_bg_size;
int has_super, csum_flag;
unsigned long long new_inodes; /* u64 to check for overflow */
real_end = (((blk64_t) EXT2_BLOCKS_PER_GROUP(fs->super) *
fs->group_desc_count)) - 1 +
fs->super->s_first_data_block;
- retval = ext2fs_resize_block_bitmap2(ext2fs_blocks_count(fs->super)-1,
- real_end, fs->block_map);
-
+ retval = ext2fs_resize_block_bitmap2(new_size - 1,
+ real_end, fs->block_map);
if (retval) goto errout;
/*
+ * If we are growing the file system, also grow the size of
+ * the reserve_blocks bitmap
+ */
+ if (reserve_blocks && new_size > ext2fs_blocks_count(old_fs->super)) {
+ retval = ext2fs_resize_block_bitmap2(new_size - 1,
+ real_end, reserve_blocks);
+ if (retval) goto errout;
+ }
+
+ /*
* Reallocate the group descriptors as necessary.
*/
if (old_fs->desc_blocks != fs->desc_blocks) {
/*
* Initialize the new block group descriptors
*/
- group_block = fs->super->s_first_data_block +
- old_fs->group_desc_count * fs->super->s_blocks_per_group;
-
+ group_block = ext2fs_group_first_block2(fs,
+ old_fs->group_desc_count);
csum_flag = EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
EXT4_FEATURE_RO_COMPAT_GDT_CSUM);
- adj = old_fs->group_desc_count;
- max_group = fs->group_desc_count - adj;
+ if (access("/sys/fs/ext4/features/lazy_itable_init", F_OK) == 0)
+ lazy_itable_init = 1;
if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
old_desc_blocks = fs->super->s_first_meta_bg;
else
old_desc_blocks = fs->desc_blocks +
fs->super->s_reserved_gdt_blocks;
+
+ /*
+ * If we changed the number of block_group descriptor blocks,
+ * we need to make sure they are all marked as reserved in the
+ * file systems's block allocation map.
+ */
+ for (i = 0; i < old_fs->group_desc_count; i++)
+ ext2fs_reserve_super_and_bgd(fs, i, fs->block_map);
+
for (i = old_fs->group_desc_count;
i < fs->group_desc_count; i++) {
memset(ext2fs_group_desc(fs, fs->group_desc, i), 0,
adjblocks = 0;
ext2fs_bg_flags_zap(fs, i);
- if (csum_flag)
- ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT | EXT2_BG_INODE_ZEROED);
+ if (csum_flag) {
+ ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT);
+ if (!lazy_itable_init)
+ ext2fs_bg_flags_set(fs, i,
+ EXT2_BG_INODE_ZEROED);
+ ext2fs_bg_itable_unused_set(fs, i,
+ fs->super->s_inodes_per_group);
+ }
numblocks = ext2fs_group_blocks_count(fs, i);
if ((i < fs->group_desc_count - 1) && csum_flag)
}
retval = 0;
+ /*
+ * Mark all of the metadata blocks as reserved so they won't
+ * get allocated by the call to ext2fs_allocate_group_table()
+ * in blocks_to_move(), where we allocate new blocks to
+ * replace those allocation bitmap and inode table blocks
+ * which have to get relocated to make space for an increased
+ * number of the block group descriptors.
+ */
+ if (reserve_blocks)
+ mark_table_blocks(fs, reserve_blocks);
+
errout:
return (retval);
}
}
/*
- * Initialize the new block group descriptors
+ * If we are using uninit_bg (aka GDT_CSUM) and the kernel
+ * supports lazy inode initialization, we can skip
+ * initializing the inode table.
+ */
+ if (lazy_itable_init &&
+ EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
+ retval = 0;
+ goto errout;
+ }
+
+ /*
+ * Initialize the inode table
*/
retval = ext2fs_get_array(fs->blocksize, fs->inode_blocks_per_group,
&rfs->itable_buf);
goto errout;
memset(rfs->itable_buf, 0, fs->blocksize * fs->inode_blocks_per_group);
- group_block = fs->super->s_first_data_block +
- rfs->old_fs->group_desc_count * fs->super->s_blocks_per_group;
-
+ group_block = ext2fs_group_first_block2(fs,
+ rfs->old_fs->group_desc_count);
adj = rfs->old_fs->group_desc_count;
max_group = fs->group_desc_count - adj;
if (rfs->progress) {
static errcode_t mark_table_blocks(ext2_filsys fs,
ext2fs_block_bitmap bmap)
{
- blk64_t b;
- unsigned int j;
dgrp_t i;
- unsigned long meta_bg_size;
- unsigned int old_desc_blocks;
+ blk64_t blk;
- meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
- if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
- old_desc_blocks = fs->super->s_first_meta_bg;
- else
- old_desc_blocks = fs->desc_blocks +
- fs->super->s_reserved_gdt_blocks;
for (i = 0; i < fs->group_desc_count; i++) {
ext2fs_reserve_super_and_bgd(fs, i, bmap);
/*
* Mark the blocks used for the inode table
*/
- for (j = 0, b = ext2fs_inode_table_loc(fs, i);
- j < (unsigned int) fs->inode_blocks_per_group;
- j++, b++)
- ext2fs_mark_block_bitmap2(bmap, b);
+ blk = ext2fs_inode_table_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap_range2(bmap, blk,
+ fs->inode_blocks_per_group);
/*
* Mark block used for the block bitmap
*/
- ext2fs_mark_block_bitmap2(bmap,
- ext2fs_block_bitmap_loc(fs, i));
+ blk = ext2fs_block_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
/*
* Mark block used for the inode bitmap
*/
- ext2fs_mark_block_bitmap2(bmap,
- ext2fs_inode_bitmap_loc(fs, i));
+ blk = ext2fs_inode_bitmap_loc(fs, i);
+ if (blk)
+ ext2fs_mark_block_bitmap2(bmap, blk);
}
return 0;
}
if (IS_BLOCK_BM(fs, group, blk)) {
ext2fs_block_bitmap_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (IS_INODE_BM(fs, group, blk)) {
+ return;
+ }
+ if (IS_INODE_BM(fs, group, blk)) {
ext2fs_inode_bitmap_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (IS_INODE_TB(fs, group, blk)) {
+ return;
+ }
+ if (IS_INODE_TB(fs, group, blk)) {
ext2fs_inode_table_loc_set(fs, group, 0);
rfs->needed_blocks++;
- } else if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
- EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
+ return;
+ }
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) {
+ dgrp_t i;
+
+ for (i=0; i < rfs->old_fs->group_desc_count; i++) {
+ if (IS_BLOCK_BM(fs, i, blk)) {
+ ext2fs_block_bitmap_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ if (IS_INODE_BM(fs, i, blk)) {
+ ext2fs_inode_bitmap_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ if (IS_INODE_TB(fs, i, blk)) {
+ ext2fs_inode_table_loc_set(fs, i, 0);
+ rfs->needed_blocks++;
+ return;
+ }
+ }
+ }
+ if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
(ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT))) {
/*
* If the block bitmap is uninitialized, which means
dgrp_t i, max_groups, g;
blk64_t blk, group_blk;
blk64_t old_blocks, new_blocks;
+ blk64_t new_size;
unsigned int meta_bg, meta_bg_size;
errcode_t retval;
ext2_filsys fs, old_fs;
ext2fs_block_bitmap meta_bmap;
- __u32 save_incompat_flag;
+ int flex_bg;
fs = rfs->new_fs;
old_fs = rfs->old_fs;
fs = rfs->new_fs;
/*
+ * If we're shrinking the filesystem, we need to move any group's
+ * bitmaps which are beyond the end of the new filesystem.
+ */
+ new_size = ext2fs_blocks_count(fs->super);
+ if (new_size < ext2fs_blocks_count(old_fs->super)) {
+ for (g = 0; g < fs->group_desc_count; g++) {
+ /*
+ * ext2fs_allocate_group_table re-allocates bitmaps
+ * which are set to block 0.
+ */
+ if (ext2fs_block_bitmap_loc(fs, g) >= new_size) {
+ ext2fs_block_bitmap_loc_set(fs, g, 0);
+ retval = ext2fs_allocate_group_table(fs, g, 0);
+ if (retval)
+ return retval;
+ }
+ if (ext2fs_inode_bitmap_loc(fs, g) >= new_size) {
+ ext2fs_inode_bitmap_loc_set(fs, g, 0);
+ retval = ext2fs_allocate_group_table(fs, g, 0);
+ if (retval)
+ return retval;
+ }
+ }
+ }
+
+ /*
* If we're shrinking the filesystem, we need to move all of
* the blocks that don't fit any more
*/
* The block bitmap is uninitialized, so skip
* to the next block group.
*/
- blk = ((g+1) * fs->super->s_blocks_per_group) +
- fs->super->s_first_data_block - 1;
+ blk = ext2fs_group_first_block2(fs, g+1) - 1;
continue;
}
if (ext2fs_test_block_bitmap2(old_fs->block_map, blk) &&
* gets interesting....
*/
meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
+ flex_bg = fs->super->s_feature_incompat &
+ EXT4_FEATURE_INCOMPAT_FLEX_BG;
+ /* first reserve all of the existing fs meta blocks */
for (i = 0; i < max_groups; i++) {
has_super = ext2fs_bg_has_super(fs, i);
if (has_super)
group_blk + has_super);
}
- if (ext2fs_inode_table_loc(fs, i) &&
- ext2fs_inode_bitmap_loc(fs, i) &&
- ext2fs_block_bitmap_loc(fs, i))
- goto next_group;
-
/*
* Reserve the existing meta blocks that we know
* aren't to be moved.
+ *
+ * For flex_bg file systems, in order to avoid
+ * overwriting fs metadata (especially inode table
+ * blocks) belonging to a different block group when
+ * we are relocating the inode tables, we need to
+ * reserve all existing fs metadata blocks.
*/
if (ext2fs_block_bitmap_loc(fs, i))
ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
ext2fs_block_bitmap_loc(fs, i));
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
+ ext2fs_block_bitmap_loc(old_fs, i));
+
if (ext2fs_inode_bitmap_loc(fs, i))
ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
ext2fs_inode_bitmap_loc(fs, i));
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
+ ext2fs_inode_bitmap_loc(old_fs, i));
+
if (ext2fs_inode_table_loc(fs, i))
- for (blk = ext2fs_inode_table_loc(fs, i), j=0;
- j < fs->inode_blocks_per_group ; j++, blk++)
- ext2fs_mark_block_bitmap2(rfs->reserve_blocks,
- blk);
+ ext2fs_mark_block_bitmap_range2(rfs->reserve_blocks,
+ ext2fs_inode_table_loc(fs, i),
+ fs->inode_blocks_per_group);
+ else if (flex_bg && i < old_fs->group_desc_count)
+ ext2fs_mark_block_bitmap_range2(rfs->reserve_blocks,
+ ext2fs_inode_table_loc(old_fs, i),
+ old_fs->inode_blocks_per_group);
+
+ group_blk += rfs->new_fs->super->s_blocks_per_group;
+ }
+
+ /* Allocate the missing data structures */
+ for (i = 0; i < max_groups; i++) {
+ if (ext2fs_inode_table_loc(fs, i) &&
+ ext2fs_inode_bitmap_loc(fs, i) &&
+ ext2fs_block_bitmap_loc(fs, i))
+ continue;
- /*
- * Allocate the missing data structures
- *
- * XXX We have a problem with FLEX_BG and off-line
- * resizing where we are growing the size of the
- * filesystem. ext2fs_allocate_group_table() will try
- * to reserve the inode table in the desired flex_bg
- * location. However, passing rfs->reserve_blocks
- * doesn't work since it only has reserved the blocks
- * that will be used in the new block group -- and
- * with flex_bg, we can and will allocate the tables
- * outside of the block group. And we can't pass in
- * the fs->block_map because it doesn't handle
- * overlapping inode table movements right. So for
- * now, we temporarily disable flex_bg to force
- * ext2fs_allocate_group_tables() to allocate the bg
- * metadata in side the block group, and the restore
- * it afterwards. Ugly, until we can fix this up
- * right later.
- */
- save_incompat_flag = fs->super->s_feature_incompat;
- fs->super->s_feature_incompat &= ~EXT4_FEATURE_INCOMPAT_FLEX_BG;
retval = ext2fs_allocate_group_table(fs, i,
rfs->reserve_blocks);
- fs->super->s_feature_incompat = save_incompat_flag;
if (retval)
goto errout;
* block relocation phase.
*/
if (ext2fs_inode_table_loc(fs, i) == ext2fs_inode_table_loc(old_fs, i))
- goto next_group; /* inode table not moved */
+ continue; /* inode table not moved */
rfs->needed_blocks += fs->inode_blocks_per_group;
for (blk = ext2fs_inode_table_loc(rfs->old_fs, i), j=0;
j < fs->inode_blocks_per_group ; j++, blk++)
ext2fs_mark_block_bitmap2(rfs->reserve_blocks, blk);
-
- next_group:
- group_blk += rfs->new_fs->super->s_blocks_per_group;
}
retval = 0;
*/
to_move = moved = 0;
init_block_alloc(rfs);
- for (blk = old_fs->super->s_first_data_block;
- blk < ext2fs_blocks_count(old_fs->super); blk++) {
+ for (blk = B2C(old_fs->super->s_first_data_block);
+ blk < ext2fs_blocks_count(old_fs->super);
+ blk += EXT2FS_CLUSTER_RATIO(fs)) {
if (!ext2fs_test_block_bitmap2(old_fs->block_map, blk))
continue;
if (!ext2fs_test_block_bitmap2(rfs->move_blocks, blk))
goto errout;
}
ext2fs_block_alloc_stats2(fs, new_blk, +1);
- ext2fs_add_extent_entry(rfs->bmap, blk, new_blk);
+ ext2fs_add_extent_entry(rfs->bmap, B2C(blk), B2C(new_blk));
to_move++;
}
if (retval) goto errout;
if (!size)
break;
+ old_blk = C2B(old_blk);
+ new_blk = C2B(new_blk);
+ size = C2B(size);
#ifdef RESIZE2FS_DEBUG
if (rfs->flags & RESIZE_DEBUG_BMOVE)
printf("Moving %llu blocks %llu->%llu\n",
*/
+/*
+ * The extent translation table is stored in clusters so we need to
+ * take special care when mapping a source block number to its
+ * destination block number.
+ */
+__u64 extent_translate(ext2_filsys fs, ext2_extent extent, __u64 old_loc)
+{
+ __u64 new_block = C2B(ext2fs_extent_translate(extent, B2C(old_loc)));
+
+ if (new_block != 0)
+ new_block += old_loc & (EXT2FS_CLUSTER_RATIO(fs) - 1);
+ return new_block;
+}
+
struct process_block_struct {
ext2_resize_t rfs;
ext2_ino_t ino;
pb = (struct process_block_struct *) priv_data;
block = *block_nr;
if (pb->rfs->bmap) {
- new_block = ext2fs_extent_translate(pb->rfs->bmap, block);
+ new_block = extent_translate(fs, pb->rfs->bmap, block);
if (new_block) {
*block_nr = new_block;
ret |= BLOCK_CHANGED;
pb.changed = 0;
if (ext2fs_file_acl_block(rfs->old_fs, inode) && rfs->bmap) {
- new_block = ext2fs_extent_translate(rfs->bmap,
+ new_block = extent_translate(rfs->old_fs, rfs->bmap,
ext2fs_file_acl_block(rfs->old_fs, inode));
if (new_block) {
ext2fs_file_acl_block_set(rfs->old_fs, inode,
{
struct ext2_inode inode;
errcode_t retval;
- char * block_buf;
+ char *block_buf = NULL;
if (!(fs->super->s_feature_compat &
EXT2_FEATURE_COMPAT_RESIZE_INODE))
ext2_ino_t ino;
unsigned int group = 0;
unsigned int count = 0;
- int total_free = 0;
+ blk64_t total_blocks_free = 0;
+ int total_inodes_free = 0;
int group_free = 0;
int uninit = 0;
blk64_t super_blk, old_desc_blk, new_desc_blk;
else
old_desc_blocks = fs->desc_blocks +
fs->super->s_reserved_gdt_blocks;
- for (blk = fs->super->s_first_data_block;
- blk < ext2fs_blocks_count(fs->super); blk++) {
+ for (blk = B2C(fs->super->s_first_data_block);
+ blk < ext2fs_blocks_count(fs->super);
+ blk += EXT2FS_CLUSTER_RATIO(fs)) {
if ((uninit &&
- !((blk == super_blk) ||
+ !(EQ_CLSTR(blk, super_blk) ||
((old_desc_blk && old_desc_blocks &&
- (blk >= old_desc_blk) &&
- (blk < old_desc_blk + old_desc_blocks))) ||
- ((new_desc_blk && (blk == new_desc_blk))) ||
- (blk == ext2fs_block_bitmap_loc(fs, group)) ||
- (blk == ext2fs_inode_bitmap_loc(fs, group)) ||
- ((blk >= ext2fs_inode_table_loc(fs, group) &&
- (blk < ext2fs_inode_table_loc(fs, group)
- + fs->inode_blocks_per_group))))) ||
+ GE_CLSTR(blk, old_desc_blk) &&
+ LT_CLSTR(blk, old_desc_blk + old_desc_blocks))) ||
+ ((new_desc_blk && EQ_CLSTR(blk, new_desc_blk))) ||
+ EQ_CLSTR(blk, ext2fs_block_bitmap_loc(fs, group)) ||
+ EQ_CLSTR(blk, ext2fs_inode_bitmap_loc(fs, group)) ||
+ ((GE_CLSTR(blk, ext2fs_inode_table_loc(fs, group)) &&
+ LT_CLSTR(blk, ext2fs_inode_table_loc(fs, group)
+ + fs->inode_blocks_per_group))))) ||
(!ext2fs_fast_test_block_bitmap2(fs->block_map, blk))) {
group_free++;
- total_free++;
+ total_blocks_free++;
}
count++;
- if ((count == fs->super->s_blocks_per_group) ||
- (blk == ext2fs_blocks_count(fs->super)-1)) {
+ if ((count == fs->super->s_clusters_per_group) ||
+ EQ_CLSTR(blk, ext2fs_blocks_count(fs->super)-1)) {
ext2fs_bg_free_blocks_count_set(fs, group, group_free);
ext2fs_group_desc_csum_set(fs, group);
group++;
fs->super->s_reserved_gdt_blocks;
}
}
- ext2fs_free_blocks_count_set(fs->super, total_free);
+ total_blocks_free = C2B(total_blocks_free);
+ ext2fs_free_blocks_count_set(fs->super, total_blocks_free);
/*
* Next, calculate the inode statistics
*/
group_free = 0;
- total_free = 0;
count = 0;
group = 0;
if (uninit ||
!ext2fs_fast_test_inode_bitmap2(fs->inode_map, ino)) {
group_free++;
- total_free++;
+ total_inodes_free++;
}
count++;
if ((count == fs->super->s_inodes_per_group) ||
uninit = ext2fs_bg_flags_test(fs, group, EXT2_BG_INODE_UNINIT);
}
}
- fs->super->s_free_inodes_count = total_free;
+ fs->super->s_free_inodes_count = total_inodes_free;
ext2fs_mark_super_dirty(fs);
return 0;
}
return 0;
}
+static int calc_group_overhead(ext2_filsys fs, blk64_t grp,
+ int old_desc_blocks)
+{
+ blk64_t super_blk, old_desc_blk, new_desc_blk;
+ int overhead;
+
+ /* inode table blocks plus allocation bitmaps */
+ overhead = fs->inode_blocks_per_group + 2;
+
+ ext2fs_super_and_bgd_loc2(fs, grp, &super_blk,
+ &old_desc_blk, &new_desc_blk, 0);
+ if ((grp == 0) || super_blk)
+ overhead++;
+ if (old_desc_blk)
+ overhead += old_desc_blocks;
+ else if (new_desc_blk)
+ overhead++;
+ return overhead;
+}
+
+
/*
* calcluate the minimum number of blocks the given fs can be resized to
*/
blk64_t blks_needed, groups, data_blocks;
blk64_t grp, data_needed, last_start;
blk64_t overhead = 0;
- int num_of_superblocks = 0;
+ int old_desc_blocks;
int extra_groups = 0;
int flexbg_size = 1 << fs->super->s_log_groups_per_flex;
EXT2_BLOCKS_PER_GROUP(fs->super));
/*
- * we need to figure out how many backup superblocks we have so we can
- * account for that in the metadata
+ * number of old-style block group descriptor blocks
*/
- for (grp = 0; grp < fs->group_desc_count; grp++) {
- if (ext2fs_bg_has_super(fs, grp))
- num_of_superblocks++;
- }
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
+ old_desc_blocks = fs->super->s_first_meta_bg;
+ else
+ old_desc_blocks = fs->desc_blocks +
+ fs->super->s_reserved_gdt_blocks;
/* calculate how many blocks are needed for data */
data_needed = ext2fs_blocks_count(fs->super) -
ext2fs_free_blocks_count(fs->super);
- data_needed -= SUPER_OVERHEAD(fs) * num_of_superblocks;
- data_needed -= META_OVERHEAD(fs) * fs->group_desc_count;
+ for (grp = 0; grp < fs->group_desc_count; grp++)
+ data_needed -= calc_group_overhead(fs, grp, old_desc_blocks);
+
+ /*
+ * For ext4 we need to allow for up to a flex_bg worth of
+ * inode tables of slack space so the resize operation can be
+ * guaranteed to finish.
+ */
if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_FLEX_BG) {
- /*
- * For ext4 we need to allow for up to a flex_bg worth
- * of inode tables of slack space so the resize
- * operation can be guaranteed to finish.
- */
extra_groups = flexbg_size - (groups & (flexbg_size - 1));
- data_needed += META_OVERHEAD(fs) * extra_groups;
+ data_needed += fs->inode_blocks_per_group * extra_groups;
extra_groups = groups % flexbg_size;
}
data_blocks = groups * EXT2_BLOCKS_PER_GROUP(fs->super);
last_start = 0;
for (grp = 0; grp < groups; grp++) {
- overhead = META_OVERHEAD(fs);
-
- if (ext2fs_bg_has_super(fs, grp))
- overhead += SUPER_OVERHEAD(fs);
+ overhead = calc_group_overhead(fs, grp, old_desc_blocks);
/*
* we want to keep track of how much data we can store in
data_blocks += extra_grps * EXT2_BLOCKS_PER_GROUP(fs->super);
/* ok we have to account for the last group */
- overhead = META_OVERHEAD(fs);
- if (ext2fs_bg_has_super(fs, groups-1))
- overhead += SUPER_OVERHEAD(fs);
+ overhead = calc_group_overhead(fs, groups-1, old_desc_blocks);
last_start += EXT2_BLOCKS_PER_GROUP(fs->super) - overhead;
for (grp = groups; grp < groups+extra_grps; grp++) {
- overhead = META_OVERHEAD(fs);
- if (ext2fs_bg_has_super(fs, grp))
- overhead += SUPER_OVERHEAD(fs);
+ overhead = calc_group_overhead(fs, grp,
+ old_desc_blocks);
/*
* again, we need to see how much data we cram into
*/
extra_groups = flexbg_size -
(groups & (flexbg_size - 1));
- data_needed += META_OVERHEAD(fs) * extra_groups;
+ data_needed += (fs->inode_blocks_per_group *
+ extra_groups);
extra_groups = groups % flexbg_size;
}
}
/* now for the fun voodoo */
- overhead = META_OVERHEAD(fs);
+ overhead = calc_group_overhead(fs, groups-1, old_desc_blocks);
/*
* if this is the case then the last group is going to have data in it
} else
overhead += 50;
- if (ext2fs_bg_has_super(fs, groups-1))
- overhead += SUPER_OVERHEAD(fs);
overhead += fs->super->s_first_data_block;
/*
#define RESIZE_DEBUG_BMOVE 0x0002
#define RESIZE_DEBUG_INODEMAP 0x0004
#define RESIZE_DEBUG_ITABLEMOVE 0x0008
+#define RESIZE_DEBUG_RTRACK 0x0010
#define RESIZE_PERCENT_COMPLETE 0x0100
#define RESIZE_VERBOSE 0x0200
/*
+ * This structure is used for keeping track of how much resources have
+ * been used for a particular resize2fs pass.
+ */
+struct resource_track {
+ const char *desc;
+ struct timeval time_start;
+ struct timeval user_start;
+ struct timeval system_start;
+ void *brk_start;
+ unsigned long long bytes_read;
+ unsigned long long bytes_written;
+};
+
+/*
* The core state structure for the ext2 resizer
*/
typedef struct ext2_resize_struct *ext2_resize_t;
extern errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
blk64_t *new_size, int flags);
+/* resource_track.c */
+extern void init_resource_track(struct resource_track *track, const char *desc,
+ io_channel channel);
+extern void print_resource_track(ext2_resize_t rfs,
+ struct resource_track *track,
+ io_channel channel);
+
/* sim_progress.c */
extern errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,
const char *label,
--- /dev/null
+/*
+ * resource_track.c --- resource tracking
+ *
+ * Copyright (C) 2013 by Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+
+#include "config.h"
+#include "resize2fs.h"
+#include <time.h>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#include <sys/resource.h>
+
+void init_resource_track(struct resource_track *track, const char *desc,
+ io_channel channel)
+{
+#ifdef HAVE_GETRUSAGE
+ struct rusage r;
+#endif
+ io_stats io_start = 0;
+
+ track->desc = desc;
+ track->brk_start = sbrk(0);
+ gettimeofday(&track->time_start, 0);
+#ifdef HAVE_GETRUSAGE
+#ifdef sun
+ memset(&r, 0, sizeof(struct rusage));
+#endif
+ getrusage(RUSAGE_SELF, &r);
+ track->user_start = r.ru_utime;
+ track->system_start = r.ru_stime;
+#else
+ track->user_start.tv_sec = track->user_start.tv_usec = 0;
+ track->system_start.tv_sec = track->system_start.tv_usec = 0;
+#endif
+ track->bytes_read = 0;
+ track->bytes_written = 0;
+ if (channel && channel->manager && channel->manager->get_stats)
+ channel->manager->get_stats(channel, &io_start);
+ if (io_start) {
+ track->bytes_read = io_start->bytes_read;
+ track->bytes_written = io_start->bytes_written;
+ }
+}
+
+static float timeval_subtract(struct timeval *tv1,
+ struct timeval *tv2)
+{
+ return ((tv1->tv_sec - tv2->tv_sec) +
+ ((float) (tv1->tv_usec - tv2->tv_usec)) / 1000000);
+}
+
+void print_resource_track(ext2_resize_t rfs, struct resource_track *track,
+ io_channel channel)
+{
+#ifdef HAVE_GETRUSAGE
+ struct rusage r;
+#endif
+#ifdef HAVE_MALLINFO
+ struct mallinfo malloc_info;
+#endif
+ struct timeval time_end;
+
+ if ((rfs->flags & RESIZE_DEBUG_RTRACK) == 0)
+ return;
+
+ gettimeofday(&time_end, 0);
+
+ if (track->desc)
+ printf("%s: ", track->desc);
+
+#ifdef HAVE_MALLINFO
+#define kbytes(x) (((unsigned long)(x) + 1023) / 1024)
+
+ malloc_info = mallinfo();
+ printf("Memory used: %luk/%luk (%luk/%luk), ",
+ kbytes(malloc_info.arena), kbytes(malloc_info.hblkhd),
+ kbytes(malloc_info.uordblks), kbytes(malloc_info.fordblks));
+#else
+ printf("Memory used: %lu, ",
+ (unsigned long) (((char *) sbrk(0)) -
+ ((char *) track->brk_start)));
+#endif
+#ifdef HAVE_GETRUSAGE
+ getrusage(RUSAGE_SELF, &r);
+
+ printf("time: %5.2f/%5.2f/%5.2f\n",
+ timeval_subtract(&time_end, &track->time_start),
+ timeval_subtract(&r.ru_utime, &track->user_start),
+ timeval_subtract(&r.ru_stime, &track->system_start));
+#else
+ printf("elapsed time: %6.3f\n",
+ timeval_subtract(&time_end, &track->time_start));
+#endif
+#define mbytes(x) (((x) + 1048575) / 1048576)
+ if (channel && channel->manager && channel->manager->get_stats) {
+ io_stats delta = 0;
+ unsigned long long bytes_read = 0;
+ unsigned long long bytes_written = 0;
+
+ channel->manager->get_stats(channel, &delta);
+ if (delta) {
+ bytes_read = delta->bytes_read - track->bytes_read;
+ bytes_written = delta->bytes_written -
+ track->bytes_written;
+ if (bytes_read == 0 && bytes_written == 0)
+ goto skip_io;
+ if (track->desc)
+ printf("%s: ", track->desc);
+ printf("I/O read: %lluMB, write: %lluMB, "
+ "rate: %.2fMB/s\n",
+ mbytes(bytes_read),
+ mbytes(bytes_written),
+ (double)mbytes(bytes_read + bytes_written) /
+ timeval_subtract(&time_end, &track->time_start));
+ }
+ }
+skip_io:
+ fflush(stdout);
+}
+
--- /dev/null
+#!/bin/sh
+
+FS=/bigscratch/testfs
+FEATURE="-O 64bit"
+
+RESIZE2FS=/tmp/resize2fs.static
+MKE2FS=mke2fs
+DUMPE2FS=dumpe2fs
+E2FSCK=e2fsck
+
+/bin/rm -f $FS ; touch $FS
+truncate -s 8T $FS
+$MKE2FS -F -t ext4 $FEATURE $FS
+$E2FSCK -FY $FS
+$DUMPE2FS $FS > /tmp/d1
+
+truncate -s 20T $FS
+time $RESIZE2FS -d 31 -p $FS > /tmp/r1
+$DUMPE2FS $FS > /tmp/d2
+$E2FSCK -fy $FS
+$DUMPE2FS $FS > /tmp/d3
+
+truncate -s 21T $FS
+time $RESIZE2FS -d 31 -p $FS > /tmp/r2
+$DUMPE2FS $FS > /tmp/d4
+$E2FSCK -fy $FS
+$DUMPE2FS $FS > /tmp/d5
$DEBUGFS -R "write $TEST_DATA test_data" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo e2fsck $VERIFY_FSCK_OPT -N test_filesys > $OUT.new
$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo "debugfs -R ''dump test_data $VERIFY_DATA'' test.img" > $OUT.new
$DEBUGFS -R "dump test_data $VERIFY_DATA" $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
echo "cmp $TEST_DATA $VERIFY_DATA" >> $OUT
cmp $TEST_DATA $VERIFY_DATA >>$OUT
--- /dev/null
+debugfs create special files
+mke2fs -Fq -b 1024 test.img 512
+Exit status is 0
+debugfs -R ''stat foo'' -w test.img
+Inode: 12 Type: symlink Mode: 0777 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 3
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Fast_link_dest: bar
+Exit status is 0
+debugfs -R ''stat foo2'' -w test.img
+Inode: 13 Type: symlink Mode: 0777 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 80
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 2
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+BLOCKS:
+(0):28
+TOTAL: 1
+
+Exit status is 0
+debugfs -R ''block_dump 28'' -w test.img
+0000 3132 3334 3536 3738 3930 3132 3334 3536 1234567890123456
+0020 3738 3930 3132 3334 3536 3738 3930 3132 7890123456789012
+0040 3334 3536 3738 3930 3132 3334 3536 3738 3456789012345678
+0060 3930 3132 3334 3536 3738 3930 3132 3334 9012345678901234
+0100 3536 3738 3930 3132 3334 3536 3738 3930 5678901234567890
+0120 0000 0000 0000 0000 0000 0000 0000 0000 ................
+*
+
+Exit status is 0
+debugfs -R ''stat pipe'' -w test.img
+Inode: 14 Type: FIFO Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+BLOCKS:
+
+Exit status is 0
+debugfs -R ''stat sda'' -w test.img
+Inode: 15 Type: block special Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Device major/minor number: 08:00 (hex 08:00)
+Exit status is 0
+debugfs -R ''stat null'' -w test.img
+Inode: 16 Type: character special Mode: 0000 Flags: 0x0
+Generation: 0 Version: 0x00000000
+User: 0 Group: 0 Size: 0
+File ACL: 0 Directory ACL: 0
+Links: 1 Blockcount: 0
+Fragment: Address: 0 Number: 0 Size: 0
+ctime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+atime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+mtime: 0x50f560e0 -- Tue Jan 15 14:00:00 2013
+Device major/minor number: 01:03 (hex 01:03)
+Exit status is 0
+e2fsck -yf -N test_filesys
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 16/64 files (0.0% non-contiguous), 29/512 blocks
+Exit status is 0
--- /dev/null
+create special files in debugfs
--- /dev/null
+if test -x $DEBUGFS_EXE; then
+
+OUT=$test_name.log
+EXP=$test_dir/expect
+VERIFY_FSCK_OPT=-yf
+
+TEST_DATA=$test_name.tmp
+VERIFY_DATA=$test_name.ver.tmp
+
+echo "debugfs create special files" > $OUT
+
+dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
+
+echo "mke2fs -Fq -b 1024 test.img 512" >> $OUT
+
+$MKE2FS -Fq $TMPFILE 512 > /dev/null 2>&1
+status=$?
+echo Exit status is $status >> $OUT
+
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
+set_current_time 201301151400
+set_super_value lastcheck 0
+set_super_value hash_seed null
+set_super_value mkfs_time 0
+symlink foo bar
+symlink foo2 12345678901234567890123456789012345678901234567890123456789012345678901234567890
+mknod pipe p
+mknod sda b 8 0
+mknod null c 1 3
+EOF
+
+echo "debugfs -R ''stat foo'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat foo" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat foo2'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat foo2" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''block_dump 28'' -w test.img" > $OUT.new
+$DEBUGFS -R "block_dump 28" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat pipe'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat pipe" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat sda'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat sda" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo "debugfs -R ''stat null'' -w test.img" > $OUT.new
+$DEBUGFS -R "stat null" -w $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+echo e2fsck $VERIFY_FSCK_OPT -N test_filesys > $OUT.new
+$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
+
+#
+# Do the verification
+#
+
+rm -f $TMPFILE $OUT.new
+cmp -s $OUT $EXP
+status=$?
+
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ diff $DIFF_OPTS $EXP $OUT > $test_name.failed
+fi
+
+unset VERIFY_FSCK_OPT NATIVE_FSCK_OPT OUT EXP TEST_DATA VERIFY_DATA
+
+else #if test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Interior extent node level 0 of inode 12:
+Logical start 0 does not match logical start 2 at next level. Fix? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+Exit status is 1
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/16 files (0.0% non-contiguous), 29/100 blocks
+Exit status is 0
--- /dev/null
+incorrect starting lblk in an interior node
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Inode 12, end of extent exceeds allowed value
+ (logical block 15, physical block 200, len 30)
+Clear? yes
+
+Inode 12, i_blocks is 154, should be 94. Fix? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Block bitmap differences: -(200--229)
+Fix? yes
+
+Free blocks count wrong for group #0 (156, counted=186).
+Fix? yes
+
+Free blocks count wrong (156, counted=186).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks
+Exit status is 1
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks
+Exit status is 0
--- /dev/null
+if test -x $DEBUGFS_EXE; then
+
+SKIP_GUNZIP="true"
+TEST_DATA="$test_name.tmp"
+
+dd if=/dev/zero of=$TMPFILE bs=1k count=256 > /dev/null 2>&1
+mke2fs -Ft ext4 $TMPFILE > /dev/null 2>&1
+debugfs -w $TMPFILE << EOF > /dev/null 2>&1
+write /dev/null testfile
+extent_open testfile
+ insert_node 0 15 100
+ insert_node --after 15 15 115
+ insert_node --after 30 15 130
+ insert_node --after 45 15 145
+ split
+ down
+ split
+ root
+ down
+ next
+ replace_node 15 30 200
+ extent_close
+set_inode_field testfile i_size 61400
+set_inode_field testfile i_blocks 154
+setb 100 15
+setb 130 30
+setb 200 30
+set_bg 0 free_blocks_count 156
+set_bg 0 bg_checksum calc
+set_super_value free_blocks_count 156
+q
+EOF
+
+. $cmd_dir/run_e2fsck
+
+rm -f $TEST_DATA
+
+unset E2FSCK_TIME TEST_DATA
+
+else #if test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Symlink /a (inode #12) is invalid.
+Clear? yes
+
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/16 files (9.1% non-contiguous), 21/100 blocks
+Exit status is 1
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/16 files (0.0% non-contiguous), 21/100 blocks
+Exit status is 0
--- /dev/null
+extent-mapped symlink with two blocks
-
Journal starts at block 1, transaction 2
Found expected sequence 2, type 1 (descriptor block) at block 1
Dumping descriptor block, sequence 2, at block 1:
-PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs > $test_name.0.log'
+PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
PASS_ZERO=true
. $cmd_dir/run_e2fsck
-
Journal starts at block 67, transaction 32
Found expected sequence 32, type 5 (revoke table) at block 67
Dumping revoke block, sequence 32, at block 67:
-PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs > $test_name.0.log'
+PREP_CMD='$DEBUGFS -R "logdump -a" $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
PASS_ZERO=true
. $cmd_dir/run_e2fsck
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
-AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs > $test_name.0.log'
+AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed > $test_name.0.log'
PASS_ZERO=true
. $cmd_dir/run_e2fsck
return $status
fi
+kill_debugfs() {
+ trap 0
+ PID=$(ps -o pid,command | grep -v awk |
+ awk "/debugfs -w $TMPFILE/ { print \$1 }")
+ [ "x$PID" != "x" ] && kill -9 $PID
+}
+
# this will cause debugfs to create the $test_name.mark file once it has
# passed the MMP startup, then continue reading input until it is killed
MARKFILE=$test_name.new
rm -f $MARKFILE
+trap kill_debugfs EXIT
echo "set mmp sequence to EXT2_MMP_SEQ_FSCK..." >> $test_name.log
( { echo dump_mmp; echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } |
$DEBUGFS -w $TMPFILE >> $test_name.log 2>&1 & ) > /dev/null 2>&1 &
done
rm -f $MARKFILE
echo "kill debugfs abruptly (simulates e2fsck failure) ..." >> $test_name.log
-killall -9 debugfs >> $test_name.log
+kill_debugfs
echo "e2fsck (should fail mmp_seq = EXT2_MMP_SEQ_FSCK) ..." >> $test_name.log
+test_filesys: Truncating orphaned inode 12 (uid=0, gid=0, mode=0100644, size=0)
test_filesys: clean, 12/16 files, 21/100 blocks
Exit status is 0
+test_filesys: Note: if several inode or block bitmap blocks or part
of the inode table require relocation, you may wish to try
running e2fsck with the '-b 8193' option first. The problem
may lie only with the primary block group descriptors, and
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217
-Allocating group tables: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
-Writing inode tables: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
-Writing superblocks and filesystem accounting information: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
+Allocating group tables: \b\b\b\b\bdone
+Writing inode tables: \b\b\b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\b\b\bdone
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 16384 > $OUT
-$MKE2FS -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v 'Discarding device blocks' |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
$DEBUGFS -R "set_inode_field <7> block[2] 42" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
$DEBUGFS -R "clri <7>" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
$DEBUGFS -R "set_inode_field <7> bmap[524] 57" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
$DEBUGFS -R "set_super_value reserved_gdt_blocks 15679" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
echo ----------------------------------------------- >> $OUT
$DEBUGFS -R "set_super_value reserved_gdt_blocks 32" -w $TMPFILE >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '2d' $OUT.new >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
rm -f $OUT.new
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Inode 12 is too big. Truncate? yes
+
+Block #4294967281 (90) causes directory to be too big. CLEARED.
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 12/56 files (0.0% non-contiguous), 28/400 blocks
+Exit status is 1
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/56 files (0.0% non-contiguous), 28/400 blocks
+Exit status is 0
--- /dev/null
+directory with a very large lblk in extent
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 12/24 files (0.0% non-contiguous), 25/200 blocks
+Exit status is 0
--- /dev/null
+zero length extended attribute in in-inode xattr
--- /dev/null
+ONE_PASS_ONLY="true"
+. $cmd_dir/run_e2fsck
-1s/^.*$//
-/^Filesystem UUID:/d
+/^[dbgumpe2fsckrsiz]* [1-9]\.[0-9]*[.-][^ ]* ([0-9]*-[A-Za-z]*-[0-9]*)/d
+s/\\015//g
+/automatically checked/d
+/^Directory Hash Seed:/d
+/Discarding device blocks/d
/^Filesystem created:/d
/^Filesystem flags:/d
+/^Filesystem UUID:/d
+/^JFS DEBUG:/d
/^Last write time:/d
/^Last mount time:/d
/^Last checked:/d
-/^Directory Hash Seed:/d
-/^Next check after:/d
-/^Maximum mount count:/d
/^Lifetime writes:/d
+/^Maximum mount count:/d
+/^Next check after:/d
/Reserved blocks uid:/s/ (user .*)//
/Reserved blocks gid:/s/ (group .*)//
+/whichever comes first/d
/^ Checksum /d
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/1344 files (0.0% non-contiguous), 1286989/2750000 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
16384
-Allocating group tables: 0/2\b\b\b1/2\b\b\b \b\b\bdone
-Writing inode tables: 0/2\b\b\b1/2\b\b\b \b\b\bdone
-Writing superblocks and filesystem accounting information: 0/2\b\b\b1/2\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 1104/32768 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
-Allocating group tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
-Writing inode tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
Creating journal (4096 blocks): done
-Writing superblocks and filesystem accounting information: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 7460/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
32768 blocks per group, 32768 fragments per group
64 inodes per group
-Allocating group tables: 0/1\b\b\b \b\b\bdone
-Writing inode tables: 0/1\b\b\b \b\b\bdone
-Writing superblocks and filesystem accounting information: 0/1\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/64 files (0.0% non-contiguous), 17/16384 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217, 25601, 27649, 50177, 82945, 128001
-Allocating group tables: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
-Writing inode tables: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
-Writing superblocks and filesystem accounting information: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
+Allocating group tables: \b\b\b\b\b\b\bdone
+Writing inode tables: \b\b\b\b\b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\b\b\b\b\bdone
Filesystem features: ext_attr dir_index filetype meta_bg sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 4389/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
cp /dev/null $OUT
-$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 | sed -e 1d | \
- sed -e "s;$TMPFILE;test.img;" | tr -d \\015 > $OUT
+$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" > $OUT
rm -f $TMPFILE
Superblock backups stored on blocks:
32768
-Allocating group tables: 0/2\b\b\b1/2\b\b\b \b\b\bdone
-Writing inode tables: 0/2\b\b\b1/2\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
Multiple mount protection is enabled with update interval 5 seconds.
-Writing superblocks and filesystem accounting information: 0/2\b\b\b1/2\b\b\b \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype mmp sparse_super large_file
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/65536 files (0.0% non-contiguous), 2093/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
8193, 16385, 24577, 32769, 40961, 49153, 57345
-Allocating group tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
-Writing inode tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
-Writing superblocks and filesystem accounting information: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features:(none)
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 2094/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
1025, 3073, 5121, 7169, 9217, 25601, 27649, 50177, 82945, 128001
-Allocating group tables: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
-Writing inode tables: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
-Writing superblocks and filesystem accounting information: 0/128\b\b\b\b\b\b\b 1/128\b\b\b\b\b\b\b 2/128\b\b\b\b\b\b\b 3/128\b\b\b\b\b\b\b 4/128\b\b\b\b\b\b\b 5/128\b\b\b\b\b\b\b 6/128\b\b\b\b\b\b\b 7/128\b\b\b\b\b\b\b 8/128\b\b\b\b\b\b\b 9/128\b\b\b\b\b\b\b 10/128\b\b\b\b\b\b\b 11/128\b\b\b\b\b\b\b 12/128\b\b\b\b\b\b\b 13/128\b\b\b\b\b\b\b 14/128\b\b\b\b\b\b\b 15/128\b\b\b\b\b\b\b 16/128\b\b\b\b\b\b\b 17/128\b\b\b\b\b\b\b 18/128\b\b\b\b\b\b\b 19/128\b\b\b\b\b\b\b 20/128\b\b\b\b\b\b\b 21/128\b\b\b\b\b\b\b 22/128\b\b\b\b\b\b\b 23/128\b\b\b\b\b\b\b 24/128\b\b\b\b\b\b\b 25/128\b\b\b\b\b\b\b 26/128\b\b\b\b\b\b\b 27/128\b\b\b\b\b\b\b 28/128\b\b\b\b\b\b\b 29/128\b\b\b\b\b\b\b 30/128\b\b\b\b\b\b\b 31/128\b\b\b\b\b\b\b 32/128\b\b\b\b\b\b\b 33/128\b\b\b\b\b\b\b 34/128\b\b\b\b\b\b\b 35/128\b\b\b\b\b\b\b 36/128\b\b\b\b\b\b\b 37/128\b\b\b\b\b\b\b 38/128\b\b\b\b\b\b\b 39/128\b\b\b\b\b\b\b 40/128\b\b\b\b\b\b\b 41/128\b\b\b\b\b\b\b 42/128\b\b\b\b\b\b\b 43/128\b\b\b\b\b\b\b 44/128\b\b\b\b\b\b\b 45/128\b\b\b\b\b\b\b 46/128\b\b\b\b\b\b\b 47/128\b\b\b\b\b\b\b 48/128\b\b\b\b\b\b\b 49/128\b\b\b\b\b\b\b 50/128\b\b\b\b\b\b\b 51/128\b\b\b\b\b\b\b 52/128\b\b\b\b\b\b\b 53/128\b\b\b\b\b\b\b 54/128\b\b\b\b\b\b\b 55/128\b\b\b\b\b\b\b 56/128\b\b\b\b\b\b\b 57/128\b\b\b\b\b\b\b 58/128\b\b\b\b\b\b\b 59/128\b\b\b\b\b\b\b 60/128\b\b\b\b\b\b\b 61/128\b\b\b\b\b\b\b 62/128\b\b\b\b\b\b\b 63/128\b\b\b\b\b\b\b 64/128\b\b\b\b\b\b\b 65/128\b\b\b\b\b\b\b 66/128\b\b\b\b\b\b\b 67/128\b\b\b\b\b\b\b 68/128\b\b\b\b\b\b\b 69/128\b\b\b\b\b\b\b 70/128\b\b\b\b\b\b\b 71/128\b\b\b\b\b\b\b 72/128\b\b\b\b\b\b\b 73/128\b\b\b\b\b\b\b 74/128\b\b\b\b\b\b\b 75/128\b\b\b\b\b\b\b 76/128\b\b\b\b\b\b\b 77/128\b\b\b\b\b\b\b 78/128\b\b\b\b\b\b\b 79/128\b\b\b\b\b\b\b 80/128\b\b\b\b\b\b\b 81/128\b\b\b\b\b\b\b 82/128\b\b\b\b\b\b\b 83/128\b\b\b\b\b\b\b 84/128\b\b\b\b\b\b\b 85/128\b\b\b\b\b\b\b 86/128\b\b\b\b\b\b\b 87/128\b\b\b\b\b\b\b 88/128\b\b\b\b\b\b\b 89/128\b\b\b\b\b\b\b 90/128\b\b\b\b\b\b\b 91/128\b\b\b\b\b\b\b 92/128\b\b\b\b\b\b\b 93/128\b\b\b\b\b\b\b 94/128\b\b\b\b\b\b\b 95/128\b\b\b\b\b\b\b 96/128\b\b\b\b\b\b\b 97/128\b\b\b\b\b\b\b 98/128\b\b\b\b\b\b\b 99/128\b\b\b\b\b\b\b100/128\b\b\b\b\b\b\b101/128\b\b\b\b\b\b\b102/128\b\b\b\b\b\b\b103/128\b\b\b\b\b\b\b104/128\b\b\b\b\b\b\b105/128\b\b\b\b\b\b\b106/128\b\b\b\b\b\b\b107/128\b\b\b\b\b\b\b108/128\b\b\b\b\b\b\b109/128\b\b\b\b\b\b\b110/128\b\b\b\b\b\b\b111/128\b\b\b\b\b\b\b112/128\b\b\b\b\b\b\b113/128\b\b\b\b\b\b\b114/128\b\b\b\b\b\b\b115/128\b\b\b\b\b\b\b116/128\b\b\b\b\b\b\b117/128\b\b\b\b\b\b\b118/128\b\b\b\b\b\b\b119/128\b\b\b\b\b\b\b120/128\b\b\b\b\b\b\b121/128\b\b\b\b\b\b\b122/128\b\b\b\b\b\b\b123/128\b\b\b\b\b\b\b124/128\b\b\b\b\b\b\b125/128\b\b\b\b\b\b\b126/128\b\b\b\b\b\b\b127/128\b\b\b\b\b\b\b \b\b\b\b\b\b\bdone
+Allocating group tables: \b\b\b\b\b\b\bdone
+Writing inode tables: \b\b\b\b\b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\b\b\b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 7238/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
DESCRIPTION="raid options"
FS_SIZE=131072
-MKE2FS_OPTS="-R stride=13 -O sparse_super -g 1024"
+MKE2FS_OPTS="-E stride=13 -O sparse_super -g 1024"
. $cmd_dir/run_mke2fs
--- /dev/null
+Filesystem label=
+OS type: Linux
+Block size=1024 (log=0)
+Fragment size=1024 (log=0)
+Stride=0 blocks, Stripe width=0 blocks
+128 inodes, 1024 blocks
+51 blocks (4.98%) reserved for the super user
+First data block=1
+Root directory owner=1234:1234
+Maximum filesystem blocks=1048576
+1 block group
+8192 blocks per group, 8192 fragments per group
+128 inodes per group
+
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
+
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/128 files (0.0% non-contiguous), 38/1024 blocks
+Exit status is 0
+Filesystem volume name: <none>
+Last mounted on: <not available>
+Filesystem magic number: 0xEF53
+Filesystem revision #: 1 (dynamic)
+Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
+Default mount options: (none)
+Filesystem state: clean
+Errors behavior: Continue
+Filesystem OS type: Linux
+Inode count: 128
+Block count: 1024
+Reserved block count: 51
+Free blocks: 986
+Free inodes: 117
+First block: 1
+Block size: 1024
+Fragment size: 1024
+Reserved GDT blocks: 3
+Blocks per group: 8192
+Fragments per group: 8192
+Inodes per group: 128
+Inode blocks per group: 16
+Mount count: 0
+Check interval: 15552000 (6 months)
+Reserved blocks uid: 0
+Reserved blocks gid: 0
+First inode: 11
+Inode size: 128
+Default directory hash: half_md4
+
+
+Group 0: (Blocks 1-1023)
+ Primary superblock at 1, Group descriptors at 2-2
+ Reserved GDT blocks at 3-5
+ Block bitmap at 6 (+5), Inode bitmap at 7 (+6)
+ Inode table at 8-23 (+7)
+ 986 free blocks, 117 free inodes, 2 directories
+ Free blocks: 38-1023
+ Free inodes: 12-128
--- /dev/null
+DESCRIPTION="root directory owner"
+FS_SIZE=1024
+MKE2FS_OPTS="-E root_owner=1234:1234"
+. $cmd_dir/run_mke2fs
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
-Allocating group tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
-Writing inode tables: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
-Writing superblocks and filesystem accounting information: 0/8\b\b\b1/8\b\b\b2/8\b\b\b3/8\b\b\b4/8\b\b\b5/8\b\b\b6/8\b\b\b7/8\b\b\b \b\b\bdone
+Allocating group tables: \b\b\bdone
+Writing inode tables: \b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/16384 files (0.0% non-contiguous), 3364/65536 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
-Allocating group tables: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
-Writing inode tables: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
-Writing superblocks and filesystem accounting information: 0/16\b\b\b\b\b 1/16\b\b\b\b\b 2/16\b\b\b\b\b 3/16\b\b\b\b\b 4/16\b\b\b\b\b 5/16\b\b\b\b\b 6/16\b\b\b\b\b 7/16\b\b\b\b\b 8/16\b\b\b\b\b 9/16\b\b\b\b\b10/16\b\b\b\b\b11/16\b\b\b\b\b12/16\b\b\b\b\b13/16\b\b\b\b\b14/16\b\b\b\b\b15/16\b\b\b\b\b \b\b\b\b\bdone
+Allocating group tables: \b\b\b\b\bdone
+Writing inode tables: \b\b\b\b\bdone
+Writing superblocks and filesystem accounting information: \b\b\b\b\bdone
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super uninit_bg
-
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 5: Checking group summary information
test_filesys: 11/32768 files (0.0% non-contiguous), 5691/131072 blocks
Exit status is 0
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
reserved_ratio = 5.0
enable_periodic_fsck = true
lazy_itable_init = false
+ no_discard = true
default_mntopts = ^acl
[fs_types]
MK_CMDS= _SS_DIR_OVERRIDE=../../lib/ss ../../lib/ss/mk_cmds
-PROGS= test_icount
+PROGS= test_icount crcsum
TEST_REL_OBJS= test_rel.o test_rel_cmds.o
$(E) " LD $@"
$(Q) $(LD) $(ALL_LDFLAGS) -o test_rel $(TEST_REL_OBJS) $(LIBS)
+crcsum: crcsum.o $(DEPLIBS)
+ $(E) " LD $@"
+ $(Q) $(LD) $(ALL_LDFLAGS) -o crcsum crcsum.o $(LIBS)
+
test_rel_cmds.c: test_rel_cmds.ct
$(E) " MK_CMDS $@"
$(Q) $(MK_CMDS) $(srcdir)/test_rel_cmds.ct
--- /dev/null
+/*
+ * crcsum.c
+ *
+ * Copyright (C) 2013 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#endif
+#include <fcntl.h>
+
+#include "et/com_err.h"
+#include "ss/ss.h"
+#include "ext2fs/ext2fs.h"
+
+
+int main(int argc, char **argv)
+{
+ int c;
+ uint32_t crc = ~0;
+ uint32_t (*csum_func)(uint32_t crc, unsigned char const *p,
+ size_t len);
+ FILE *f;
+
+ csum_func = ext2fs_crc32c_le;
+
+ while ((c = getopt (argc, argv, "h")) != EOF) {
+ switch (c) {
+ case 'h':
+ default:
+ com_err(argv[0], 0, "Usage: crcsum [file]\n");
+ return 1;
+ }
+ }
+
+ if (optind == argc)
+ f = stdin;
+ else {
+ f = fopen(argv[optind], "r");
+ if (!f) {
+ com_err(argv[0], errno, "while trying to open %s\n",
+ argv[optind]);
+ exit(1);
+ }
+ }
+
+ while (!feof(f)) {
+ unsigned char buf[4096];
+
+ int c = fread(buf, 1, sizeof(buf), f);
+
+ if (c)
+ crc = csum_func(crc, buf, c);
+ }
+ printf("%u\n", crc);
+ return 0;
+}
--- /dev/null
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext2 1024 blocksize with small block groups"
+FEATURES="-t ext2 -O ^resize_inode -b 1024 -g 1024"
+SIZE_1=64M
+SIZE_2=2G
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+if resize_test
+then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ touch $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
--- /dev/null
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="very large fs growth using ext4 w/64bit"
+FEATURES="-t ext4 -O 64bit"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+if resize_test
+then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ touch $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
--- /dev/null
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext4 with bigalloc"
+FEATURES="-t ext4 -O bigalloc"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+RESIZE2FS_OPTS=-f
+
+. $cmd_dir/scripts/resize_test
+
+if resize_test
+then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ touch $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
--- /dev/null
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="very large fs growth using ext4"
+FEATURES="-t ext4"
+SIZE_1=512M
+SIZE_2=2T
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+if resize_test
+then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ touch $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
--- /dev/null
+if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+
+test_description="ext4 1024 blocksize with small block groups"
+FEATURES="-t ext4 -O ^resize_inode -b 1024 -g 512"
+SIZE_1=64M
+SIZE_2=2G
+LOG=$test_name.log
+E2FSCK=../e2fsck/e2fsck
+
+
+. $cmd_dir/scripts/resize_test
+
+if resize_test
+then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ touch $test_name.failed
+fi
+
+unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK
+
+else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped"
+fi
+
$RESIZE2FS $TMPFILE 5M 2>&1 >> $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e "s;$TMPFILE;test.img;" >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
# Look at inline extended attribute in resized fs
echo "debugfs -R ''stat file'' test.img 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT
test_filesys: 11/1248 files (0.0% non-contiguous), 1281/9985 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
test_filesys: 11/2496 files (0.0% non-contiguous), 1644/19969 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
test_filesys: 11/3744 files (0.0% non-contiguous), 2007/29953 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
test_filesys: 11/5024 files (0.0% non-contiguous), 2376/40000 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -o Linux -b 1024 -g 256 test.img 1024 > $OUT
-$MKE2FS -q -F -o Linux -b 1024 -g 256 $TMPFILE 1024 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -o Linux -b 1024 -g 256 $TMPFILE 1024 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs -p test.img 10000 >> $OUT
-$RESIZE2FS -p $TMPFILE 10000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 10000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 20000 >> $OUT
-$RESIZE2FS -p $TMPFILE 20000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 20000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 30000 >> $OUT
-$RESIZE2FS -p $TMPFILE 30000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 30000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs -p test.img 40000 >> $OUT
-$RESIZE2FS -p $TMPFILE 40000 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS -p $TMPFILE 40000 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
rm -f $TMPFILE
test_filesys: 11/16384 files (0.0% non-contiguous), 4513/65536 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
test_filesys: 11/4096 files (0.0% non-contiguous), 2107/16384 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
test_filesys: 11/41472 files (0.0% non-contiguous), 8361/165536 blocks
Exit status is 0
dumpe2fs test.img
-
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem magic number: 0xEF53
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 16384 > $OUT
-$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs test.img 65536 >> $OUT
-$RESIZE2FS $TMPFILE 65536 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 65536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -O resize_inode -o Linux -b 1024 -g 1024 test.img 65536 >> $OUT
-$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 65536 2>&1 \
- | sed -e '1d' | grep -v "automatically checked" |
- grep -v "whichever comes first" >> $OUT
+$MKE2FS -q -F -O resize_inode -o Linux -b 1024 -g 1024 $TMPFILE 65536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
echo resize2fs test.img 16384 >> $OUT
-$RESIZE2FS $TMPFILE 16384 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 16384 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
echo "--------------------------------" >> $OUT
echo resize2fs test.img 165536 >> $OUT
-$RESIZE2FS $TMPFILE 165536 2>&1 | sed -e '1d' | \
- sed -e "s;$TMPFILE;test.img;" >> $OUT
+$RESIZE2FS $TMPFILE 165536 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT.new 2>&1
status=$?
echo Exit status is $status >> $OUT.new
-sed -e '1d' $OUT.new | sed -e '/^JFS DEBUG:/d' | tr -d \\015 >> $OUT
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
rm -f $OUT.new
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs test.img >> $OUT
-$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs >> $OUT
+$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
rm -f $TMPFILE
cmp -s $OUT $EXP
$FSCK $FSCK_OPT -N test_filesys $TMPFILE > $OUT1.new 2>&1
status=$?
echo Exit status is $status >> $OUT1.new
-sed -e '1d' $OUT1.new | sed -e '/^JFS DEBUG:/d' | \
- sed -e "s;$TMPFILE;test.img;" | tr -d \\015 >> $OUT1
+sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT1.new >> $OUT1
rm -f $OUT1.new
if [ "$ONE_PASS_ONLY" != "true" ]; then
$FSCK $SECOND_FSCK_OPT -N test_filesys $TMPFILE > $OUT2.new 2>&1
status=$?
echo Exit status is $status >> $OUT2.new
- sed -e '1d' $OUT2.new | sed -e '/^JFS DEBUG:/d' | \
- sed -e "s;$TMPFILE;test.img;" > $OUT2
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT2.new > $OUT2
rm -f $OUT2.new
fi
MKE2FS_SKIP_CHECK_MSG=true
export MKE2FS_SKIP_PROGRESS MKE2FS_SKIP_CHECK_MSG
> $TMPFILE
-PREP_CMD='$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 | sed -e 1d | grep -v "Discarding device blocks" | tr -d \\015 > $OUT1 ; $DEBUGFS -R features $TMPFILE 2>&1 | sed -e 1d | tr -d \\015 >> $OUT1 ; echo " " >> $OUT1'
-AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter_dumpe2fs | tr -d \\015 >> $OUT1'
+PREP_CMD='$MKE2FS -F -o Linux $MKE2FS_OPTS $TMPFILE $FS_SIZE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" > $OUT1;
+ $DEBUGFS -R features $TMPFILE 2>&1 |
+ sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" >> $OUT1'
+AFTER_CMD='$DUMPE2FS $TMPFILE 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT1'
. $cmd_dir/run_e2fsck
else #if test -x $DEBUGFS_EXE; then
--- /dev/null
+#!/bin/sh
+
+resize_test () {
+
+rm -f $TMPFILE
+touch $TMPFILE
+echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 > $LOG
+$MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
+
+OUT_TMP=$(mktemp -t csum-tmp.XXXXXX)
+
+date > $OUT_TMP
+cat $E2FSCK >> $OUT_TMP
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_1=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_1 >> $LOG
+
+echo Setting up file system >> $LOG
+$DEBUGFS -w $TMPFILE >> $LOG 2>&1 << EOF
+mkdir test
+cd test
+write $OUT_TMP e2fsck
+ls /test
+stat /test/e2fsck
+quit
+EOF
+echo " " >> $LOG
+
+rm -f $OUT_TMP
+
+echo $FSCK -fy $TMPFILE >> $LOG 2>&1
+$FSCK -fy $TMPFILE >> $LOG 2>&1
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d 31 $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+echo $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+if ! $RESIZE2FS $RESIZE2FS_OPTS -d 31 -M $TMPFILE $SIZE_2 >> $LOG 2>&1
+then
+ return 1
+fi
+
+echo $FSCK -fp $TMPFILE >> $LOG 2>&1
+if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
+then
+ dumpe2fs $TMPFILE >> $LOG
+ return 1
+fi
+
+echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+$DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
+
+echo $CRCSUM $OUT_TMP >> $LOG 2>&1
+CSUM_2=$($CRCSUM $OUT_TMP)
+echo Checksum is $CSUM_2 >> $LOG
+
+rm $OUT_TMP
+unset OUT_TMP
+
+if test "$CSUM_1" != "$CSUM_2"
+then
+ return 1
+fi
+
+return 0
+
+}
E2UNDO_EXE="../misc/e2undo"
TEST_REL=../tests/progs/test_rel
TEST_ICOUNT=../tests/progs/test_icount
+CRCSUM=../tests/progs/crcsum
LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss
DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss
export LD_LIBRARY_PATH
export E2FSCK_CONFIG
MKE2FS_CONFIG=./mke2fs.conf
export MKE2FS_CONFIG
-
+E2FSPROGS_SKIP_PROGRESS=yes
+export E2FSPROGS_SKIP_PROGRESS
+EXT2FS_NO_MTAB_OK=yes
+export EXT2FS_NO_MTAB_OK
#endif
#include <stdio.h>
#include <stdlib.h>
+#ifdef HAVE_MALLOC_H
#include <malloc.h>
+#endif
#include <string.h>
#include <fcntl.h>
#include <sys/param.h>
* file may be redistributed under the GNU Public License v2.
*/
-#define E2FSPROGS_VERSION "1.42.5"
-#define E2FSPROGS_DATE "29-Jul-2012"
+#define E2FSPROGS_VERSION "1.42.8"
+#define E2FSPROGS_DATE "20-Jun-2013"
}
next if (/^$/); # skip blank lines
$linelen = 0;
- split;
- while (defined($word = shift @_)) {
+ @words = split;
+ while (defined($word = shift @words)) {
$word =~ s#\$\(srcdir\)/\.\./version.h#\$\(top_srcdir\)/version.h#;
$word =~ s#\$\(srcdir\)/.\.\/\.\./version.h#\$\(top_srcdir\)/version.h#;
$word =~ s#\$\(srcdir\)/.\.\/et/com_err.h#\$\(top_srcdir\)/lib/et/com_err.h#;